Introduzione
La sicurezza nelle reti richiede sia delle tecnologie preventive, sia delle tecniche di rilevamento delle intrusioni e di reazione ad esse.
I requisiti necessari affinché una rete sia sicura sono principalmente tre: la segretezza, grazie alla quale solo il mittente e il destinatario possono comprendere il contenuto del messaggio; l'autenticazione, per cui i due utenti coinvolti nella comunicazione richiedono conferme sulla reciproca identità;
l'integrità del messaggio, per cui trasmettitore e ricevitore vogliono essere sicuri che il messaggio arrivi inalterato.
Tuttavia, la sicurezza assoluta non può essere garantita;
infatti, queste soluzioni possono fallire perché è possibile che gli attacker riescano a penetrare ugualmente all’interno del sistema. Inoltre, le competenze richieste a un hacker per scagliare un attacco nel corso degli anni sono sempre più basse, poiché è possibile reperire facilmente su Internet sia dei software già pronti sia delle informazioni utili per scriverne di nuovi: la rete è esposta a rischi. Pertanto, la prevenzione è adatta limitatamente a quando gli utenti interni sono fidati ed hanno interazioni limitate con altre reti, ma c’è bisogno di un
Introduzione
sistema che agisca quando essa fallisce. La soluzione è usare un Intrusion Detection System (IDS), che è uno strumento hardware o software che ha la funzione di monitorare la rete e individuare il traffico non autorizzato, fornendo in questo modo un livello aggiuntivo di difesa.
Figura 1. Esempio di attacchi flooding DDoS lanciati da un gran numero di terminali appartenenti a reti diverse verso un host vittima comune.
Tuttavia, recentemente si sono diffusi gli attacchi coordinati (un esempio dei quali sono quelli di tipo DoS distribuiti, illustrati in figura 1), che hanno la particolarità di avvenire in più reti simultaneamente; questo rende la rilevazione delle intrusioni estremamente difficile, soprattutto
se effettuata utilizzando IDS isolati che monitorano solo una porzione limitata della rete: è a questo problema che puntano gli IDS di tipo distribuito. Infatti, uno dei possibili approcci per realizzare un IDS è diffondere i vari elementi che lo costituiscono nella rete.
L'obiettivo che si prefigge questo lavoro di tesi è valutare le prestazioni dell’architettura proposta, confrontandola un altro approccio distribuito all’anomaly detection, in modo da verificare cioè se convenga distribuire la raccolta dei dati ma elaborarli in modo centralizzato o realizzare anche l'anomaly detection sulle sonde e poi centralizzare solo l'alert correlation.
Per quanto riguarda l'organizzazione dell'elaborato, il capitolo 1 introdurrà gli IDS, esponendo in particolare le tipologie esistenti di Intrusion Detection; il capitolo 2 descriverà i LogLog Counter, che sono una struttura dati che permette di stimare la cardinalità di un insieme; il capitolo 3 introdurrà i Reversible Sketch, che sono una struttura dati derivata dagli sketch tradizionali, che fornisce però la funzionalità aggiuntiva di risalire a quali chiavi sono cadute in ogni cella; il 4 spiegherà il funzionamento dell’algoritmo MNP-CUSUM, ovvero una variante del meccanismo CUSUM, che identifica se è avvenuto un cambiamento nella
Introduzione
distribuzione temporale dei bucket e in quale bucket, anche nel caso in cui non siano note le distribuzioni del traffico prima e dopo il cambiamento; il 5 mostrerà dettagliatamente l’architettura proposta; il capitolo 6 esporrà i risultati ottenuti dalle sperimentazioni, e infine l'appendice riporta il codice C++
che implementa l’intera architettura.
Capitolo 1 Intrusion Detection System