Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- \documentclass{beamer}
- \mode<presentation>
- {
- \usetheme{Warsaw}
- }
- %%Utile per la sillabazione
- \usepackage[italian]{babel}
- %%Permette di scrivere usando tutti i caratteri e non solamente quelli ascii
- \usepackage[utf8]{inputenc}
- %%Tra le altre cose, permette di usare i commenti multilinea
- \usepackage{verbatim}
- %%Fornisce il supporto per i colori
- \usepackage{color}
- %%Pacchetto per l'inserimento delle immagini
- \usepackage{graphicx}
- %%Fornisce molti modi per personalizzare le didascalie degli oggetti mobili (table e figure)
- \usepackage[bf,hang]{caption}
- %%Consente di usare agevolmente le formule matematiche
- \usepackage{amsmath}
- %%Permette di scrivere simboli matematici (tipo la R dell'insieme dei reali)
- \usepackage{amssymb}
- %Permette di includere agevolmente parti di codice
- \usepackage{listings}
- \lstset{ %
- language=Octave, % the language of the code
- basicstyle=\ttfamily\footnotesize, % the size of the fonts that are used for the code
- backgroundcolor=\color{lightgray}, % choose the background color. You must add \usepackage{color}
- tabsize=2, % sets default tabsize to 2 spaces
- breaklines=true, % sets automatic line breaking
- breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace
- }
- %Permette di far andare il testo intorno alle immagini
- \usepackage{wrapfig}
- %Permette di rendere le righe delle tabelle più alzate
- \usepackage{array}
- %Permette di affiancare immagini
- \usepackage{subfigure}
- %Permette di creare tabelle con celle multiriga
- \usepackage{multirow}
- %Permette di creare grafici cartesiani
- \usepackage{pgfplots}
- \title{Approfondimento su IDS basati su reti neurali}
- \author{xxxxx xxxxx}
- \institute
- {
- Facoltà di Scienze MM.FF.NN.\\
- Università degli studi di Verona
- }
- \subject{IDS basati su reti neurali}
- \AtBeginSection[] % Do nothing for \section*
- {
- \begin{frame}<beamer>
- \frametitle{Outline}
- \tableofcontents[currentsection]
- \end{frame}
- }
- \begin{document}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \titlepage
- \end{frame}
- \begin{frame}{Outline} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \tableofcontents
- \end{frame}
- \section{Introduzione}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{block}{Intrusion detection system}
- Informalmente: un programma il cui scopo è individuare intrusioni ed comportamenti pericolosi all'interno di un sistema informatico, ed eventualmente porvi rimedio.
- \end{block}
- \bigskip
- In grandi sistemi questo compito non può essere assolto da un essere umano.
- In ogni caso, mettere una persona a controllare cosa accade nel sistema sarebbe antieconomico, in generale.
- \end{frame}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{block}{IDS basati su reti neurali}
- IDS la cui conoscenza e capacità di riconoscimento risiede in una rete neurale.
- \end{block}
- \bigskip
- \textbf{Pregi}:
- \begin{itemize}
- \item Molto accurati
- \item Grande ``elasticità'' nel riconoscimento
- \end{itemize}
- \textbf{Difetti}:
- \begin{itemize}
- \item Addestramento lungo
- \item Se manca l'esperienza...
- \end{itemize}
- \end{frame}
- \section{Intrusion detection systems}
- \subsection*{Introduzione}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{block}{Intrusion detection system}
- Un meccanismo automatico il cui scopo è quello di individuare tentativi di utilizzo malevolo di un sistema informatico.
- \end{block}
- \bigskip
- \begin{itemize}
- \item Difficile definire cosa è malevolo.
- \item Difficile distinguere alcune azioni dell'utente da attacchi.
- \end{itemize}
- \end{frame}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{figure}
- \centering
- \includegraphics[scale=0.25]{images/ids-architecture.pdf}
- \caption{L'immagine mostra schematicamente l'architettura di un IDS.}
- \label{image:ids-architecture}
- \end{figure}
- \vspace{-15pt}
- Un IDS si compone di un \emph{rilevatore} che, tramite i dati della \emph{knowledge base}, decide se i dati che riceve dal sistema indicano la presenza di un attacco.
- \medskip
- A seconda del tipo, l'IDS potrebbe prendere autonomamente contromisure.
- \end{frame}
- \subsection*{Gestione della conoscenza negli IDS}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{block}{Sistemi \emph{knowledge based}}
- Conoscenza \textbf{preinstallata}: un ente aggiorna/distribuisce la base di conoscenze. Molto usati per la \emph{misuse detection}.
- \medskip
- \textbf{Pregi}
- \begin{itemize}
- \item Veloci (regole meccaniche)
- \item Pochi falsi allarmi (definizione precisa di attacco)
- \end{itemize}
- \textbf{Difetti}
- \begin{itemize}
- \item Necessitano aggiornamenti
- \item Non rilevano anomalie nell'utente (es. abuso di privilegi)
- \end{itemize}
- \end{block}
- \end{frame}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{block}{Sistemi behaviour based}
- Conoscenza generata per \textbf{autoapprendimento}: il sistema apprende per proprio conto le abitudini degli utenti ed i tipi di attacco. Si usano principalmente nell'\emph{anomaly detection}.
- \medskip
- \textbf{Pregi}
- \begin{itemize}
- \item Rilevano abusi di privilegi
- \end{itemize}
- \textbf{Difetti}
- \begin{itemize}
- \item Non riconoscono attacchi nuovi
- \item Generano molti falsi allarmi (evoluzione comportamento utente, incompleta conoscenza delle abitudini utente)
- \end{itemize}
- \end{block}
- \end{frame}
- \subsection*{Altre categorizzazioni}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{block}{Reazione agli attacchi}
- \begin{itemize}
- \item \textbf{Sistemi attivi}: tentano di chiudere le brecce.
- \item \textbf{Sistemi attivi (parz.)}: congelano il sistema temporaneamente.
- \item \textbf{Sistemi passivi}: avvertono l'amministratore.
- \end{itemize}
- \end{block}
- \begin{block}{Frequenza d'uso}
- \begin{itemize}
- \item \textbf{Sistemi periodici}: analizzano i dati periodicamente.
- \item \textbf{Sistemi continui}: analizzano il sistema in tempo reale.
- \end{itemize}
- \end{block}
- \begin{block}{Sorgente dati}
- \begin{itemize}
- \item \textbf{Sistemi host-based}: analizzano cosa accade nella macchina
- \item \textbf{Sistemi network-based}: analizzano i dati transitanti in rete.
- \end{itemize}
- \end{block}
- \end{frame}
- \subsection*{Tipi di attacchi e vulnerabilità informatici}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{block}{User to root}
- Utente legittimo che riesce a compiere azioni con i diritti di amministratore.
- \end{block}
- \begin{block}{Remote to local}
- Persona estranea che riesce a compiere azioni con i diritti di un utente legittimo.
- \end{block}
- \begin{block}{Buffer overflow}
- Scrittura di dati arbitrari su aree di memoria non adeguatamente protette. Permette di riprogrammare il software in esecuzione.
- \end{block}
- \end{frame}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{block}{Denial of service}
- Si inonda la macchina bersaglio di richieste mandandola così in crash.
- \end{block}
- \begin{block}{Distributed denial of service}
- Come il DoS, ma si porta sfruttando più macchine, possibilmente sparse per il globo.
- \end{block}
- \begin{block}{Portscan}
- Analisi delle porte TCP/UDP in cerca di software bacati in ascolto su una di esse.
- \end{block}
- \end{frame}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{block}{Malware}
- Codice creato con lo scopo di recare danni ad una macchina calcolatrice. Ne esistono diversi tipi:
- \begin{itemize}
- \item \textbf{Virus}: software che copia il proprio codice all'interno di altri programmi. Necessita un trasferimento manuale per riprodursi.
- \item \textbf{Worm}: software che si riproduce su altre macchine sfruttando alcune vulnerabilità.
- \item \textbf{Trojan horse}: software maligno che fornisce funzionalità attraenti. L'utente non si rende conto di aver eseguito un malware.
- \end{itemize}
- \end{block}
- \end{frame}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{block}{Malware}
- Codice creato con lo scopo di recare danni ad una macchina calcolatrice. Ne esistono diversi tipi:
- \begin{itemize}
- \item \textbf{Backdoor}: una volta eseguito, consente l'accesso facilitato al sistema dall'esterno. Possono essere portati da malware o installati appositamente.
- \item \textbf{Spyware}: si installa, raccoglie informazioni di nascosto e le trasmette.
- \item \textbf{Rootkit}: insieme di programmi che si sostituiscono ai file di sistema comportandosi in maniera simile ma nascondendo la presenza di altri malware.
- \end{itemize}
- \end{block}
- \end{frame}
- \section{Reti neurali}
- \subsection*{Introduzione}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{block}{Rete neurale}
- Un insieme di elementi calcolatori (neuroni) altamente interconnessi in grado di calcolare funzioni imparandole tramite esempi.
- \end{block}
- \bigskip
- \emph{Perché usare reti neurali?}
- Perché copiamo dalla natura: il cervello umano è robusto, flessibile ed elastico, ed i calcoli sono fatti in parallelo.
- \end{frame}
- \subsection*{Il neurone}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{block}{Neurone}
- L'unità elaborativa di base delle reti neurali.
- \end{block}
- \bigskip
- Ha $C$ connessioni in ingresso ed una uscita, ciascuna con un peso assegnato. L'output è valutato sommando gli ingressi ed applicando una funzione (ad es. gradino, lineare, logistica o tangente iperbolica).
- \begin{figure}
- \centering
- \includegraphics{images/neurone.png}
- \caption{L'immagine mostra schematicamente un neurone.}
- \label{image:neuron}
- \end{figure}
- \end{frame}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- Un neurone è in grado di rappresentare solo funzioni linearmente separabili.
- Ad esempio, la funzione XOR non può essere rappresentata
- \begin{figure}
- \centering
- \includegraphics[scale=0.3]{images/xor.png}
- \caption{Le funzioni XOR, AND e OR dal punto di vista della separabilità lineare.}
- \label{image:xor}
- \end{figure}
- Il problema si può risolvere usando più neuroni.
- \end{frame}
- \subsection*{Reti di neuroni}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- Unendo più neuroni si ottiene una rete.
- Una caratteristica fondamentale della rete è la sua \textbf{topologia}, che determina la complessità degli algoritmi di addestramento e di calcolo.
- \bigskip
- \begin{wrapfigure}{r}{0.5\textwidth}
- \vspace{-20pt}
- \begin{center}
- \begin{figure}
- \centering
- \includegraphics[scale=0.11]{images/neural-network-example.png}
- \caption{Una rete neurale MLP}
- \label{image:neural-network-example}
- \end{figure}
- \end{center}
- \vspace{-20pt}
- \end{wrapfigure}
- Le topologia più comune è \emph{feed-forward a livelli}, chiamata \textbf{multilayer perceptron} o (\textbf{MLP}). È veloce e sufficientemente accurata per la maggior parte delle applicazioni.
- \end{frame}
- \subsection*{Addestramento}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{block}{Addestramento}
- L'operazione di determinare i pesi dei collegamenti dei neuroni per minimizzare l'errore quadratico medio (MSE).
- \end{block}
- \bigskip
- L'algoritmo più famoso è la \emph{discesa lungo il gradiente}. Esso stima la scelta ottima dei pesi diminuendo iterativamente l'errore.
- \bigskip
- L'algoritmo più popolare è quello di \emph{Levenberg-Marquardt}, che garantisce convergenza più veloce (una via di mezzo tra gli algoritmi di discesa lungo il gradiente e di Newton).
- \bigskip
- Questi algoritmi trovano un minimo locale, non globale (effetto gravità). Una soluzione possibile è scegliere una buona funzione di apprendimento (parametro $\eta$).
- \end{frame}
- \section{Esperimenti}
- \subsection*{Un IDS per l'analisi del traffico di rete}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{wrapfigure}{r}{0.6\textwidth}
- \vspace{-20pt}
- \begin{center}
- \renewcommand{\arraystretch}{1.5}
- \begin{tabular}{|ll|}
- \hline
- \multicolumn{2}{|c|}{\textbf{Cannady, 1998}} \\
- \hline
- \textbf{Sorgente dati} & Network based \\
- \textbf{Cosa modella} & Pacchetti di rete \\
- \textbf{Frequenza d'uso} & Continuo o periodico \\
- \hline
- \end{tabular}
- \end{center}
- \vspace{-20pt}
- \end{wrapfigure}
- Cannady realizza un IDS basato su una rete MLP con funzione di trasferimento logistica.
- \medskip
- La rete ha 9 ingressi, 2 uscite e 4 livelli nascosti (numero determinato dalla validazione).
- \medskip
- Per addestrare il sistema sono stati usati dati catalogati da RealSecure\texttrademark. I dati raccolti erano relativi sia ad attacchi reali che ad attacchi portati con strumenti automatici.
- \end{frame}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- Dei 9462 record, 1000 sono stati usati per testare il sistema. L'errore medio riscontrato è stato del $5.8\%$ sull'insieme di addestramento, e del $7\%$ sull'insieme di test.
- \medskip
- I risultati dimostrano l'ottima capacità di generalizzazione della rete neurale usata.
- \bigskip
- Cannady suggerisce l'utilizzo di una self-organizing map in quanto ha un maggiore grado di adattabilità (cioè migliore attitudine all'imparare da nuovi esempi).
- \end{frame}
- \subsection*{Un IDS per l'analisi del comportamento degli utenti}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{wrapfigure}{r}{0.7\textwidth}
- \vspace{-20pt}
- \begin{center}
- \renewcommand{\arraystretch}{1.5}
- \begin{tabular}{|ll|}
- \hline
- \multicolumn{2}{|c|}{\textbf{Ryan, Lin, Miikkulainen, 1997}} \\
- \hline
- \textbf{Sorgente dati} & Host based \\
- \textbf{Cosa modella} & Comportamento dell'utente \\
- \textbf{Frequenza d'uso} & Periodico \\
- \hline
- \end{tabular}
- \end{center}
- \vspace{-20pt}
- \end{wrapfigure}
- In questo esperimento si è scelto di modellare il comportamento dei singoli utenti invece che il comportamento di un utente in generale.
- \medskip
- La rete usata è una MLP a 3 livelli con 100 ingressi (una per ogni comando monitorato) e 10 uscite (una per ogni utente).
- \end{frame}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- I dati di addestramento sono stati raccolti in 11 giorni da un computer usato da 10 utenti, contando il numero di volte in cui ogni comando era stato usato (e mappando i numeri in 11 intervalli distribuiti logaritmicamente).
- \bigskip
- \begin{itemize}
- \item Per testare il sistema sono stati usati i dati di 3 giorni. L'esperimento è stato ripetuto 4 volte con insiemi di giorni diversi. La rete ha riconosciuto il $93\%$ di tali dati.
- \item La rete è stata testata anche su vettori casuali, riconoscendone come anomali il $96\%$.
- \end{itemize}
- \bigskip
- I risultati ottenuti sono buoni, ma bisogna vedere se con un maggiore numero di utenti resterebbero altrettanto buoni.
- \end{frame}
- \subsection*{Una rete neurale come componente di un IDS}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{wrapfigure}{r}{0.7\textwidth}
- \vspace{-20pt}
- \begin{center}
- \renewcommand{\arraystretch}{1.5}
- \begin{tabular}{|ll|}
- \hline
- \multicolumn{2}{|c|}{\textbf{Debar, Becker e Siboni, 1992}} \\
- \hline
- \textbf{Sorgente dati} & Host based \\
- \textbf{Cosa modella} & Comportamento dell'utente \\
- \textbf{Frequenza d'uso} & Continuo \\
- \hline
- \end{tabular}
- \end{center}
- \vspace{-20pt}
- \end{wrapfigure}
- I ricercatori hanno usato una rete neurale come parte di un sistema più complesso. Il sistema deve riconoscere i comportamenti maligni degli utenti.
- \bigskip
- La rete (ricorrente) indovina il prossimo comando: quando sbaglia si attiva un sistema esperto per vedere se è in atto un vero attacco. Così la lentezza del sistema esperto è usata solo in poche occasioni.
- \end{frame}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{itemize}
- \item La rete, addestrata con metà dei 6550 comandi di 8 sessioni, ha indovinato il $95\%$ dei comandi con sicurezza.
- \item Usando i comandi di una sola sessione per l'addestramento, la rete ha riconosciuto l'$80\%$ dei comandi.
- \end{itemize}
- \medskip
- Con opportuni accorgimenti per programmi causali (es. \lstinline$date$) e programmi simili (es. \lstinline$sh$ e \lstinline$csh$) i risultati si possono migliorare di molto.
- \bigskip
- Nota: avendo più di un utente sono necessarie più reti neurali, una per ognuno.
- \end{frame}
- \subsection*{Intrusion detection attraverso la profilazione dei programmi}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{wrapfigure}{r}{0.74\textwidth}
- \vspace{-20pt}
- \begin{center}
- \renewcommand{\arraystretch}{1.5}
- \begin{tabular}{|ll|}
- \hline
- \multicolumn{2}{|c|}{\textbf{Ghosh, Schwartzbard, Schatz, 1999}} \\
- \hline
- \textbf{Sorgente dati} & Host based \\
- \textbf{Cosa modella} & Comportamento dei programmi \\
- \textbf{Frequenza d'uso} & Continuo \\
- \hline
- \end{tabular}
- \end{center}
- \vspace{-20pt}
- \end{wrapfigure}
- Nell'esperimento, una rete neurale è stata usata per riconoscere anomalie nei programmi attraverso le loro chiamate di sistema.
- \bigskip
- Gli esperimenti sono stati fatti sotto l'ipotesi del \emph{principio di località temporale} per le anomalie.
- \end{frame}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{wrapfigure}{r}{0.3\textwidth}
- \vspace{-20pt}
- \begin{center}
- \begin{figure}
- \centering
- \includegraphics[scale=0.40]{images/ghosh-elman.png}
- \caption{Una rete di Elman}
- \label{image:elman-network}
- \end{figure}
- \end{center}
- \vspace{-20pt}
- \end{wrapfigure}
- Tre sistemi sono stati implementati:
- \begin{enumerate}
- \item Un algoritmo di pattern matching tramite semplice uguaglianza di stringhe in finestre temporali.
- \item Una rete neurale MLP con $n$ ingressi (uno per system call) ed un'uscita binaria. È stato usato un ``accumulatore'' per il principio di località.
- \item Una \emph{rete di Elman} con $n$ ingressi ed un'uscita. Anche per essa è stato usato un accumulatore.
- \end{enumerate}
- \end{frame}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{wrapfigure}{r}{0.6\textwidth}
- \vspace{-25pt}
- \begin{center}
- \begin{figure}
- \centering
- \includegraphics[scale=0.5]{images/ghosh-results.png}
- \caption{L'immagine mostra i grafici ROC dei tre sistemi.}
- \label{image:ghosh-results}
- \end{figure}
- \end{center}
- \vspace{-20pt}
- \end{wrapfigure}
- I primi due sistemi decidevano se fosse in corso un'anomalia o meno, mentre la rete di Elman prevedeva la successiva system call.
- \bigskip
- I risultati ottenuti sono stati differenti. Il grafico ROC in figura \ref{image:ghosh-results} mette le performance a confronto.
- \end{frame}
- \subsection*{Intrusion detection basata sulle statistiche del traffico di rete}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{wrapfigure}{r}{0.7\textwidth}
- \vspace{-20pt}
- \begin{center}
- \renewcommand{\arraystretch}{1.5}
- \begin{tabular}{|ll|}
- \hline
- \multicolumn{2}{|c|}{\textbf{Bivens, Palagiri, Smith et al., 2002}} \\
- \hline
- \textbf{Sorgente dati} & Network based \\
- \textbf{Cosa modella} & Statistiche del traffico di rete \\
- \textbf{Frequenza d'uso} & Continuo \\
- \hline
- \end{tabular}
- \end{center}
- \vspace{-20pt}
- \end{wrapfigure}
- Sono state usate una rete MLP ed una \emph{self-organizing map} (SOM) per rilevare attacchi di tipo (distributed) \emph{denial of service}.
- \bigskip
- Il sistema era composto di tre componenti in cascata:
- \begin{enumerate}
- \item Un aggregatore di connessioni tcp per porte monitorate e per host sorgenti in un intervallo di tempo.
- \item Una rete SOM per aggregare gli host in gruppi dal comportamento simile.
- \item Una rete MLP per determinare se fosse in corso un attacco.
- \end{enumerate}
- \end{frame}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- I risultati si possono dividere in tre parti:
- \begin{itemize}
- \item In condizioni di più tipi di attacchi portati contemporaneamente, il sistema ne ha rilevato il $100\%$ con un tasso di falsi positivi del $76\%$.
- \item Durante un attacco \emph{SSH process table} (un tipo di denial of service), il sistema ha rilevato la minaccia con un tasso di falsi positivi dello $0\%$.
- \item In generale, con altri attacchi, singolarmente, viene detto genericamente che la rete si è comportata bene.
- \end{itemize}
- \bigskip
- La rete ha avuto performance scadenti.
- Articolo povero di dettagli: un grafico ROC sarebbe stato più utile.
- \end{frame}
- \subsection*{Intrusion detection tramite conteggio di keyword}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{wrapfigure}{r}{0.6\textwidth}
- \vspace{-20pt}
- \begin{center}
- \renewcommand{\arraystretch}{1.5}
- \begin{tabular}{|ll|}
- \hline
- \multicolumn{2}{|c|}{\textbf{Lippmann, Cunningham, 2000}} \\
- \hline
- \textbf{Sorgente dati} & Network based \\
- \textbf{Cosa modella} & Conteggio di keyword \\
- \textbf{Frequenza d'uso} & Continuo \\
- \hline
- \end{tabular}
- \end{center}
- \vspace{-15pt}
- \end{wrapfigure}
- È stata usata una rete neurale MLP per determinare la pericolosità di sessioni \emph{telnet} in base all'istogramma di alcune keyword al loro interno.
- \bigskip
- Sono state usate sia keyword di attacchi specifici sia keyword di carattere generale.
- Il numero di keyword e la topologia sono state scelte usando la \emph{validazione $k$-fold}.
- \end{frame}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \scriptsize
- \begin{figure}
- \begin{center}
- \begin{tabular}{|l|p{7cm}|}
- \hline
- \textbf{Esempi di keyword} & \textbf{Perché sono state inserite} \\
- \hline
- \lstinline$passwd$ & \multirow{3}{7cm}{Per rilevare azioni sospette} \\
- \lstinline$shadow$ & \\
- \lstinline$permission denied$ & \\
- \hline
- \lstinline$from: |$ & \multirow{2}{7cm}{Per rilevare attacchi noti} \\
- \lstinline$login: guest$ & \\
- \hline
- \lstinline$uuencode$ & \multirow{2}{7cm}{Per rilevare download di codice maligno} \\
- \lstinline$>ftp get$ & \\
- \hline
- \lstinline$chmod$ & \multirow{2}{7cm}{Per rilevare la predisposizione di un attacco} \\
- \lstinline$gcc$ & \\
- \hline
- \lstinline$root:$ & \multirow{2}{7cm}{Per rilevare una shell di root} \\
- \lstinline$\# $ & \\
- \hline
- \lstinline$Jumping to address$ & Per individuare messaggi di debug di alcuni programmi \\
- \hline
- \lstinline$fdformat$ & \multirow{2}{7cm}{Per individuare il codice sorgente di alcuni software maligni} \\
- \lstinline$ffbconfig$ & \\
- \hline
- \lstinline$linsniff$ & \multirow{2}{7cm}{Per individuare alcune azioni comunemente eseguite dopo che l'attacco ha avuto successo} \\
- \lstinline$.rhost$ & \\
- \hline
- \end{tabular}
- \caption{Alcune keyword delle keyword usate nell'esperimento.}
- \label{table:lippmann-keywords}
- \end{center}
- \end{figure}
- \end{frame}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- La rete è stata addestrata su 7 dei 9 \emph{tipi} di attacchi, e nei test ha individuato l'$80\%$ degli attacchi, buovi o vecchi che fossero.
- \smallskip
- Più difficoltà nell'individuare attacchi divisi in più sessioni, a causa dei conteggi keyword più bassi.
- \begin{figure}
- \vspace{-10pt}
- \centering
- \subfigure[Attacchi conosciuti vs sconosciuti.]{\includegraphics[scale=0.42]{images/lippmann-results.png}}
- \hspace{5mm}
- \subfigure[Attacchi in sessione unica vs multi-sessione.]{\includegraphics[scale=0.46]{images/lippmann-results2.png}}
- \caption{I grafici ROC delle performance ottenute dal sistema.}
- \label{image:mlp-vs-elman}
- \end{figure}
- \end{frame}
- \section{Conclusioni}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- Ci sono situazioni in cui è sensato usare una rete neurale (profilazione di utenti ed, ed al limite profilazione di programmi): in questi casi è \textbf{opportuno} usarla. Infatti, grazie alla capacità di adattamento, una rete riesce ad imparare bene i comportamenti usuali dei soggetti.
- \end{frame}
- \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- In altre situazioni una rete neurale non sembra avere molto senso, e gli esperimenti hanno confermato questa impressione: si parla di analisi del traffico di rete. In tali circostanze, le sorgenti sono sparse e le informazioni indicative di un attacco sono frammentate. In tali contesti, una rete neurale potrebbe avere \textbf{più difficoltà} di un sistema esperto compilato accuratamente da esperti del settore.
- \end{frame}
- \end{document}
Advertisement
Add Comment
Please, Sign In to add comment