I sistemi di Intrusion Detection System (IDS) sono sicuramente tra gli strumenti di sicurezza informatica più utilizzati e apprezzati per proteggere i perimetri cyber delle aziende. Si tratta di strumenti atti ad eseguire un monitoraggio continuo della sicurezza, allo scopo di identificare – in anticipo – tutti gli attacchi alle reti informatiche e ai computer.
Proteggersi dagli attacchi informatici è importante, ma è altrettanto importante saperli riconoscere e rilevare. L’affermazione può apparire ovvia, ma tocca invece uno degli aspetti più trascurati della cyber security: la capacità di rilevazione (detection) dell’attacco.
Non è infatti così scontato riuscire a individuare un’intrusione informatica.
Citando un noto esperto di cyber security, si può senz’altro affermare che: “oggi le aziende si dividono in due categorie: quelle che sono state attaccate e lo sanno, e quelle che sono state attaccate e non lo sanno ancora”.
Infatti, se molti tipi di cyber attacchi hanno la necessità di manifestarsi, come accade per i ransomware, altri mirano a rendersi invisibili per poter persistere il più a lungo possibile all’interno dei sistemi violati. È il caso degli APT (Advanced Persistent Threat), dove il termine “persistent” sta proprio ad indicare che l’attacco è continuo nel tempo, con lo scopo di rimanere nel sistema per un periodo più lungo possibile. Gli APT sono attacchi di alto livello, portati con tecniche di hacking avanzate e con più vettori di attacco. Gli obbiettivi a cui mirano sono ovviamente importanti, trattandosi spesso di infrastrutture critiche alle quali l’attaccante cerca di rubare quanti più dati possibili.
Il particolare livello di sofisticazione che caratterizza gli attacchi APT li rende difficili da rilevare: possono passare diversi mesi tra il momento dell’attacco iniziale e la sua identificazione e neutralizzazione. Secondo statistiche, il tempo medio di scoperta (la cosiddetta “finestra di compromissione”) è addirittura di circa 220 giorni.
Indice degli argomenti
NIST Cyber Security Framework: le regole per una corretta cyber security
La detection è importante a tutti i livelli e per qualsiasi azienda, non solo per le infrastrutture critiche. Lo spiega molto bene il NIST Framework for Improving Critical Infrastructure Cybersecurity (Version 1.1 April 16, 2018) che definisce cinque funzioni che devono essere gestite:
- ID: identificare;
- PR: proteggere;
- DE: indagare;
- RS: reagire;
- RC: riparare.
Per ognuna di queste, inoltre, individua alcune categorie di intervento.
Una rappresentazione grafica delle funzioni consigliate dal NIST Framework for Improving Critical Infrastructure Cybersecurity per la difesa delle infrastrutture critiche.
Esaminiamo ora la funzione di Detection (DE) con gli strumenti idonei per metterla in pratica.
Sistemi IDS: come funziona un Intrusion Detection System
Riprendendo il Framework del NIST, gli IDS o meglio le loro funzioni possono essere così identificati:
- DE.AE: Anomalie ed eventi
- DE.CM: Monitoraggio continuo della sicurezza
- DE.DP: Processi di indagine
Gli IDS possono essere realizzati con appliance hardware oppure con appositi software; a volte, sono la combinazione di entrambi i sistemi.
Non sostituiscono i firewall, ma con essi si integrano per offrire una protezione più completa. Infatti, lo scopo del firewall è quello di intercettare selettivamente (e “meccanicamente”) i pacchetti di dati (secondo un insieme di regole predefinite che i pacchetti devono rispettare per entrare o per uscire dalla rete locale). I tradizionali firewall funzionano sugli strati più bassi della comunicazione di rete, quindi con regole di filtraggio limitate agli indirizzi IP, alle porte, all’ora del giorno ed a pochi altri criteri.
Gli IDS, invece, vengono posizionati “a valle” del firewall ed analizzano i pacchetti di dati ed i comportamenti da loro generati. Per questo, se un attacco è stato originato all’interno della rete locale, il firewall non potrà bloccarlo, mentre l’IDS può rilevarlo, individuando situazioni di anomalia.
Semplificando, mentre un firewall potrebbe essere paragonato ad una porta blindata che protegge una casa, I’IDS è il sistema d’allarme che scatta nel momento in cui qualcuno o qualcosa riesce ad oltrepassare questo primo “ostacolo” avvertendo il proprietario di casa o le forze dell’ordine. Possiamo pensare a un IDS come ad un allarme preventivo che avvisa quando transita – o si verifica – qualcosa che potrebbe richiedere la nostra attenzione. Ovviamente questa modalità di analisi è soggetta al rischio di un elevato numero di “falsi positivi”. Per contro, le attuali tecniche di analisi comportamentale (di cui parleremo successivamente) utilizzano algoritmi di machine learning che raccolgono dati e grazie a questi riescono ad affinare i modelli comportamentali che utilizzano come regole.
Gli IDS sono tipicamente composti da sonde (sensori) posizionate in punti definiti della rete, che raccolgono le informazioni e le comunicano ad un server (motore). Quest’ultimo, di solito, si appoggia ad un database nel quale si trovano le informazioni e le regole per individuare le “anomalie”. Il database è spesso in cloud presso il fornitore del servizio IDS: in questo modo risulta continuamente aggiornato rispetto alle nuove minacce.
L’Intrusion Detection System comunica con l’amministratore di sistema attraverso una console che monitora lo stato della rete e dei computer e – nel caso in cui sia stato rilevato un attacco o sia stato registrato un comportamento sospetto del sistema – invia una notifica secondo le modalità stabilite. Per definizione l’IDS è un sistema di rilevazione, quindi è “passivo”, ovvero non esegue azioni correttive: sarà l’operatore a stabilire le opportune contromisure per bloccare l’attacco.
In altri casi, dopo aver individuato la presenza di un possibile attacco, questo tipo di sistema non si limita ad informare l’amministratore, ma attiva immediatamente delle azioni di protezione adeguate. In questo modo si evita che passi un intervallo di tempo troppo lungo tra il rilevamento di un’intrusione e l’azioni di contrasto volta a bloccarla.
In questi casi, però, non si parla più di IDS, ma di IPS (Intrusion Prevention System).
I due sistemi (IDS e IPS) sono sostanzialmente simili, in quanto utilizzano gli stessi metodi di analisi. Un IPS così come un IDS si avvale degli stessi sensori, basati su host e su rete, allo scopo di registrare e classificare i dati del sistema e i pacchetti di rete.
Nel caso di un Intrusion Prevention System, questo deve essere configurato in modo molto accurato (e non standard), per impedire che azioni normali dell’utente vengano classificate come anomale e pericolose e quindi bloccate (i cosiddetti “falsi positivi”). L’insorgenza di frequenti falsi positivi può indurre ad abbassare i livelli di protezione dell’IPS, con gli evidenti rischi che ne conseguono.
L’intervento umano è quindi sempre necessario, anche per ridurre i “falsi positivi”. Così come dovrà essere sempre l’uomo a fissare le regole che stabiliscono cosa sia considerato come comportamento lecito. Queste regole, definite inizialmente, dovranno essere aggiornate sia dagli algoritmi di “apprendimento automatico” del sistema, sia dall’amministratore, in modo da tenere in considerazione i nuovi tipi di attacchi.
Tutti i tipi di Intrusion Detection System
I sistemi IDS possono essere divisi in due categorie, a seconda di dove sono posizionati i sensori per il rilevamento delle intrusioni (sulla rete o su un host/endpoint):
- NIDS (Network Intrusion Detection System): poiché gli accessi non autorizzati devono passare necessariamente attraverso il protocollo TCP/IP ovvero l’UDP (User Datagram Protocol), i sistemi IDS basati su rete analizzano i pacchetti IP, vigilando l’intero traffico dati della rete. In questo modo possono integrare il firewall, ove questo non blocchi i pacchetti per errori di configurazione o regole poco restrittive. Sono inoltre in grado di monitorare anche il comportamento degli utenti interni alla rete;
- HIDS (Host based intrusion detection system): sono tipicamente degli strumenti che sono installati su di una macchina (host) e hanno lo scopo di proteggere il PC interessato (un sorta di “super-antivirus”). Possono integrare anche funzioni di firewall, sandboxing e via dicendo. Si parla quindi di Intrusion Detection System distribuiti.
Oggi si tende ad implementare IDS che combinino i due sistemi, attraverso un controllo sia su rete sia su host, garantendo in questo modo un maggiore tasso di rilevamento degli attacchi. Si definiscono in questo caso come sistemi ibridi o Hybrid Intrusion Detection System.
Come operano gli IDS
I diversi sistemi IDS, comunque siano implementati, funzionano nello stesso modo, rilevando le intrusioni nei punti in cui i sensori sono posizionati ed avvisando gli analisti della sicurezza della scoperta di un’eventuale minaccia. Le tecniche di rilevamento d’intrusione si basano sui dati raccolti dai sensori (sonde) che vengono poi processati dal server (motore). È pertanto fondamentale progettare accuratamente il posizionamento dei sensori: questi possono essere posti nei punti critici del sistema, ovvero in quelli dove si ritiene più probabile un’intrusione:
- nei router e gateway;
- nei punti più esposti della rete (server web, servizi esposti all’esterno);
- ove si trovano dati sensibili della rete: tipicamente, server interni e database aziendali (che rappresentano un obbiettivo in genere ambito dall’attaccante).
Questa fase progettuale deve tener presente un concetto basilare nella cyber security: il cosiddetto “attacker mindset”, cioè “pensa come pensa l’attaccante”, o – citando Sun Tzu (l’autore del saggio “L’arte della guerra”) – “conosci il tuo nemico”.
Le tecniche di rilevazione in real-time possono essere poi suddivise in due categorie:
- Misuse Detection: confronta una serie di segni caratteristici (signature action) delle varie tipologie di scenari di intrusione conosciute (ad esempio, cambi di proprietà di un file, determinate stringhe di caratteri inviate ad un server ecc.). Presentano il vantaggio di generare un numero relativamente basso di “falsi positivi” e sono relativamente affidabili e veloci. Per contro non sono in grado di rilevare qualsiasi tipologia di intrusione se essa non è presente nei pattern di intrusione conosciuti ed impostati nel sistema;
- Anomaly Detection: serve per sopperire ai limiti della Misuse Detection di non riuscire a rilevare un’intrusione nel caso che questa usi un attacco non ancora conosciuto. In pratica si analizza il sistema alla ricerca di anomalie rispetto ai profili di utilizzo “normale” del sistema ricavati da misure statistiche ed euristiche sulle caratteristiche dello stesso (ad esempio, carico di utilizzo anomalo della CPU di una macchina, traffico dati I/O di un particolare nodo ecc.). Sono più flessibili ed in grado di “imparare” con algoritmi di intelligenza artificiale, ma possono dare un numero più elevato di falsi positivi. Inoltre, il monitoraggio del sistema è molto pesante dato che è necessario tenere sotto controllo molti fattori contemporaneamente per riuscire a classificare correttamente un attacco.
Queste tecniche di Anomaly Detection sono definite anche di analisi comportamentale.
I sistemi di protezione avanzata: User Behavior Analytics (UBA)
“Se miagola, fa le fusa e caccia i topi, allora… probabilmente è un gatto”.
Questa semplice frase ci spiega la teoria secondo la quale è possibile identificare un attacco (e di conseguenza l’host attaccato) attraverso i suoi comportamenti, per induzione e data la tipicità dei comportamenti stessi.
I sistemi di analisi comportamentale degli utenti (User Behavior Analytics) si fondano proprio su questo principio.
Alla base c’è la distinzione tra tutto ciò che sembra normale attività dell’utente e quello che invece si presenta come un comportamento anomalo. Questo viene fatto attraverso algoritmi di “machine learning” che monitorano il comportamento degli utenti, raccolgono dati e da questi dati creano modelli comportamentali per capire qual è un “comportamento normale”.
Durante l’implementazione, necessitano perciò di un tempo di apprendimento iniziale, per capire il comportamento tipico dell’utente.
In questo modo sono in grado di determinare, per esempio, se un host è stato compromesso e se il traffico generato da questo host è lecito oppure è “sospetto”.
Vediamo ora un esempio, considerando un utente la cui mansione lo porta ad usare il computer in un modo tipico e definito: usa alcuni applicativi, accede abitualmente a determinate cartelle e produce un traffico dati “tipico” ed in genere verso indirizzi IP con certe caratteristiche.
Il sistema UBA avrà classificato questo comportamento come “standard”. Ma se un giorno lo stesso utente userà altri programmi, utilizzerà le risorse del sistema in modo inconsueto o eccessivo, oppure entrerà in cartelle nelle quali non avrebbe motivo di entrare (magari modificando o copiando file), o anche si collega ad indirizzi IP anomali e sospetti, il sistema rileverà che “questo utente si sta comportando in maniera anomala” ed invierà un allarme all’amministratore di sistema, che avrà le informazioni utili per prendere le decisioni più opportune.
Gli UBA possono avere anche una ulteriore capacità di rilevamento: poiché si è constatato che gli attacchi (per esempio i ransomware) hanno comportamenti tipici (scrivere su determinate cartelle di sistema, collegarsi con IP particolari per scaricare malware, ecc.) sono in grado di rilevare questi comportamenti, riconoscere l’attacco e bloccarlo.
In pratica gli UBA non prevengono l’attacco, ma lo bloccano non appena si verifica. In questi casi sono anche in grado di eseguire il “roll back” del sistema che sta subendo l’attacco. Per fare questo creano degli snapshot (“fotografie” dello stato del sistema in un determinato istante). In caso di attacco, è possibile ritornare allo stato precedente registrato dall’istantanea.
Gli User Behavior Analytics rappresentano oggi una delle soluzioni più avanzate di protezione e tutti i maggiori vendor di sicurezza li offrono.