Non basta configurare correttamente i dispositivi hardware ed i software nella propria rete per stare tranquilli, sono molti i tentativi di intrusione che le nostre reti, aziendali e non, subiscono in maniera gratuita. Ovviamente, anche il miglior sistema di prevenzione delle intrusioni può fallire. La seconda linea di difesa consiste nella rilevazione degli accessi non legittimi. Alla luce di questo appare indispensabile usare un IDS (Intrusion Detection Systems): uno strumento capace di individuare automaticamente le intrusioni.
Cos'è e cosa fa un IDS
L'Intrusion Detection System è uno strumento, software o hardware, impiegato per individuare accessi non autorizzati ai computer oppure alle reti locali. Questi attacchi comprendono: gli attacchi alle reti informatiche attraverso lo sfruttamento di una vulnerabilità nota di un servizio, gli attacchi attraverso l'invio di dati malformati, i tentativi di accesso agli host tramite l'innalzamento illecito dei privilegi degli utenti, gli accessi non autorizzati ai file ed i classici programmi malevoli come virus, cavalli di troia (trojan) e worm di rete.
Evidentemente un buon IDS deve essere in grado di segnalarci le svariate intrusioni generate da cracker, da virus, da tools automatici oppure da utenti smanettoni che utilizzano programmini realizzati appositamente. Gli IDS rappresentano ormai una parte importante di qualsiasi architettura di network security fornendo un livello di difesa che monitorizza il traffico dati per evidenziare attività sospette e segnalare prontamente all'amministratore di sistema quando viene individuato del traffico potenzialmente pericoloso oppure un comportamento sospetto. Nonostante esistano una miriade di soluzioni, per il rilevamento delle intrusioni, fondamentalmente possiamo dividere questi strumenti in due sole categorie:
- Sistemi basati su regole;
- Sistemi adattativi.
Gli IDS della prima categoria sfruttano database, librerie e firme di attacco (o signature) per rilevare le intrusioni. In pratica, quando il traffico di rete oppure un'attività di rete, corrisponde ad una regola ben nota all'IDS questi segnala il tentativo di intrusione. Il limite principale di questo tipo di IDS è che l'affidabilità di tale strumento dipende interamente dalla tempestività con cui il database degli attacchi viene aggiornato. Il database deve essere aggiornatissimo ed anche molto completo. In realtà non sempre le regole sono efficienti, questo vuol dire che se una regola viene preparata in maniera troppo specifica, gli attacchi che sono simili, ma non identici alla regola, passeranno inosservati. La tecnica basata sulle firme è molto simile a quella usata per il rilevamento dei virus, che permette di bloccare i file infetti e si tratta della tecnica oggi più diffusa.
Il secondo tipo di IDS usa tecniche più avanzate, come il pattern recognition e l'intelligenza artificiale, non solo per riconoscere i diversi attacchi, ma anche per acquisirne di nuovi. Questi strumenti, molto potenti e affidabili, sono poco diffusi a causa dell'elevato costo, inoltre richiedono conoscenze matematiche e statistiche avanzate per il loro utilizzo, nonché computer molto performanti. Non dimenticate che l'IDS non cerca di bloccare le eventuali intrusioni, cosa che compete al firewall, ma tenta di rilevarle laddove si verifichino. Nel nostro excursus prenderemo in esame generalmente i sistemi basati su regole dato che il secondo tipo di IDS è diffuso solo nell'ambiente della ricerca.
Classificazione delle intrusioni
Secondo la classificazione fatta agli albori del problema della sicurezza, contro le intrusioni informatiche, ancora oggi si possono identificare quattro categorie di possibili attacchi, a seconda della loro provenienza:
- External Penetrator, colui che accede fisicamente a computer a cui non dovrebbe avere accesso;
- Masquerader, colui che riesce ad accedere ad un sistema autenticandosi come utente autorizzato;
- Misfeasor, colui che, pur avendo diritto di accedere a risorse protette, abusa dei suoi privilegi attaccando la sicurezza del sistema;
- Clandestine user, colui che riesce ad accedere al sistema autenticandosi come amministratore del sistema.
IDS, una seconda distinzione
Gli IDS si possono suddividere anche a seconda di cosa controllano. Esistono IDS che analizzano le reti locali, quelli che analizzano gli host e gli IDS ibridi che analizzano sia la rete, sia gli host.
Un Host Based Intrusion Detection System (o HIDS) consiste in un componente che analizza l'host alla ricerca di intrusioni. Le intrusioni vengono individuate analizzando la struttura dei file di log (più esattamente gli audit log) del sistema, le system call e le modifiche subite dal filesystem. Un esempio di questa tipologia di IDS è Aide. Questo tipo di IDS ha una buona capacità di scoprire gli attacchi che sono portati dagli utenti locali e che mirano ad abusare delle risorse del sistema. Il maggior limite di questi IDS consiste nella loro incapacità d'interpretare i network event, cioè gli eventi di basso livello provenienti dalla rete.
Un Network Intrusion Detection System (brevemente NIDS), invece, esamina la struttura del traffico di rete per identificare intrusioni, permettendo di monitorare non solo il singolo host, ma addirittura una rete intera. Si tratta di un IDS che cattura il traffico di rete analizzando il protocollo usato nella rete e cercando tracce di attacchi. Il suo funzionamento è regolato da due componenti:
- Il signature matching, con cui l'IDS legge il traffico e lo confronta con il database delle firme di attacchi;
- Il network analisys, che entra in funzione quando il signature matching fallisce e che è in grado di rilevare anomalie nei flussi di traffico e quindi di rilevare anche quegli attacchi che non sono ancora stati identificati come tali.
Questa tipologia di IDS configura la scheda di rete, o le schede sul dispositivo, per funzionare in modalità 'promiscua', il che significa che saranno fatti passare i pacchetti attraverso lo stack di rete indipendentemente dal fatto che siano o meno indirizzati ad una particolare macchina. Il più diffuso Network Intrusion Detection System è senza dubbio l'ottimo SNORT, il progetto NIDS più noto nella comunità open source. In genere un semplice port scan detector, cioè un software capace di individuare indirizzi IP che raccolgono di nascosto informazioni sui propri sistemi, ha funzioni molto limitate e può essere sostituito con migliore efficacia da SNORT in grado di riconoscere, oltre alle normali scansioni di porte, una grande varietà di attività di rete dubbie.
L'Hybrid Intrusion Detection System è un sistema che combina i due approcci visti prima. Le informazioni recuperate dagli agenti in esecuzione negli host vengono integrate con le informazioni prelevate dalla rete locale. Un tipo di IDS ibrido è il giovane Prelude, che vanterebbe, secondo quanto affermato dagli addetti ai lavori, prestazioni superiori a SNORT ed una buona modularità.
Nella prima parte dell'articolo abbiamo introdotto i sistemi di rilevazione delle intrusioni. Qui cercheremo di spiegare perchè conviene usarli all'interno dei propri sistemi informatici.
Perché usare gli IDS?
Possiamo rapidamente riassumere le ragioni d'impiego di questi strumenti, nell'ambito della sicurezza, come segue:
- Un efficiente sistema di rilevazione delle intrusioni può servire come deterrente per quanti hanno il vezzo di disturbarvi e danneggiare il vostro lavoro;
- Se un'intrusione viene rilevata prontamente, l'intruso può essere identificato ed espulso dalla rete prima che possa compromettere il sistema o danneggiare dei dati. Quanto più velocemente si riesce a scoprire l'intrusione, tanto minore sarà il danno arrecato e tanto più velocemente si potrà riportare il tutto alla normalità;
- La rilevazione delle intrusioni permette di raccogliere preziosissime informazioni relative alle tecniche di penetrazione, informazioni che possono essere riutilizzate per rafforzare e migliorare la difesa della propria rete;
- Un IDS, seppur non infallibile, è comunque uno strumento che segnala le attività sospette e le anomalie, senza di esso resteremmo totalmente all'oscuro di quanto accade alla nostra rete.
Requisiti fondamentali degli IDS
Abbiamo visto a cosa serve un IDS e per quali motivi adoperarlo, ma quali caratteristiche deve possedere un software per essere definito un IDS? Ecco un elenco dei requisiti essenziali per un buon sistema di rilevamento delle intrusioni:
- Il sistema deve essere in grado di auto-proteggersi
- Il sistema deve riconoscere e gestire attacchi multipli
- L'IDS deve essere in grado di adattarsi ai cambiamenti dei diversi metodi di attacco
- Il sistema deve essere scalabile e facilmente aggiornabile per integrarsi al meglio nella rete
- Deve essere in grado d'intercettare l'attacco al più basso livello di rete possibile
- L'IDS deve essere capace di rilevare qualsiasi attività, oppure evento sospetto, che potrebbe potenzialmente rivelarsi un attacco
- Deve essere capace di rilevare gli attacchi in tempi brevi
- Il sistema deve interagire e cooperare con altri IDS
I possibili attacchi che ogni IDS deve assolutamente rilevare sono di due tipi:
- Gli attacchi attivi (come i DOS, gli attacchi dDOS e lo spoofing)
- Gli attacchi passivi (come lo sniffing, ad esempio)
IDS basati sulle regole
Gli IDS basati sulle regole funzionano in due modalità: una preventiva ed una reattiva. Questa differenziazione sembrerebbe quasi non indispensabile, ma è invece fondamentale, perché ciò che cambia è la tempistica d'azione e la possibilità d'interazione.
L'approccio reattivo permette di completare alla perfezione la procedura di logging: il sistema vi avverte che si è verificato un attacco, anche se sono trascorsi diversi minuti dall'evento, provvedendo a notificarlo all'operatore tramite la console ed eventualmente inviando una e-mail.
Viceversa, la modalità preventiva permette al vostro sistema di rispondere, in tempo reale, all'attacco in corso consentendovi di rintracciare la sua origine. Oltre a notificare all'amministratore una violazione della sicurezza, l'IDS, prende delle opportune contromisure per eliminare o comunque isolare la violazione.
Assumendo che tutte le attività intrusive sono logicamente delle anomalie, i sistemi che adottano pure la tecnica di anomaly detection come SNORT compiono un'analisi statistica per trovare scostamenti da un comportamento considerato normale. È vero che questi sistemi IDS sono in grado di rilevare gli attacchi cooperativi, usando le due metodologie: policy detection ed anomaly detection, ma tuttavia hanno il grande problema di generare:
- Falsi positivi (sono attività anomale che non sono intrusive, ma che vengono segnalate come tali)
- Falsi negativi (sono le attività intrusive che non sono anomale e che quindi non vengono rilevate e segnalate)
Quindi l'uso esclusivo di uno dei due metodi raramente offre un'accuratezza del 100%. Ovviamente la situazione più grave si presenta nel secondo tipo di falso dato che può compromettere gravemente la sicurezza del sistema, ma anche un'eccessiva presenza di falsi positivi potrebbe portare ad un'impossibilità di utilizzo del computer per un eccesso di avvisi di intrusione infondati. In questa categoria di IDS, oltre a SNORT, rientrano software commerciali come BlackIce; Bro; CyberTrace e altri.