Viene detto IDS (Intrusion Detection System) un meccanismo che ascolti il traffico di una rete in maniera furtiva per reperire delle attività anormali o sospette e che permetta quindi di avere un'azione di prevenzione ai rischi di intrusione. Esistono due grandi famiglie ben distinte d'IDS: gli N-IDS (Network Based Intrusion Detection System), che assicurano la sicurezza a livello della rete; e gli H-IDS (Host Based Intrusion Detection System), che assicurano la sicurezza a livello degli host.
Un N-IDS ha bisogno di un hardware dedicato e costituisce n sistema capace di controllare i pacchetti circolanti su uno un più link di rete allo scopo di scoprire se un'attività anormale o sospetta si verifica. L'N-IDS piazza una o più schede di interfaccia di rete del sistema dedicato in modalità promiscua (promiscuous mode), esse sono allora in modalità "furtiva" fino a quando non hanno un Indirizzo IP. Non hanno nemmeno delle pile di protocollo in allegato. È frequente trovare molteplici IDS su diverse parti della rete e in particolare piazzare una sonda all'esterno della rete per studiare i tentativi di attacchi nonché una sonda all'interno per analizzare le richieste che hanno passato il firewall oppure partite direttamente dall'interno:
L'H-IDS risiede in un host particolare e la gamma di questi software copre quindi una grande parte dei sistemi operativi come Windows, Solaris, Linux, HP-UX, Aix, ecc. L'H-IDS si comporta come un rilevamento o un servizio standard su un sistema host.
Tradizionalmente, l'H-IDS analizza delle particolari informazioni nei file di log (syslogs, messaggi, lastlog, wtmp, ecc.) e cattura anche i pacchetti di rete in entrata/uscita dell'host per rallentare dei segnali d'intrusione (blocco di servizio, Backdoors, cavalli di troia, tentativi d'accesso non autorizzati, esecuzione di codici viziati, attacchi da superamento dei buffers, ecc.).
Il traffico di rete è generalmente (in ogni caso su internet) costituito da datagrammi IP. Un N-IDS è capace di catturare i pacchetti quando questi circolano su connessioni fisiche alle quali questo è connesso. Un N-IDS consiste in una pila TCP/IP che raggruppa i datagrammi IP e le connessioni TCP. Questo può applicare le tecniche seguenti per riconoscere le intrusioni:
Verifica della pile protocollare, alcune intrusioni, come ad esempio "Ping-Of-Death" e "TCP Stealth Scanning" fanno ricorso a delle violazioni di protocolli IP, TCP, UDP, e ICMP allo scopo di attaccare un terminale. Una semplice verifica protocollare può mettere in evidenza i pacchetti invalidi e segnalare questo tipo di tecnica molto usate;
Verifica dei protocolli applicativi, alcune intrusioni hanno dei comportamenti protocollari invalidi, come ad esempio "WinNuke", che usa dei dati NetBIOS invalidi (aggiunta di dati OOB data). Per rilevare efficacemente questo tipo di intrusioni, un N-IDS deve re-implementare una grande varietà di protocolli applicabili come NetBIOS, TCP/IP, ecc. Questa tecnica è rapida (non serve cercare delle sequenze di bytes sull'esaustività della base di firme), elimina in parte le false allerte ed è quindi più efficiente. Ad esempio, grazie all'analisi protocollare il N-IDS distinguerà un evento di tipo «Back Orifice PING» (pericolo basso) da un evento di tipo «Back Orifice COMPROMISE» (pericolo alto);
Riconoscimento degli attacchi da "Pattern Matching", questa tecnica di riconoscimento delle intrusioni è il metodo d'analisi più vecchio dei N-IDS ed è ancora molto usato. Si tratta di identificare un'intrusione attraverso il solo esame di un pacchetto il riconoscimento in una stringa di bites di pacchetto di una sequenza caratteristica di una firma precisa. Ad esempio, la ricerca della catena di caratteri «/cgi-bin/phf», che indica un tentativo d'uso sullo script CGI detto «phf».
Questo metodo è anche usato a complemento ai filtri sugli indirizzi IP sorgente, destinazione usata per le connessioni, le porte sorgente e/o destinazione. Si può anche associare questo mettono di riconoscimento per affinarlo con la successione o la combinazione dei flags TCP. Questa tecnica è estesa nei N-IDS di tipo «Network Grep» basato sulla cattura di pacchetti grezzi sul link sorvegliato, e in paragone attraverso un parser di tipo «espressioni regolari» che tenta di far corrispondere le sequenze della base di firme bite per bite con il contenuto del pacchetto catturato.
Il vantaggio principale di questa tecnica è nella facilità di aggiornamento e evidentemente nella quantità importante di firme contenute nella base dell'N-IDS. Ma non vi è nessuna sicurezza che quantità significhi qualità. Ad esempio, quando gli 8 bite “CE63D1D2 16E713CF” sono disposti all'inizio dei dati del protocollo UDP indicano il traffico Back Orifice con una password di default.
Anche se l'80% delle intrusioni usano la password configurata da default, il restante 20% usa delle password personalizzate che non saranno mai riconosciute dall'N-IDS. Ad esempio, se la password cambia in "evade" allora il seguito si trasforma in "8E42A52C 0666BC4A", il che si tradurrà automaticamente in un'assenza di segnale dell'N-IDS. Questa tecnica comporta anche ineluttabilmente un numero importante di false allerte o falsi positivi.
Esistono altri metodi per rilevare e segnalare un'intrusione come il riconoscimento degli attacchi da Pattern Matching Stateful e/o il controllo del traffico di reti pericolose o anormali. In conclusione, un N-IDS perfetto è un sistema che usa il meglio di ciascuna delle tecniche sopra citate.
I metodi principali usati per segnalare e bloccare le intrusioni sugli N-IDS sono i seguenti:
Riconfigurazione delle apparecchiature terze (firewall, ACL su router), ordine inviato dall'N-IDS ad un'apparecchiatura terza (filtri di pacchetti, firewall) per una riconfigurazione immediata allo scopo di bloccare una sorgente d'intrusione. Questa riconfigurazione è possibile attraverso il passaggio di informazioni che dettagliano un'allerta, intestazione(i) di pacchetto(i);
Invio di una trappola SNMP ad un ipervisore terzo, invio dell'allerta (e il dettagli delle informazioni che la costituiscono) sotto forma di un datagramma SNMP a una console terza come HP OpenView, Tivoli, Cabletron Spectrum, e così via;
Invio di un'e-mail a uno o più utenti, invio di un'e-mail a una o più caselle postali per notificare un'intrusione seria;
Log dell'attacco, salvataggio dei dettagli dell'allerta in un database centrale, come ad esempio timestamp, @IP de l’intrus, @IP de la cible, protocole utilisé, payload;
Salvataggio dei pacchetti sospettosi, salvataggio dell'insieme dei pacchetti di rete (raw packets) catturati e/o solamente i pacchetti che hanno provocato un' allerta;
Avvio di un applicazione, lancio di un programma esterno per eseguire un'azione specifica (invio di un messaggio sms, emissione di un' allerta uditiva, ecc.);
Invio di un "ResetKill", costituzione di un pacchetto TCP FIN per forzare la fine di una connessione (unicamente valido su tecniche di intrusione che utilizzano il protocollo di trasporto TCP);
Notifica visuale dell'allerta, visualizzazione dell'allerta in una o più console di gestione.
La stampa specializzata e gli editor parlano sempre più spesso di IPS (Intrusion Prevention System) a sostituzione dei "tradizionali" IDS o per differenziarli. IPS è da considerarsi come un Sistema di Prevenzione/Protezione contro le intrusioni e non più soltanto di riconoscimento e di segnalazione delle intrusioni come sono invece la maggior parte degli IDS. La principale differenza tra IDS (rete) e IPS (rete) sta principalmente in due caratteristiche:
Il posizionamento in tagli sulla rete dell'IPS e non soltanto in ascolto sulla rete per l'IDS (posizionato tradizionalmente come uno sniffer sulla rete);
La possibilità di bloccare repentinamente le intrusioni e questo indipendentemente dal tipo di protocollo che si usa e senza riconfigurazione di un'apparecchiatura terza, cosa che fa comprendere che l'IPS abbia sin dalla creazione di una tecnica di filtraggio dei pacchetti e dei mezzi di bloccaggio, come drop connection, drop offending packets, block intruder, ecc.
Foto: © Martial Red – Shutterstock.com