Network intrusion detection system
I NIDS, Network Intrusion Detection System, sono degli strumenti informatici, software o hardware, dediti ad analizzare il traffico di uno o piu segmenti di una LAN al fine di individuare anomalie nei flussi o probabili intrusioni informatiche.
I piu comuni NIDS sono composti da una o piu sonde dislocate sulla rete, che comunicano con un server centralizzato, che in genere si appoggia ad un Database. Fra le attività anomale che un NIDS rileva possono presentarsi: accessi non autorizzati, propogazione di software malevolo, acquisizione abusiva di privilegi appartenenti a soggetti autorizzati, intercettazione del traffico (sniffing), negazioni di servizio (DoS).
Funzionamento
Le logiche su cui i NIDS si basano per riconoscere flussi non autorizzati si distinguono in:
- Pattern Matching: l'abilità del NIDS di confrontare i flussi a delle signatures, stile Antivirus, e di notificarli prontamente. Le signatures in genere indicano un set di condizioni, ad esempio: Se un pacchetto è IPv4, TCP, la porta di destinazione la 31337, e il payload contiene foo, fai scattare "l'allarme".
- Anomaly Detection: il riconoscimento di flussi sospetti grazie ad un sofisticato meccanismo di funzioni e algoritmi matematici che si rifanno alle RFC e ai loro standard. Se uno o piu flussi non rispettano gli standard, il sistema segnala l'errore con il consueto allarme.
Quando i NIDS rilevano degli eventi significativi li classificano in base alla loro criticità, ad esempio Low, Medium, High; spesso si presentano dei falsi positivi, ovvero eventi che in realtà non costituiscono un pericolo per i sistemi informatici, dovuti in genere a malconfigurazioni da parte degli amministratori dei sistemi. In genere i sensori di rete che comunicano con il server centralizzato del NIDS effettuano un monitoring full-duplex passivo della rete, posizionati dietro un TAP, brutalmente definibile come un 'rubinetto' che regola il traffico e che si preoccupa di far rimanere la sonda invisibile sulla rete. Affinche i sensori lavorino correttamente devono essere sottoposti ad un continuo aggiornamento delle signatures per contrastare le vulnerabilità piu recenti.
I moderni NIDS lavorano sempre con dei Firewall, a tal scopo stanno prendendo sempre piu piede nel settore commerciale gli IPS, intrusion prevention system, che oltre a fornire il controllo sui flussi, procedono ulteriormente bloccando quelli non autorizzati.
Pro e Contro
In un sistema informatico che implementa valide politiche di sicurezza, un buon sistema di incident response e che adotta firewall, antivirus e tutte le più moderne misure di sicurezza, i NIDS giocano un ruolo fondamentale, in quanto:
- analizzano il payload dei pacchetti identificando il traffico anomalo;
- danno informazioni sulle scansioni che la rete ha ricevuto;
- permettono di ricevere allarmi real-time;
- evidenziano eventuali errori nella configurazione del sistema;
- evidenziano eventuali vulnerabilità della rete;
- permettono di monitorare il comportamento degli utenti interni alla rete;
- segnalano se qualche altra misura di sicurezza, come il firewall o l?antivirus, non ha funzionato correttamente;
- rilevano eventuali attacchi provenienti dalla rete interna verso la rete esterna;
- rilevano la presenza di eventuali worm che cercano di inviare informazioni all?esterno della rete;
- effettuano il monitoraggio delle risorse condivise utilizzate;
- permettono di capire quali misure preventive adottare al fine di evitare eventuali attacchi futuri;
- sono difficili da rilevare in quanto agiscono passivamente.
Le ampie funzionalità descritte hanno portato alcuni amministratori di rete a pensare che i NIDS siano in grado di segnalare e risolvere qualsiasi problema di sicurezza. Paradossalmente, pensare che i NIDS garantiscano totale sicurezza date le loro enormi potenzialità, può risultare controproducente in quanto ciò genererebbe un falso senso di sicurezza. Non esiste, infatti, né totale sicurezza, né un unico prodotto che permetta di essere totalmente sicuri.
Anche se i NIDS sono sicuramente necessari a garantire un buon livello di sicurezza del sistema, da soli non sarebbero sufficienti in quanto:
- non sostituiscono l?esistente staff di sicurezza in quanto necessitano di costante monitoraggio;
- non individuano attacchi che sfruttano vulnerabilità non ancora rese pubbliche detti 0-day;
- agiscono passivamente, ovvero non bloccano il traffico dannoso anche se possono essere configurati per interagire con un firewall;
- quando c?è una grande quantità di traffico da processare, è possibile che vengano persi dei pacchetti, con conseguente fallimento nella rilevazione di un attacco;
- non possono analizzare informazioni criptate;
- identificano un tentativo d?attacco ma non rilevano se questo è riuscito;
- presentano problemi nel gestire attacchi che utilizzano pacchetti fram- mentati;
- incrementando il numero delle firme , può essere ridotta l?efficenza del NIDS;
- richiedono notevoli risorse in termini di spazio per l?archiviazione dei log;
- non sostituiscono gli altri meccanismi di protezione.
Da quanto detto, emerge che i NIDS sono necessari ad aumentare il controllo sull?attività dei sistemi ma non sono sufficienti a garantire la continuità del servizio in quanto agiscono passivamente.
NIDS vs Firewall
Sia i firewall che i NIDS collaborano al fine di prevenire accessi abusivi ad una rete. Entrambi sono fondamentali ma nessuno è sufficiente a garantire da solo un elevato livello di sicurezza. A parte queste analogie, ci sono delle sostanziali differenze tecniche che li caratterizzano. I firewall hanno funzione di filtraggio dei pacchetti allo scopo di bloccare il traffico non conforme alle loro politiche. I pacchetti vengono filtrati in base all?indirizzo IP sorgente o di destinazione e alle corrispettive porte. Difficilmente i log memorizzati riguardano il traffico permesso, in quanto ritenuto affidabile. Se alcuni dei pacchetti dannosi riuscissero a superare il firewall a causa di una configurazione non corretta dello stesso, o di una qualsiasi vulnerabilità sfruttata, non solo sarebbe possibile portare a termine un attacco con successo ma, sopratutto, non verrebbe memorizzata alcuna informazione in merito. Per ovviare a questo problema, entrano in gioco i NIDS, i quali analizzano il contenuto di tali pacchetti e segnalano con un allarme ogni attività anomala individuata, indipendentemente dal successo o dall?insuccesso della stessa. Inoltre nel caso in cui un attacco provenisse dall?interno della rete, il firewall non avrebbe utilità alcuna. Esso infatti, pur essendo capace di filtrare il traffico verso e dalla rete esterna, non ha alcun potere sul traffico interno alla rete. Altra debolezza dei firewall è dovuta al fatto che talvolta gli utenti per ingenuità o impazienza si collegano a Internet creando connessioni non autorizzate tramite modem. Questo comportamento mette a rischio l?intera rete perchè il traffico generato, anche in questo caso, non sarà filtrato dal firewall. I NIDS, pertanto, pur monitorando il traffico interno alla rete, non eliminano i firewall.
Tecniche di Analisi dei Pacchetti
Impostando la scheda di rete del NIDS in modalità promisqua, è possibile ?ascoltare? in maniera passiva tutto il traffico passante sul segmento di rete, senza interferire sullo stesso. L?analisi dei pacchetti può essere effettuata mediante tre tecnologie: la pattern matching analysis, la stateful pattern matching analysis e la protocol analysis.
La Pattern Matching Analysis si occupa di analizzare i contenuti dei pacchetti alla ricerca di sequenze di bit prefissate. Questo è un approccio semplice da implementare ma, allo stesso tempo, abbastanza rigido e pesante dal punto di vista computazionale in quanto ogni pacchetto deve essere confrontato con centinaia di firme di intrusion detection. Ogni firma è associata a un attacco specifico e istruisce l?IDS sul tipo di pacchetto da considerare anomalo. Ciascuna firma assume una struttura composta da sei componenti <protocollo>, <ip_src>, <porta_src>, <ip_dst>, <porta_dst> e <payload_con_exploit> che vengono confrontati con i pacchetti in ingresso e in uscita nel seguente modo: SE il protocollo utilizzato è <protocollo>, l?indirizzo IP sorgente è <ip_src>, la porta associata all?indirizzo IP sorgente è <porta_src>, l?indirizzo IP di destinazione è <ip_dst>, la porta associata all?indirizzo IP di destinazione è <porta_dst> e il payload contenuto nel pacchetto è <payload_con_exploit>, ALLORA genera un allarme. In base a quanto descritto fino ad ora, un allarme viene generato quando si verifica il pattern matching tra un pacchetto e una regola. Questo significa che sarebbe sufficiente dividere la stringa dell?exploit contenuta nel payload in due frame TCP, per non far rilevare l?attacco. Per risolvere questo problema, è stato introdotta la Stateful Pattern Matching Analysis che è un criterio più sofisticato di analisi che effettua gli stessi controlli della Pattern Matching Analysis tenendo però conto dello stream TCP dei dati. Questo comporta maggiore carico computazionale in quanto capita spesso che ci siano sessioni TCP aperte da monitorare per un lungo periodo.
La Protocol Analysis invece, genera un allarme per ogni violazione delle specifiche tecniche di un protocollo. Si supponga, per esempio, che un client intenda aprire una connessione TCP con un server, a tal fine invia un pacchetto SYN e si aspetta di ricevere o un pacchetto SYN/ACK o un RST/ACK. Qualsiasi altro pacchetto ricevuto viene considerato una violazione e genera un allarme. Questa tecnica minimizza, qualora il protocollo sia ben definito, il numero di falsi positivi generati se traffico lecito viene riconosciuto come anomalo, tuttavia, non è raro trovare delle RFC ambigue che lasciano spazio agli sviluppatori di implementare il protocollo a propria discrezione.
Allarmi Falsi Positivi e Falsi Negativi
I NIDS lavorano con grandi quantità di dati e per funzionare necessitano di almeno un algoritmo di generazione degli allarmi. Alcuni amministratori scelgono di ritenere anomalo tutto il traffico considerato non affidabile (politica chiusa), altri invece scelgono di ritenere affidabile tutto il traffico non considerato anomalo (politica aperta). Nella prima ipotesi il carico computazionale del NIDS sarà rilevante e verrà generato un alto numero di falsi allarmi detti falsi positivi che possono essere dovuti a:
- pacchetti generati da alcuni dispositivi di rete non riconosciuti dal NIDS;
- violazioni di protocolli non dovute ad attacchi ma ad implementazioni ambigue;
- circostanze normali ritenute pericolose dal NIDS, come per esempio la visualizzazione di una pagina web contenete il codice sorgente di un exploit.
Nella seconda ipotesi il numero di allarmi sarà notevolmente minore, ma si corre il rischio di non identificare il traffico anomalo che non trova alcuna corrispondenza con le regole impostate, generando falsi negativi che sono più difficili da rilevare e possono essere dovuti a:
- configurazioni non appropriate della rete;
- quantità di traffico elevata a tal punto da non essere supportata dal NIDS;
- traffico cifrato;
- firme errate o troppo generiche;
- attacchi 0-day dei quali non è stata ancora rilasciata la corrispettiva firma.
Il numero di falsi negativi può essere limitato solo con una costante manutenzione del NIDS e con un frequente aggiornamento delle firme. Per trovare il giusto equilibrio tra falsi positivi e falsi negativi, è opportuno analizzare approfonditamente la topologia della rete ed eliminare la causa che genera falsi allarmi. Procedere eliminando radicalmente la regola corrispondente ad un attacco, potrebbe essere una scelta troppo ingenua e superficiale che tal volta può comportare il rischio di non rilevare attacchi reali.
Bibliografia
- Danilo Vizzarro, "Progettazione di un Intrusion Detection System", December 2006.
Voci correlate
Collegamenti esterni
- (EN) Snort - Popolare NIDS Open Source
- (EN) ISS RealSecure Network IDS
- (EN) The RFC Archive