Guest User

IDS basati su reti neurali

a guest
Mar 26th, 2012
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Latex 24.11 KB | None | 0 0
  1. \documentclass{beamer}
  2.  
  3. \mode<presentation>
  4. {
  5.  \usetheme{Warsaw}
  6. }
  7.  
  8. %%Utile per la sillabazione
  9. \usepackage[italian]{babel}
  10. %%Permette di scrivere usando tutti i caratteri e non solamente quelli ascii
  11. \usepackage[utf8]{inputenc}
  12. %%Tra le altre cose, permette di usare i commenti multilinea
  13. \usepackage{verbatim}
  14. %%Fornisce il supporto per i colori
  15. \usepackage{color}
  16. %%Pacchetto per l'inserimento delle immagini
  17. \usepackage{graphicx}
  18. %%Fornisce molti modi per personalizzare le didascalie degli oggetti mobili (table e figure)
  19. \usepackage[bf,hang]{caption}
  20. %%Consente di usare agevolmente le formule matematiche
  21. \usepackage{amsmath}
  22. %%Permette di scrivere simboli matematici (tipo la R dell'insieme dei reali)
  23. \usepackage{amssymb}
  24. %Permette di includere agevolmente parti di codice
  25. \usepackage{listings}
  26. \lstset{ %
  27.     language=Octave,            % the language of the code
  28.     basicstyle=\ttfamily\footnotesize,          % the size of the fonts that are used for the code
  29.     backgroundcolor=\color{lightgray},  % choose the background color. You must add \usepackage{color}
  30.     tabsize=2,                          % sets default tabsize to 2 spaces
  31.     breaklines=true,                    % sets automatic line breaking
  32.     breakatwhitespace=false,            % sets if automatic breaks should only happen at whitespace
  33. }
  34. %Permette di far andare il testo intorno alle immagini
  35. \usepackage{wrapfig}
  36. %Permette di rendere le righe delle tabelle più alzate
  37. \usepackage{array}
  38. %Permette di affiancare immagini
  39. \usepackage{subfigure}
  40. %Permette di creare tabelle con celle multiriga
  41. \usepackage{multirow}
  42. %Permette di creare grafici cartesiani
  43. \usepackage{pgfplots}
  44.  
  45.  
  46.  
  47.  
  48. \title{Approfondimento su IDS basati su  reti neurali}
  49.  
  50. \author{xxxxx xxxxx}
  51.  
  52. \institute
  53. {
  54.  Facoltà di Scienze MM.FF.NN.\\
  55.  Università degli studi di Verona
  56. }
  57.  
  58. \subject{IDS basati su  reti neurali}
  59.  
  60. \AtBeginSection[] % Do nothing for \section*
  61. {
  62. \begin{frame}<beamer>
  63. \frametitle{Outline}
  64. \tableofcontents[currentsection]
  65. \end{frame}
  66. }
  67.  
  68.  
  69.  
  70.  
  71. \begin{document}
  72.  
  73. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  74.  
  75. \titlepage
  76.  
  77. \end{frame}
  78.  
  79. \begin{frame}{Outline} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  80.  
  81. \tableofcontents
  82.  
  83. \end{frame}
  84.  
  85. \section{Introduzione}
  86.  
  87. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  88.  
  89. \begin{block}{Intrusion detection system}
  90. Informalmente: un programma il cui scopo è individuare intrusioni ed comportamenti pericolosi all'interno di un sistema informatico, ed eventualmente porvi rimedio.
  91. \end{block}
  92.  
  93. \bigskip
  94.  
  95. In grandi sistemi questo compito non può essere assolto da un essere umano.
  96.  
  97. In ogni caso, mettere una persona a controllare cosa accade nel sistema sarebbe antieconomico, in generale.
  98.  
  99. \end{frame}
  100.  
  101. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  102.  
  103. \begin{block}{IDS basati su reti neurali}
  104. IDS la cui conoscenza e capacità di riconoscimento risiede in una rete neurale.
  105. \end{block}
  106.  
  107. \bigskip
  108.  
  109. \textbf{Pregi}:
  110. \begin{itemize}
  111. \item Molto accurati
  112. \item Grande ``elasticità'' nel riconoscimento
  113. \end{itemize}
  114.  
  115. \textbf{Difetti}:
  116. \begin{itemize}
  117. \item Addestramento lungo
  118. \item Se manca l'esperienza...
  119. \end{itemize}
  120.  
  121. \end{frame}
  122.  
  123.  
  124. \section{Intrusion detection systems}
  125.  
  126. \subsection*{Introduzione}
  127. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  128.  
  129. \begin{block}{Intrusion detection system}
  130. Un meccanismo automatico il cui scopo è quello di individuare tentativi di utilizzo malevolo di un sistema informatico.
  131. \end{block}
  132.  
  133. \bigskip
  134.  
  135. \begin{itemize}
  136. \item Difficile definire cosa è malevolo.
  137. \item Difficile distinguere alcune azioni dell'utente da attacchi.
  138. \end{itemize}
  139.  
  140. \end{frame}
  141.  
  142. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  143.  
  144. \begin{figure}
  145. \centering
  146. \includegraphics[scale=0.25]{images/ids-architecture.pdf}
  147. \caption{L'immagine mostra schematicamente l'architettura di un IDS.}
  148. \label{image:ids-architecture}
  149. \end{figure}
  150. \vspace{-15pt}
  151.  
  152. 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.
  153.  
  154. \medskip
  155.  
  156. A seconda del tipo, l'IDS potrebbe prendere autonomamente contromisure.
  157.  
  158. \end{frame}
  159.  
  160. \subsection*{Gestione della conoscenza negli IDS}
  161. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  162. \begin{block}{Sistemi \emph{knowledge based}}
  163.     Conoscenza \textbf{preinstallata}: un ente aggiorna/distribuisce la base di conoscenze. Molto usati per la \emph{misuse detection}.
  164.  
  165. \medskip
  166.  
  167.     \textbf{Pregi}
  168.     \begin{itemize}
  169.     \item Veloci (regole meccaniche)
  170.     \item Pochi falsi allarmi (definizione precisa di attacco)
  171.     \end{itemize}
  172.  
  173.     \textbf{Difetti}
  174.     \begin{itemize}
  175.     \item Necessitano aggiornamenti
  176.     \item Non rilevano anomalie nell'utente (es. abuso di privilegi)
  177.     \end{itemize}
  178. \end{block}
  179. \end{frame}
  180.  
  181. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  182. \begin{block}{Sistemi behaviour based}
  183. 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}.
  184.  
  185. \medskip
  186.  
  187.     \textbf{Pregi}
  188.     \begin{itemize}
  189.     \item Rilevano abusi di privilegi
  190.     \end{itemize}
  191.  
  192.     \textbf{Difetti}
  193.     \begin{itemize}
  194.     \item Non riconoscono attacchi nuovi
  195.     \item Generano molti falsi allarmi (evoluzione comportamento utente, incompleta conoscenza delle abitudini utente)
  196.     \end{itemize}
  197. \end{block}
  198. \end{frame}
  199.  
  200. \subsection*{Altre categorizzazioni}
  201. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  202. \begin{block}{Reazione agli attacchi}
  203. \begin{itemize}
  204. \item \textbf{Sistemi attivi}: tentano di chiudere le brecce.
  205. \item \textbf{Sistemi attivi (parz.)}: congelano il sistema temporaneamente.
  206. \item \textbf{Sistemi passivi}: avvertono l'amministratore.
  207. \end{itemize}
  208. \end{block}
  209.  
  210. \begin{block}{Frequenza d'uso}
  211. \begin{itemize}
  212. \item \textbf{Sistemi periodici}: analizzano i dati periodicamente.
  213. \item \textbf{Sistemi continui}: analizzano il sistema in tempo reale.
  214. \end{itemize}
  215. \end{block}
  216.  
  217. \begin{block}{Sorgente dati}
  218. \begin{itemize}
  219. \item \textbf{Sistemi host-based}: analizzano cosa accade nella macchina
  220. \item \textbf{Sistemi network-based}: analizzano i dati transitanti in rete.
  221. \end{itemize}
  222. \end{block}
  223. \end{frame}
  224.  
  225. \subsection*{Tipi di attacchi e vulnerabilità informatici}
  226. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  227. \begin{block}{User to root}
  228. Utente legittimo che riesce a compiere azioni con i diritti di amministratore.
  229. \end{block}
  230. \begin{block}{Remote to local}
  231. Persona estranea che riesce a compiere azioni con i diritti di un utente legittimo.
  232. \end{block}
  233. \begin{block}{Buffer overflow}
  234. Scrittura di dati arbitrari su aree di memoria non adeguatamente protette. Permette di riprogrammare il software in esecuzione.
  235. \end{block}
  236. \end{frame}
  237.  
  238. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  239. \begin{block}{Denial of service}
  240. Si inonda la macchina bersaglio di richieste mandandola così in crash.
  241. \end{block}
  242. \begin{block}{Distributed denial of service}
  243. Come il DoS, ma si porta sfruttando più macchine, possibilmente sparse per il globo.
  244. \end{block}
  245. \begin{block}{Portscan}
  246. Analisi delle porte TCP/UDP in cerca di software bacati in ascolto su una di esse.
  247. \end{block}
  248. \end{frame}
  249.  
  250. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  251.  
  252. \begin{block}{Malware}
  253. Codice creato con lo scopo di recare danni ad una macchina calcolatrice. Ne esistono diversi tipi:
  254. \begin{itemize}
  255. \item \textbf{Virus}: software che copia il proprio codice all'interno di altri programmi. Necessita un trasferimento manuale per riprodursi.
  256. \item \textbf{Worm}: software che si riproduce su altre macchine sfruttando alcune vulnerabilità.
  257. \item \textbf{Trojan horse}: software maligno che fornisce funzionalità attraenti. L'utente non si rende conto di aver eseguito un malware.
  258. \end{itemize}
  259. \end{block}
  260. \end{frame}
  261.  
  262. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  263. \begin{block}{Malware}
  264. Codice creato con lo scopo di recare danni ad una macchina calcolatrice. Ne esistono diversi tipi:
  265. \begin{itemize}
  266. \item \textbf{Backdoor}: una volta eseguito, consente l'accesso facilitato al sistema dall'esterno. Possono essere portati da malware o installati appositamente.
  267. \item \textbf{Spyware}: si installa, raccoglie informazioni di nascosto e le trasmette.
  268. \item \textbf{Rootkit}: insieme di programmi che si sostituiscono ai file di sistema comportandosi in maniera simile ma nascondendo la presenza di altri malware.
  269. \end{itemize}
  270. \end{block}
  271.  
  272. \end{frame}
  273.  
  274.  
  275. \section{Reti neurali}
  276.  
  277. \subsection*{Introduzione}
  278. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  279. \begin{block}{Rete neurale}
  280. Un insieme di elementi calcolatori (neuroni) altamente interconnessi in grado di calcolare funzioni imparandole tramite esempi.
  281. \end{block}
  282.  
  283. \bigskip
  284.  
  285. \emph{Perché usare reti neurali?}
  286.  
  287. Perché copiamo dalla natura: il cervello umano è robusto, flessibile ed elastico, ed i calcoli sono fatti in parallelo.
  288. \end{frame}
  289.  
  290. \subsection*{Il neurone}
  291. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  292.  
  293. \begin{block}{Neurone}
  294. L'unità elaborativa di base delle reti neurali.
  295. \end{block}
  296.  
  297. \bigskip
  298.  
  299. 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).
  300.  
  301. \begin{figure}
  302. \centering
  303. \includegraphics{images/neurone.png}
  304. \caption{L'immagine mostra schematicamente un neurone.}
  305. \label{image:neuron}
  306. \end{figure}
  307.  
  308. \end{frame}
  309.  
  310. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  311. Un neurone è in grado di rappresentare solo funzioni linearmente separabili.
  312.  
  313. Ad esempio, la funzione XOR non può essere rappresentata
  314.  
  315. \begin{figure}
  316. \centering
  317. \includegraphics[scale=0.3]{images/xor.png}
  318. \caption{Le funzioni XOR, AND e OR dal punto di vista della separabilità lineare.}
  319. \label{image:xor}
  320. \end{figure}
  321.  
  322. Il problema si può risolvere usando più neuroni.
  323.  
  324. \end{frame}
  325.  
  326. \subsection*{Reti di neuroni}
  327. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  328. Unendo più neuroni si ottiene una rete.
  329.  
  330. Una caratteristica fondamentale della rete è la sua \textbf{topologia}, che determina la complessità degli algoritmi di addestramento e di calcolo.
  331.  
  332. \bigskip
  333.  
  334. \begin{wrapfigure}{r}{0.5\textwidth}
  335. \vspace{-20pt}
  336. \begin{center}
  337. \begin{figure}
  338. \centering
  339. \includegraphics[scale=0.11]{images/neural-network-example.png}
  340. \caption{Una rete neurale MLP}
  341. \label{image:neural-network-example}
  342. \end{figure}
  343. \end{center}
  344. \vspace{-20pt}
  345. \end{wrapfigure}
  346.  
  347. 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.
  348.  
  349. \end{frame}
  350.  
  351. \subsection*{Addestramento}
  352. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  353. \begin{block}{Addestramento}
  354. L'operazione di determinare i pesi dei collegamenti dei neuroni per minimizzare l'errore quadratico medio (MSE).
  355. \end{block}
  356.  
  357. \bigskip
  358.  
  359. L'algoritmo più famoso è la \emph{discesa lungo il gradiente}. Esso stima la scelta ottima dei pesi diminuendo iterativamente l'errore.
  360.  
  361. \bigskip
  362.  
  363. 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).
  364.  
  365. \bigskip
  366.  
  367. Questi algoritmi trovano un minimo locale, non globale (effetto gravità). Una soluzione possibile è scegliere una buona funzione di apprendimento (parametro $\eta$).
  368.  
  369. \end{frame}
  370.  
  371.  
  372. \section{Esperimenti}
  373.  
  374. \subsection*{Un IDS per l'analisi del traffico di rete}
  375. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  376.  
  377. \begin{wrapfigure}{r}{0.6\textwidth}
  378. \vspace{-20pt}
  379. \begin{center}
  380. \renewcommand{\arraystretch}{1.5}
  381. \begin{tabular}{|ll|}
  382. \hline
  383. \multicolumn{2}{|c|}{\textbf{Cannady, 1998}} \\
  384. \hline
  385. \textbf{Sorgente dati}      &   Network based \\
  386. \textbf{Cosa modella}       &   Pacchetti di rete \\
  387. \textbf{Frequenza d'uso}    &   Continuo o periodico \\
  388. \hline
  389. \end{tabular}
  390. \end{center}
  391. \vspace{-20pt}
  392. \end{wrapfigure}
  393.  
  394. Cannady realizza un IDS basato su una rete MLP con funzione di trasferimento logistica.
  395.  
  396. \medskip
  397.  
  398. La rete ha 9 ingressi, 2 uscite e 4 livelli nascosti (numero determinato dalla validazione).
  399.  
  400. \medskip
  401.  
  402. 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.
  403. \end{frame}
  404.  
  405.  
  406. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  407. 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.
  408.  
  409. \medskip
  410.  
  411. I risultati dimostrano l'ottima capacità di generalizzazione della rete neurale usata.
  412.  
  413. \bigskip
  414.  
  415. 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).
  416. \end{frame}
  417.  
  418. \subsection*{Un IDS per l'analisi del comportamento degli utenti}
  419. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  420.  
  421. \begin{wrapfigure}{r}{0.7\textwidth}
  422. \vspace{-20pt}
  423. \begin{center}
  424. \renewcommand{\arraystretch}{1.5}
  425. \begin{tabular}{|ll|}
  426. \hline
  427. \multicolumn{2}{|c|}{\textbf{Ryan, Lin, Miikkulainen, 1997}} \\
  428. \hline
  429. \textbf{Sorgente dati}      &   Host based \\
  430. \textbf{Cosa modella}       &   Comportamento dell'utente \\
  431. \textbf{Frequenza d'uso}    &   Periodico \\
  432. \hline
  433. \end{tabular}
  434. \end{center}
  435. \vspace{-20pt}
  436. \end{wrapfigure}
  437.  
  438. In questo esperimento si è scelto di modellare il comportamento dei singoli utenti invece che il comportamento di un utente in generale.
  439.  
  440. \medskip
  441.  
  442. La rete usata è una MLP a 3 livelli con 100 ingressi (una per ogni comando monitorato) e 10 uscite (una per ogni utente).
  443. \end{frame}
  444.  
  445. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  446. 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).
  447.  
  448. \bigskip
  449.  
  450. \begin{itemize}
  451. \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.
  452. \item La rete è stata testata anche su vettori casuali, riconoscendone come anomali il $96\%$.
  453. \end{itemize}
  454.  
  455. \bigskip
  456.  
  457. I risultati ottenuti sono buoni, ma bisogna vedere se con un maggiore numero di utenti resterebbero altrettanto buoni.
  458.  
  459. \end{frame}
  460.  
  461. \subsection*{Una rete neurale come componente di un IDS}
  462. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  463.  
  464. \begin{wrapfigure}{r}{0.7\textwidth}
  465. \vspace{-20pt}
  466. \begin{center}
  467. \renewcommand{\arraystretch}{1.5}
  468. \begin{tabular}{|ll|}
  469. \hline
  470. \multicolumn{2}{|c|}{\textbf{Debar, Becker e Siboni, 1992}} \\
  471. \hline
  472. \textbf{Sorgente dati}      &   Host based \\
  473. \textbf{Cosa modella}       &   Comportamento dell'utente \\
  474. \textbf{Frequenza d'uso}    &   Continuo \\
  475. \hline
  476. \end{tabular}
  477. \end{center}
  478. \vspace{-20pt}
  479. \end{wrapfigure}
  480.  
  481. I ricercatori hanno usato una rete neurale come parte di un sistema più complesso. Il sistema deve riconoscere i comportamenti maligni degli utenti.
  482.  
  483. \bigskip
  484.  
  485. 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.
  486. \end{frame}
  487.  
  488. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  489.  
  490. \begin{itemize}
  491. \item La rete, addestrata con metà dei 6550 comandi di 8 sessioni, ha indovinato il $95\%$ dei comandi con sicurezza.
  492. \item Usando i comandi di una sola sessione per l'addestramento, la rete ha riconosciuto l'$80\%$ dei comandi.
  493. \end{itemize}
  494.  
  495. \medskip
  496.  
  497. 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.
  498.  
  499. \bigskip
  500.  
  501. Nota: avendo più di un utente sono necessarie più reti neurali, una per ognuno.
  502. \end{frame}
  503.  
  504. \subsection*{Intrusion detection attraverso la profilazione dei programmi}
  505. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  506.  
  507. \begin{wrapfigure}{r}{0.74\textwidth}
  508. \vspace{-20pt}
  509. \begin{center}
  510. \renewcommand{\arraystretch}{1.5}
  511. \begin{tabular}{|ll|}
  512. \hline
  513. \multicolumn{2}{|c|}{\textbf{Ghosh, Schwartzbard, Schatz, 1999}} \\
  514. \hline
  515. \textbf{Sorgente dati}      &   Host based \\
  516. \textbf{Cosa modella}       &   Comportamento dei programmi \\
  517. \textbf{Frequenza d'uso}    &   Continuo \\
  518. \hline
  519. \end{tabular}
  520. \end{center}
  521. \vspace{-20pt}
  522. \end{wrapfigure}
  523.  
  524. Nell'esperimento, una rete neurale è stata usata per riconoscere anomalie nei programmi attraverso le loro chiamate di sistema.
  525.  
  526. \bigskip
  527.  
  528. Gli esperimenti sono stati fatti sotto l'ipotesi del \emph{principio di località temporale} per le anomalie.
  529. \end{frame}
  530.  
  531. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  532.  
  533. \begin{wrapfigure}{r}{0.3\textwidth}
  534. \vspace{-20pt}
  535. \begin{center}
  536. \begin{figure}
  537. \centering
  538. \includegraphics[scale=0.40]{images/ghosh-elman.png}
  539. \caption{Una rete di Elman}
  540. \label{image:elman-network}
  541. \end{figure}
  542. \end{center}
  543. \vspace{-20pt}
  544. \end{wrapfigure}
  545.  
  546. Tre sistemi sono stati implementati:
  547. \begin{enumerate}
  548. \item Un algoritmo di pattern matching tramite semplice uguaglianza di stringhe in finestre temporali.
  549. \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à.
  550. \item Una \emph{rete di Elman} con $n$ ingressi ed un'uscita. Anche per essa è stato usato un accumulatore.
  551. \end{enumerate}
  552.  
  553. \end{frame}
  554.  
  555. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  556.  
  557. \begin{wrapfigure}{r}{0.6\textwidth}
  558. \vspace{-25pt}
  559. \begin{center}
  560. \begin{figure}
  561. \centering
  562. \includegraphics[scale=0.5]{images/ghosh-results.png}
  563. \caption{L'immagine mostra i grafici ROC dei tre sistemi.}
  564. \label{image:ghosh-results}
  565. \end{figure}
  566. \end{center}
  567. \vspace{-20pt}
  568. \end{wrapfigure}
  569.  
  570. I primi due sistemi decidevano se fosse in corso un'anomalia o meno, mentre la rete di Elman prevedeva la successiva system call.
  571.  
  572. \bigskip
  573.  
  574. I risultati ottenuti sono stati differenti. Il grafico ROC in figura \ref{image:ghosh-results} mette le performance a confronto.
  575.  
  576. \end{frame}
  577.  
  578. \subsection*{Intrusion detection basata sulle statistiche del traffico di rete}
  579. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  580.  
  581. \begin{wrapfigure}{r}{0.7\textwidth}
  582. \vspace{-20pt}
  583. \begin{center}
  584. \renewcommand{\arraystretch}{1.5}
  585. \begin{tabular}{|ll|}
  586. \hline
  587. \multicolumn{2}{|c|}{\textbf{Bivens, Palagiri, Smith et al., 2002}} \\
  588. \hline
  589. \textbf{Sorgente dati}      &   Network based \\
  590. \textbf{Cosa modella}       &   Statistiche del traffico di rete \\
  591. \textbf{Frequenza d'uso}    &   Continuo \\
  592. \hline
  593. \end{tabular}
  594. \end{center}
  595. \vspace{-20pt}
  596. \end{wrapfigure}
  597.  
  598. Sono state usate una rete MLP ed una \emph{self-organizing map} (SOM) per rilevare attacchi di tipo (distributed) \emph{denial of service}.
  599.  
  600. \bigskip
  601.  
  602. Il sistema era composto di tre componenti in cascata:
  603. \begin{enumerate}
  604. \item Un aggregatore di connessioni tcp per porte monitorate e per host sorgenti in un intervallo di tempo.
  605. \item Una rete SOM per aggregare gli host in gruppi dal comportamento simile.
  606. \item Una rete MLP per determinare se fosse in corso un attacco.
  607. \end{enumerate}
  608. \end{frame}
  609.  
  610. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  611. I risultati si possono dividere in tre parti:
  612. \begin{itemize}
  613. \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\%$.
  614. \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\%$.
  615. \item In generale, con altri attacchi, singolarmente, viene detto genericamente che la rete si è comportata bene.
  616. \end{itemize}
  617.  
  618. \bigskip
  619.  
  620. La rete ha avuto performance scadenti.
  621.  
  622. Articolo povero di dettagli: un grafico ROC sarebbe stato più utile.
  623. \end{frame}
  624.  
  625. \subsection*{Intrusion detection tramite conteggio di keyword}
  626. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  627.  
  628. \begin{wrapfigure}{r}{0.6\textwidth}
  629. \vspace{-20pt}
  630. \begin{center}
  631. \renewcommand{\arraystretch}{1.5}
  632. \begin{tabular}{|ll|}
  633. \hline
  634. \multicolumn{2}{|c|}{\textbf{Lippmann, Cunningham, 2000}} \\
  635. \hline
  636. \textbf{Sorgente dati}      &   Network based \\
  637. \textbf{Cosa modella}       &   Conteggio di keyword \\
  638. \textbf{Frequenza d'uso}    &   Continuo \\
  639. \hline
  640. \end{tabular}
  641. \end{center}
  642. \vspace{-15pt}
  643. \end{wrapfigure}
  644.  
  645. È stata usata una rete neurale MLP per determinare la pericolosità di sessioni \emph{telnet} in base all'istogramma di alcune keyword al loro interno.
  646.  
  647. \bigskip
  648.  
  649. Sono state usate sia keyword di attacchi specifici sia keyword di carattere generale.
  650.  
  651. Il numero di keyword e la topologia sono state scelte usando la \emph{validazione $k$-fold}.
  652.  
  653. \end{frame}
  654.  
  655.  
  656. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  657.  
  658. \scriptsize
  659.  
  660. \begin{figure}
  661. \begin{center}
  662. \begin{tabular}{|l|p{7cm}|}
  663. \hline
  664. \textbf{Esempi di keyword}  &   \textbf{Perché sono state inserite} \\
  665. \hline
  666. \lstinline$passwd$  &   \multirow{3}{7cm}{Per rilevare azioni sospette} \\
  667. \lstinline$shadow$  &   \\
  668. \lstinline$permission denied$   &    \\
  669. \hline
  670. \lstinline$from: |$ &   \multirow{2}{7cm}{Per rilevare attacchi noti} \\
  671. \lstinline$login: guest$    &   \\
  672. \hline
  673. \lstinline$uuencode$    &   \multirow{2}{7cm}{Per rilevare download di codice maligno} \\
  674. \lstinline$>ftp get$    &   \\
  675. \hline
  676. \lstinline$chmod$   &   \multirow{2}{7cm}{Per rilevare la predisposizione di un attacco} \\
  677. \lstinline$gcc$ &   \\
  678. \hline
  679. \lstinline$root:$   &   \multirow{2}{7cm}{Per rilevare una shell di root} \\
  680. \lstinline$\# $ &   \\
  681. \hline
  682. \lstinline$Jumping to address$  &   Per individuare messaggi di debug di alcuni programmi \\
  683. \hline
  684. \lstinline$fdformat$    &   \multirow{2}{7cm}{Per individuare il codice sorgente di alcuni software maligni} \\
  685. \lstinline$ffbconfig$   &   \\
  686. \hline
  687. \lstinline$linsniff$    &   \multirow{2}{7cm}{Per individuare alcune azioni comunemente eseguite dopo che l'attacco ha avuto successo} \\
  688. \lstinline$.rhost$  &   \\
  689. \hline
  690. \end{tabular}
  691. \caption{Alcune keyword delle keyword usate nell'esperimento.}
  692. \label{table:lippmann-keywords}
  693. \end{center}
  694. \end{figure}
  695.  
  696. \end{frame}
  697.  
  698. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  699.  
  700. 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.
  701.  
  702. \smallskip
  703.  
  704. Più difficoltà nell'individuare attacchi divisi in più sessioni, a causa dei conteggi keyword più bassi.
  705.  
  706. \begin{figure}
  707. \vspace{-10pt}
  708. \centering
  709. \subfigure[Attacchi conosciuti vs sconosciuti.]{\includegraphics[scale=0.42]{images/lippmann-results.png}}
  710. \hspace{5mm}
  711. \subfigure[Attacchi in sessione unica vs multi-sessione.]{\includegraphics[scale=0.46]{images/lippmann-results2.png}}
  712. \caption{I grafici ROC delle performance ottenute dal sistema.}
  713. \label{image:mlp-vs-elman}
  714. \end{figure}
  715. \end{frame}
  716.  
  717. \section{Conclusioni}
  718. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  719. 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.
  720. \end{frame}
  721.  
  722. \begin{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  723. 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.
  724. \end{frame}
  725.  
  726. \end{document}
Advertisement
Add Comment
Please, Sign In to add comment