Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(appunti): Aggiunte e correzioni appunti Bistarelli #42

Merged
merged 7 commits into from
Aug 9, 2023
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -3,65 +3,35 @@ \section{Intruder}
Abbiamo tre classi di intruders (intrusi):

\begin{itemize}
\item \textbf{Masquerader}: Un individuo che non è autorizzato a utilizzare il
computer e che penetra nei
controlli di accesso di un sistema per sfruttare l'account di un utente
legittimo;
\item \textbf{Misfeasor}\footnote{Ricordarsi che non è
il nome di un pokemon !}: Un utente legittimo che accede a dati,
programmi o
risorse per i
quali tale
accesso non è autorizzato o che è autorizzato a tale accesso ma
abusa dei suoi
privilegi;
\item \textbf{Clandestine User}: Una persona che prende il controllo di supervisione
per eludere l'auditing
e i controlli di accesso o sopprimere la raccolta di audit;
\item \textbf{Masquerader}: Individuo che finge di essere qualcun altro per ottenere un accesso non autorizzato a informazioni o servizi.
\item \textbf{Misfeasor}\footnote{Ricordarsi che non è il nome di un pokemon !}: Un utente legittimo che accede a dati, programmi o risorse per i quali tale accesso non è autorizzato o che è autorizzato a tale accesso ma abusa dei suoi privilegi per eseguire azioni non autorizzate. Un esempio può essere il dipendente con accesso a dati aziendali sensibili che utilizza i propri privilegi per rubare o divulgare i dati;
\item \textbf{Clandestine User}: Una persona che prende il controllo di supervisione per eludere l'auditing e i controlli di accesso o sopprimere la raccolta di audit;
\end{itemize}

\paragraph{Intrusion Detection System: }
L'Intrusion Detection System o \textbf{IDS} è un dispositivo software o hardware
utilizzato per
identificare accessi non autorizzati ai computer o alle reti locali.
Le intrusioni rilevate possono
essere quelle prodotte da cracker esperti, da tool automatici o da utenti
inesperti che utilizzano
programmi semiautomatici.
L'Intrusion Detection System o \textbf{IDS} è un dispositivo software o hardware utilizzato per identificare accessi non autorizzati ai computer o alle reti locali. Lo scopo generale di un IDS è informare gli amministratori di sistema che potrebbe esserci un'intrusione nel sistema. Lo fa andando a lanciare degli allarmi che poi gli amministratori di sistema dovranno andare a controllare manualmente. Gli avvisi includono generalmente informazioni sull'indirizzo di origine dell'intrusione, l'indirizzo di
destinazione/vittima e il tipo di attacco ``sospetto''.

Un IDS può avere un'installazione o di tipo \textbf{HOST based} o di tipo \textbf{NETWORK based}. Nella \emph{Host based} l'IDS è installato nelle singole macchine utente ed ha quindi una vista ristretta alla singola macchina e non all'intero sistema. In questo caso lavora più a \emph{livello applicazione} per rilevare le intrusioni. Nel \emph{Network based} invece l'IDS è installato a livello di rete e quindi ha una visione più ampia e generale del sistema. In questo caso lavora appunto a livello di rete e quindi riesce a rilevare se un nuovo dispositivo si collega alla rete o se un dispositivo invia strane richieste.

Un IDS può individuare una intrusione tramite 3 tipologie di rilevamento differenti:
\begin{itemize}
\item \textbf{Threshold based detection}: si conta il numero di occorrenze di un determinato evento e se tale numero supera una determinata soglia allora viene considerato come ``attacco in corso''. E' una tecnica di rilevamento basata su anomalie (\emph{anomaly detection}).
\item \textbf{Profile based detection}: si traccia ciò che un account fa abitualmente e si guarda se in una giornata sta assumendo il solito comportamento o se si discosta molto dalle abitudini. Se si discosta troppo allora si considera come ``attacco in corso''. E' una tecnica di rilevamento basata su anomalie (\emph{anomaly detection}).
\item \textbf{Signature based detection}: si usano modelli di attacchi già noti e si mette a confronto il comportamento rilevato con i modelli conosciuti per vedere se corrispondono a una minaccia nota.
\end{itemize}

È importante sapere che un IDS non può bloccare o filtrare i pacchetti in ingresso ed in uscita, né tanto meno può modificarli. Un IDS può essere paragonato ad un antifurto mentre il firewall alla porta blindata. L'IDS non cerca di bloccare le eventuali intrusioni, cosa che spetta al firewall, ma cerca di rilevarle laddove si verifichino.
Per ogni rete è necessario un IDS che agisce solo sulla stessa.

\paragraph{Intrusion Prevenction System}: L'Intrusion Prevenction System o \textbf{IPS} è un dispositivo software o hardware che ha le stesse funzionalità di un IDS ma in più può fermare un attacco in \textbf{real time} andando a compiere alcune azioni quali comunicare con un firewall e aggiungere delle regole per bloccare determinate connessioni malevole o mandare down l'intero network (solo nei casi peggiori) così da evitare ulteriori danni al sistema.

Lo scopo generale di un IDS è informare che potrebbe esserci un'intrusione nella rete.
Gli avvisi
includono generalmente informazioni sull'indirizzo di origine dell'intrusione,
l'indirizzo di
destinazione/vittima e il tipo di attacco "sospetto”.
Due sono le categorie base: sistemi basati sulle firme (signature) e sistemi
basati sulle anomalie (anomaly).
La tecnica basata sulle firme è in qualche modo analoga a quella per
il rilevamento dei
virus (adopera il machine learning), essa permette di bloccare file infetti e
si tratta di una tra le tecniche più utilizzate. I sistemi basati sul rilevamento delle anomalie utilizzano un
insieme di regole che
permettono di distinguere ciò che è "normale" da ciò che è "anormale".
È importante sapere che un IDS non può bloccare o filtrare i pacchetti in ingresso
ed in uscita, né
tanto meno può modificarli. Un IDS può essere paragonato ad un antifurto mentre
il firewall alla
porta blindata. L'IDS non cerca di bloccare le eventuali intrusioni, cosa che
spetta al firewall, ma
cerca di rilevarle laddove si verifichino.
Per ogni rete è necessario un IDS che agisce solo sulla stessa. Se si volesse
però avere
un'architettura più complessa, si potrebbe includere un gestore centrale:
gli IDS fanno da sensore,
inviano tutto c'è che rilevano nella rete di pertinenza al gestore,
il quale accumula ed analizza tutti i
log ricevuti per capire se gli eventi hanno una qualche correlazione.

\paragraph{Honeypot {\normalfont \emoji{honey-pot}}:}
Un honeypot rappresenta una strategica misura di sicurezza con la quale gli
amministratori
di un server ingannano gli hacker e gli impediscono di colpire.
Un barattolo di miele simula i
Un ``barattolo di miele'' simula i
servizi di rete o programmi per attirare i malintenzionati e proteggere il
sistema da eventuali
attacchi. In pratica gli utenti configurano gli honeypot, utilizzando delle
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,27 @@ \section{Kerberos}
In un sistema si può aggiungere una procedura di autenticazione per ogni servizio,
ad esempio una password per accedere al sistema, una per accedere al file system,
ecc. Questa tecnica risulta essere molto scomoda, soprattutto se si utilizzano
i token. Unalternativa consiste nellutilizzare ununica credenziale di
autenticazione per accedere a tutti i servizi; avere ununica password è una
i token. Un'alternativa consiste nell'utilizzare un'unica credenziale di
autenticazione per accedere a tutti i servizi; avere un'unica password è una
soluzione comoda ma poco robusta.
Kerberos è un \textbf{protocollo} reale che si occupa di questo problema (e non solo),
ha come obiettivo quello di garantire la segretezza, lautenticità
ha come obiettivo quello di garantire la segretezza, l'autenticità
(ad accesso singolo), la temporalità (le chiavi usate hanno validità limitata
per prevenire \textit{replay attack}).
Questultima caratteristica viene gestita tramite
i \textbf{timestamp}. In pratica, laccesso ad un servizio avviene tramite
biglietto che vale per un periodo limitato; anche se tale biglietto venisse
Quest'ultima caratteristica viene gestita tramite
i \textbf{timestamp}. In pratica, l'accesso ad un servizio avviene tramite
``biglietto'' che vale per un periodo limitato; anche se tale biglietto venisse
intercettato, può essere usato solo una volta e per un breve tempo.

\paragraph{Kerberos}
è un protocollo di autenticazione dei servizi di rete creato dal MIT che si
serve della crittografia a chiave simmetrica per autenticare gli utenti per i
servizi di rete, eliminando così la necessità di inviare le password attraverso
la rete. Ricorre ad ununica credenziale di autenticazione per accedere a tutti
la rete. Ricorre ad un'unica credenziale di autenticazione per accedere a tutti
i servizi. L'autenticazione mediante Kerberos impedisce agli utenti non autorizzati
di intercettare le password inviate attraverso la rete.
Il nome Kerberos deriva da Cerbero, il cane a tre teste che sorveglia
le porte dellAde.\\
le porte dell'Ade.\\

La maggior parte dei sistemi di rete convenzionali usa uno schema di
autenticazione basato sulle password. Quando un utente effettua una
Expand All @@ -49,18 +49,18 @@ \section{Kerberos}

\subsection{Come funziona ?}

Lutente, una volta entrato nella propria macchina, vuole accedere ai servizi
L'utente, una volta entrato nella propria macchina, vuole accedere ai servizi
messi a disposizione nella rete. Supponiamo voglia raggiungere il server in basso.
Effettuato il primo accesso alla macchina, le credenziali dellutente vengono
Effettuato il primo accesso alla macchina, le credenziali dell'utente vengono
inviate ad uno speciale servizio centrale, il Kerberos, che ricorre essenzialmente
a due tipi di server:

\begin{itemize}
\item \textit{Authentication Server} (\textbf{AS}\footnote{Ricordarsi che
AS non sta per
\textit{Autonomous System} !}),
che ha lo scopo di autenticare luser;
\item \textit{Ticket-Granting Server} (\textbf{TGS}), che a seconda delluser,
che ha lo scopo di autenticare l'user;
\item \textit{Ticket-Granting Server} (\textbf{TGS}), che a seconda dell'user,
gli assegna i diritti per compiere determinate azioni;
\end{itemize}

Expand All @@ -71,15 +71,15 @@ \subsection{Come funziona ?}
\end{figure}

\begin{enumerate}
\item Lutente si connette con le proprie credenziali alla workstation e
\item L'utente si connette con le proprie credenziali alla workstation e
queste vengono passate al Kerberos;
\item AS verifica il diritto di accesso dellutente, ricercando una
\item AS verifica il diritto di accesso dell'utente, ricercando una
corrispondenza nel database. Se il confronto ha esito positivo, AS
assegna alluser un ticket e una session key.
assegna all'user un ticket e una session key.
Il ticket verrà poi passato al TGS per richiedere i servizi, mentre
la chiave permette di codificare le sue richieste, sempre poste al TGS.
Entrambe le informazioni vengono criptate;
\item Lutente a questo punto vuole utilizzare un certo servizio.
\item L'utente a questo punto vuole utilizzare un certo servizio.
La workstation richiede all'utente la password e la utilizza per
decrittografare il messaggio in arrivo, quindi invia ticket e
autenticatore
Expand All @@ -90,12 +90,12 @@ \subsection{Come funziona ?}
TGS avviene solo grazie alla session key che la codifica;
\item La workstation manda ticket e autenticatore al server;
\item Il server verifica il match tra ticket ed autenticatore e permette
laccesso al servizio. Se
l'accesso al servizio. Se
viene richiesta una mutua autenticazione, il server ritorna un
autenticatore.
\end{enumerate}

È importante notare che lutente può utilizzare il ticket finché esso risulta
È importante notare che l'utente può utilizzare il ticket finché esso risulta
ancora valido, il che può accadere anche per più tentativi di richiesta al servizio.
Per un servizio diverso mai utilizzato, deve ripercorrere il medesimo processo.\\

Expand All @@ -108,11 +108,11 @@ \subsection{Come funziona ?}
\end{figure}

\begin{enumerate}
\item Allautenticazione si ottiene \verb|authK| e \verb|authTicket|.
\item All'autenticazione si ottiene \verb|authK| e \verb|authTicket|.
Il primo per autenticarsi e rendere
riservata la trasmissione con il TGS, il secondo per ottenere
il servizio del TGS;
\item Nellautorizzazione da parte del TGS, si ottiene \verb|servK| e
\item Nell'autorizzazione da parte del TGS, si ottiene \verb|servK| e
\verb|servTicket|, da presentare per il
server richiesto;
\item Il servizio conferma poi la richiesta.
Expand All @@ -126,16 +126,16 @@ \subsection{Come funziona ?}

\subsection{Nel dettaglio}

\textit{A} è lutente che richiede il servizio \textit{B}.
\textit{A} si autentica allAS ad un certo tempo \verb|T1|
(\textit{messaggio 1}). Se lutente non è registrato tra quelli del dominio,
\textit{A} è l'utente che richiede il servizio \textit{B}.
\textit{A} si autentica all'AS ad un certo tempo \verb|T1|
(\textit{messaggio 1}). Se l'utente non è registrato tra quelli del dominio,
non viene preso in considerazione. Se invece è autorizzato, si verifica grazie
al ticket a quale TGS vuole rivolgersi.
\textit{A} per autenticarsi ha inviato solo il nome dellutente, però lAS fa
una challenge: invia ad \textit{A} uninformazione e se lutente è
\textit{A} per autenticarsi ha inviato solo il nome dell'utente, però l'AS fa
una challenge: invia ad \textit{A} un'informazione e se l'utente è
effettivamente chi dice di essere, allora saprà decifrarla con la sua chiave.
\textit{A} apre il pacchetto con la chiave privata (\textit{messaggio 2}).
Allinterno trova:
All'interno trova:

\begin{itemize}
\item un \verb|authTicket| codificato con la chiave di TGS e quindi non può
Expand All @@ -150,24 +150,24 @@ \subsection{Nel dettaglio}
All'interno del \textit{messaggio 3} abbiamo:

\begin{itemize}
\item ticket ricevuto dall'AS, anche se non sa cosè;
\item il suo nome e \verb|T2| che corrisponde allistante in cui viene
\item ticket ricevuto dall'AS, anche se non sa cos'è;
\item il suo nome e \verb|T2| che corrisponde all'istante in cui viene
inviato il pacchetto. Il tutto è
codificato da \verb|authK|;
\item nome del servizio a cui vuole accedere, cioè \textit{B};
\end{itemize}

Il fatto di inviare \textit{A} e \verb|authK| permette di autenticarsi con il TGS.
\verb|authK| è stata inviata da AS e poiché TGS si fida di AS, riesco ad aprire
il messaggio \verb|{A, T2}| dellautenticatore 1. Il messaggio è chiaramente
il messaggio \verb|{A, T2}| dell'autenticatore 1. Il messaggio è chiaramente
scritto da \textit{A} e la conferma arriva dal fatto che \textit{A} è scritto
anche fuori in \verb|authTicket| e l\verb|authK| è stato condiviso da AS
anche fuori in \verb|authTicket| e l'\verb|authK| è stato condiviso da AS
con \textit{A}. A questo punto \textit{A} è autenticato.
Se il \textit{messaggio 3} fosse stato inviato al TGS sbagliato, al richiesta
non verrebbe presa in considerazione. \verb|Ta| permette di capire se \verb|authK|
è ancora valida.
Il TGS verifica se \textit{A} ha il diritto di utilizzare \textit{B}. Se così è,
viene autorizzato con linvio del \textit{messaggio 4}:
viene autorizzato con l'invio del \textit{messaggio 4}:

\begin{itemize}
\item È criptato con \verb|authK| e solo \textit{A} può aprirlo.
Expand Down Expand Up @@ -225,7 +225,7 @@ \subsection{Gestione delle Chiavi}
\end{itemize}

TGS può generare \verb|servK| solo qualora sia \(Ts + L_s \le Ta + L_a\),
altrimenti si verifica il problema di \textbf{cascata dellattacco}. Si hanno
altrimenti si verifica il problema di \textbf{cascata dell'attacco}. Si hanno
quindi attacchi consequenziali: un attacco ne provoca altri direttamente.
Supponiamo che \textit{C} abbia violato una chiave di sessione (di autorizzazione)
scaduta \verb|authK| che \textit{B} aveva condiviso con \textit{A}.
Expand Down
Loading