Capitolo 1
Intrusion Detection System
Nell'ambito della sicurezza nelle reti, la prevenzione è adatta solo nelle situazioni in cui gli utenti interni sono fidati e si hanno interazioni limitate con altre reti, ma c’è bisogno di un sistema che agisca nel momento in cui la prevenzione fallisce: un Intrusion Detection System (IDS) è uno strumento hardware o software che ha la funzione di monitorare la rete e individuare il traffico non autorizzato. Lo scopo principale di un IDS è quello di rilevare gli attacchi prima che essi causino un impatto sul sistema stesso.
Un Intrusion Detection System deve monitorare ogni sistema della rete, essere semplice ma altamente affidabile e in grado di riconoscere un attacco in modo rapido con una diagnosi accurata del problema. Deve, inoltre, rilevare gli attacchi incidendo con un effetto limitato sulle prestazioni del sistema. È necessario tuttavia combinare gli allarmi generati dall'IDS al momento dell'intrusione con l'azione tempestiva dell’amministratore di rete, che deve provvedere ad attuare le opportune azioni di verifica.
Gli IDS agiscono su un’ampia gamma di attacchi, controllando ad esempio approfonditamente tutto il contenuto dei singoli pacchetti di ogni applicazione.
1.1 Tassonomia degli IDS
Questi strumenti possono essere classificati secondo diversi criteri.
Una prima differenza sta nel tipo di approccio utilizzato per l’analisi degli eventi: gli IDS stateless analizzano ogni singolo evento in modo indipendente dagli altri, poiché, come suggerisce il nome, non mantengono nessun tipo di informazione sui dati elaborati in precedenza; essi richiedono una progettazione del sistema semplice e garantiscono alte velocità di elaborazione dei dati, ma non sono IDS molto efficienti. Infatti, ad esempio, non possono rilevare attacchi caratterizzabili solo sulla base dell’osservazione di un flusso di eventi.
Gli IDS statefull, al contrario, mantengono informazioni sugli eventi trascorsi, e sono più efficienti nello scoprire attacchi di tipo distribuito, ma richiedono una progettazione di sistema più complessa. Essi possono rilevare attacchi caratterizzabili solo sulla base di un flusso di eventi- l'effetto di
un certo evento dipende quindi dalla sua posizione nel flusso; tuttavia sono vulnerabili ad attacchi (di tipo Denial of Service) che intasano l’attività dell’IDS, poiché sono costretti a mantenere informazioni in eccesso su tutti gli eventi, che così riempiono il buffer e non consentono più la memorizzazione delle informazioni e quindi un corretto funzionamento dell'IDS.
Un'altra distinzione riguarda gli IDS misuse (o signature)
based e anomaly based. I primi creano un database di regole
che caratterizzano gli attacchi noti, e, confrontandoli con il traffico considerato, cercano nei dati reali dei comportamenti maliziosi; questo tipo di IDS è pertanto efficace nello scoprire soltanto attacchi già noti, ma non consente di identificare attacchi nuovi. Gli IDS anomaly based operano con un approccio complementare: essi costruiscono un profilo per il traffico normale e sulla base di questo modello stabiliscono se esistano attacchi all'interno della rete. Serve quindi una fase di training iniziale, in cui si costruisce un modello di traffico normale; confrontando poi il traffico reale con il modello noto si verifica se vi siano attacchi. Il successo di questo tipo di IDS dipende da diversi fattori, come la scelta dei parametri del sistema, le caratteristiche di selezione e le misure di somiglianza. Gli IDS anomaly based presentano il vantaggio
che riescono a riconoscere nuovi tipi di attacchi, ma dall’altra parte soffrono di un’alta probabilità di generare falsi allarmi, principalmente perché anche dati normali non osservati in precedenza sono riconosciuti come anomalie.
Allo stato attuale, l'approccio più utilizzato è quello misuse based, grazie alla bassa probabilità di falso allarme; poiché tuttavia questo metodo non permette di riconoscere attacchi nuovi, la soluzione migliore è combinare i due tipi di IDS.
Gli IDS si possono suddividere anche in relazione a cosa monitorano: esistono, infatti, IDS che analizzano le reti locali e quelli che monitorano gli host.
Figura 2. Confronto tra NIDS e HIDS.
Gli IDS host based sono specializzati nell'evadere attacchi relativi a un singolo host, poiché consistono in una
componente che analizza l'host su cui sono installati, alla ricerca di intrusioni; essi devono essere pertanto compatibili con il sistema operativo installato sull'host e sono efficaci soltanto nello scoprire attacchi interni alla rete.
Al contrario, i NIDS (Network based IDS), come suggerisce il nome, tengono sotto controllo un intero segmento di rete (o sottorete), nel quale monitorano i vari host. Gli IDS network based hanno l’obiettivo di scoprire attacchi che colpiscono la rete nel suo complesso, e sono indipendenti dall'architettura e dal sistema operativo, poiché, a differenza di un Host IDS, un Network IDS è installato su un sistema separato dall’host che sta monitorando. Inoltre, i NIDS sono efficaci nello scoprire attacchi effettuati dall'esterno.
In figura 2 sono illustrate le differenze tra questi due approcci per gli IDS.
Attualmente, si preferisce utilizzare IDS della seconda tipologia, poiché sono utili nello scoprire attacchi di tipo Denial of Service Distribuiti (DDoS, visualizzati in figura 1).
Infine, la distinzione che è più significativa per l'architettura proposta, è tra IDS centralizzati e distribuiti.
Gli IDS centralizzati prevedono che un’unica macchina esegua le operazioni necessarie per la sicurezza nella rete,
posta nel punto in cui la rete interna si connette a Internet; la caratteristica di questa tipologia di sistemi è quindi che esiste un unico punto di debolezza, ma la struttura è più semplice da realizzare rispetto al caso distribuito.
La sicurezza di un sistema di questo genere è in gran parte affidata alla protezione fisica del sistema complessivo, e gli utenti hanno a disposizione dei meri dispositivi di input/output.
Inoltre, questo approccio presenta un ulteriore punto di debolezza dovuto alla elevata complessità delle reti attuali: ormai esistono reti geografiche di estensione mondiale e di complessità un tempo impensabile; l’utilizzo di strutture difensive centralizzate pone quindi notevoli problemi, in quanto spesso vanno analizzati contemporaneamente i dati di sottoreti con proprietari diversi.
Gli IDS distribuiti contengono invece diverse componenti, ognuna con un suo compito: i sensori, distribuiti attraverso la rete, raccolgono i dati da elaborare in punti diversi della rete e riportano le informazioni a un sistema centrale; la console monitora i record, coordina i sensori e genera le statistiche con cui il Central Engine, unità che memorizza gli eventi, stabilisce se c’è un allarme, e lo comunica poi all’utente
sottoforma ad esempio di e-mail o di effetto sonoro. Gli IDS distribuiti hanno bisogno di maneggiare diversi formati di dati e di un protocollo di comunicazione sicuro. Questa seconda tipologia di IDS è migliore rispetto all’altra, poiché è più efficace nel monitoraggio di reti di grandi dimensioni e non presenta un unico punto di debolezza.
Per quanto riguarda gli Intrusion Detection System distribuiti, gli approcci sono due:
o Far rilevare gli attacchi ai singoli probe attraverso un metodo di IDS e poi comunicarli a un’unità che stabilisce se gli attacchi sono correlati o meno tramite meccanismi di alert correlation. Questa tecnica, infatti, analizza gli allarmi prodotti da più Intrusion Detection System e fornisce una visione più succinta e di alto livello dello stato di sicurezza della rete sotto sorveglianza. Questo caso coincide con un approccio centralizzato, ed è rappresentato in figura 3.
Figura 3. Architettura centralizzata.
o Distribuire la raccolta dei dati sui probe e trasmettere successivamente tutte le informazioni a un nodo centrale, che li elabora e decide se sta avvenendo un attacco o no. Questa architettura è invece di natura distribuita.