I NIDS, Network Intrusion Detection System, sono degli strumenti informatici, software o hardware, dediti ad analizzare il traffico di uno o più segmenti di una LAN al fine di individuare anomalie nei flussi o probabili intrusioni informatiche.

I più comuni NIDS sono composti da una o più sonde dislocate sulla rete, che comunicano con un server centralizzato, che in genere si appoggia ad un Database. Fra le attività anomale che possono presentarsi e venire rilevate da un NIDS vi sono: accessi non autorizzati, propagazione 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 più 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 network tap, brutalmente definibile come un 'rubinetto' che regola il traffico e che si preoccupa di far rimanere la sonda invisibile sulla rete. Affinché i sensori lavorino correttamente devono essere sottoposti ad un continuo aggiornamento delle signatures per contrastare le vulnerabilità più recenti.

I moderni NIDS lavorano sempre con dei Firewall, a tal scopo stanno prendendo sempre più 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:

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:

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, soprattutto, 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à promiscua, è 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, è stata 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:

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:

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 talvolta può comportare il rischio di non rilevare attacchi reali.

Risposta dei NIDS

Gli IDS generalmente non intervengono sul traffico, ma si limitano a rispondere passivamente segnalando le anomalie tramite messaggi di testo, email, o telefonate. La modalità di segnalazione dell'allarme spesso dipende dalla gravità dello stesso. Alcuni IDS, possono anche essere programmati per rispondere attivamente agli attacchi più seri, adottando una delle seguenti contromisure:

Tuttavia, configurando l'IDS per rispondere attivamente ad attacchi, in caso di falsi positivi si rischierebbe il blocco delle connessioni che normalmente dovrebbero essere consentite causando un DoS.

Posizionamento

Una delle attività maggiormente critiche nella configurazione e messa in opera di un IDS è il suo posizionamento all'interno della rete da monitorare. In base alla topologia della rete, possono presentarsi diversi casi. Quando in un segmento di rete gli host sono collegati da un hub, l'implementazione di un NIDS è relativamente semplice perché l'hub è una componente di rete che si occupa di replicare ogni singolo pacchetto su tutte le porte. In questo modo è sufficiente collegare il NIDS a una porta qualsiasi dell'hub per poter leggere tutto il traffico passante.

In presenza di uno switch, invece, la situazione è diversa e l'implementazione dei NIDS è maggiormente complicata. Gli switch, infatti, lavorano ad un livello superiore della pila ISO/OSI rispetto agli hub e quando devono inviare un pacchetto, lo inviano solo verso la relativa porta di destinazione. Una soluzione per poter leggere tutto il traffico del segmento di rete è il port mirroring che consiste nel monitorare una o più porte dello switch, copiandone il traffico su un'altra porta detta mirror port. Tale porta dovrà necessariamente avere una capacità di banda possibilmente pari alla somma della capacità di banda di tutte le porte monitorate. Solo in questo modo il traffico potrà essere gestito in modo opportuno.

Come detto, la scelta del posizionamento degli IDS è un'attività molto delicata che deve tener conto delle esigenze della rete e delle risorse di cui si dispone.

Un'altra variabile da considerare nel posizionamento di un IDS è la sua collocazione rispetto ad un firewall. Posizionando l'Intrusion Detection System all'esterno del firewall, si identificheranno tutte le attività anomale incluse quelle che non avranno accesso alla rete in quanto bloccate dal firewall. Un IDS disposto in questo modo sarà più esposto agli attacchi provenienti dall'esterno perché privo di protezione. Le risorse richieste sono ingenti in quanto la quantità di traffico analizzato e di log memorizzati sarà rilevante. Una soluzione più economica consiste nel posizionare l'IDS all'interno del firewall per monitorare solo il traffico che accede alla rete. In tal modo saranno generati meno allarmi e ci saranno meno log da analizzare.

Se invece, l'obiettivo dell'IDS è la protezione dei server, una valida alternativa è installare il sistema di intrusion detection nella Demilitarized Zone (DMZ). Tuttavia, gli altri segmenti di rete rimarrebbero privi di monitoraggio.

Pertanto, nel caso in cui le risorse a disposizione siano elevate, la soluzione più robusta consiste nell'installare un IDS per ogni segmento di rete. Questo permette di tenere sotto controllo l'intera rete, di configurare ciascun Intrusion Detection System in maniera diversa in base alle esigenze del singolo segmento e di evitare eventuali sovraccarichi dei sistemi. Inoltre, se un IDS dovesse venire meno per una qualsiasi ragione (come ad esempio errori hardware/software o attacchi di vario tipo), gli altri segmenti di rete continuerebbero ad essere monitorati.

Log Analysis

L'analisi dei log è di fondamentale importanza nel processo di intrusion detection sia nel caso ci siano stati dei tentativi di intrusione, che nel caso si sia verificato un incidente informatico. I log memorizzano record contenenti informazioni sul timestamp, sul protocollo utilizzato, sull'indirizzo IP sorgente e di destinazione e sulle porte utilizzate da qualsiasi attività anomala monitorata. Possono anche essere contenuti dati aggiuntivi come una descrizione testuale dell'evento o il numero della regola che ha generato l'allarme. Quando vengono generati log causati da eventi di una certa entità, è opportuno memorizzare anche il payload del pacchetto che ha generato l'allarme per avere maggiori dettagli sull'evento. Facciamo un esempio considerando una richiesta DNS. In corrispondenza di questo evento, verrà generato un log dove sarà riportato che il potenziale attaccante con indirizzo IP 100.200.100.200 ha inviato un pacchetto UDP al destinatario 90.80.70.60, sulla porta 53. Ciò non sarà sufficiente a capire se la richiesta DNS è stata dannosa o meno. La situazione sarebbe differente nel caso in cui si potesse analizzare anche il payload del pacchetto.

Uno dei problemi maggiori nell'analisi dei log è l'eterogeneità intrinseca degli stessi, in quanto variano a seconda del firewall, del router o dell'IDS utilizzato. Non esistono tool che sincronizzano cronologicamente i log prodotti da sistemi differenti. Può talvolta capitare che la time zone differisca da sistema a sistema, rendendo ancora più complicata l'analisi; tuttavia, per sincronizzare sistemi diversi, possono essere usati protocolli come NTP. Inoltre, di estrema importanza è la capacità di reazione di fronte ad un'intrusione. Intervenire tempestivamente quando si identifica un'intrusione, spesso è essenziale per evitare che l'attaccante possa alterare o eliminare i log. Gli amministratori di rete, tuttavia, dovrebbero prestare attenzione non solo alla possibile manipolazione dei log ma anche alle molteplici attività anomale che possono presentarsi, come quelle che si stanno per analizzare.

Aspetti Legali

Qualsiasi attività di monitoraggio della rete deve rispettare le normative in vigore nello stato in cui si trova il sistema informatico e le politiche interne aziendali. In caso contrario esiste il rischio di essere perseguiti penalmente per violazione della privacy degli utenti della rete e per intercettazione abusiva di comunicazione informatica. Non sarà, inoltre, possibile utilizzare i dati raccolti per intraprendere azioni legali nei confronti di un intruso. È pertanto opportuno:

Dal punto di vista burocratico tali accorgimenti possono essere tradotti in una lettera informativa da far firmare a tutti gli utenti della rete per presa visione. Dal punto di vista tecnico è possibile implementare un “Message of the Day” (MOTD) che consiste in un messaggio iniziale che informa gli utenti dell'attività di logging della rete. In caso di incidente informatico i log rappresentano prove preziose, ed in quanto tali, devono essere ottenute in modo conforme alla normativa vigente ed essere tali da poter illustrare dettagliatamente lo svolgimento dei fatti. È pertanto opportuno fare in modo che la prova ottenuta sia:

Scelta di un NIDS

Per concludere questa panoramica, vengono discussi gli elementi da tenere in considerazione durante la scelta di un NIDS.

Voci correlate

  Portale Sicurezza informatica: accedi alle voci di Wikipedia che trattano di Sicurezza informatica