Si occupano entrambi di controllare eventuali intrusioni nel sistema. I primi ispezionano il contenuto dei pacchetti in transito, mentre i secondi lavorano dall’interno del client.
Gli host-based intrusion detection system” (HIDS) sono software in grado di monitorare il funzionamento di un sistema “dal suo interno” anziché ricorrere all’uso delle interfacce di rete (come fanno invece network-based intrusion detection system, NIDS).
I software HIDS si occupano di sorvegliare costantemente il comportamento del sistema oggetto d’esame e lo stato in cui sta operando. Mentre i NIDS ispezionano il contenuto di ogni singolo pacchetto-dati in transito, un HIDS qual è può stabilire a quali risorse tentano di accedere i programmi installati bloccando tempestivamente operazioni sospette. Ad esempio, un word-processor non deve, ovviamente, modificare le password di sistema o la configurazione di aree vitali: se lo fa significa che, con buona probabilità, sta eseguendo del codice maligno, collegato all’azione di un malware.
Un HIDS controlla lo stato del sistema verificando le informazioni memorizzate, sia in RAM che sul file system, i file di log e così via. L’obiettivo è quello di rilevare tempestivamente anomalie.
Il concetto di IDS
Quando si parla di “intrusion detection systems” solitamente il pensiero corre a soluzioni NIDS, che forniscono una visione granulare di tutto ciò che sta accadendo nella rete locale.
Il NIDS monitora il traffico appoggiandosi ad una scheda di rete collegata direttamente alla LAN. Il sistema che si occupa di controllare il traffico di rete può essere connesso alla LAN mediante un hub, alla porta “SPAN” di uno switch oppure ad un apparato detto “network tap” che agevola il monitoraggio in invasivo del flusso di dati in transito.
Un NIDS è un sistema di monitoraggio molto potente che però consta di qualche limite. Cosa succede, ad esempio, allorquando vengano impiegate tecniche conosciute per “dribblare” il NIDS? Cosa accade quando le comunicazioni tra due sistemi sono crittografate (un NIDS non permette, ovviamente, di esaminare il contenuto di pacchetti dati cifrati)?
Cosa succede se l’attacco sferrato da un aggressore viene effettuato impiegando tecniche crittografiche?
In questi frangenti un NIDS non può essere efficace.
Un HIDS può rilevare le attività in corso su macchine server e singole workstation generando messaggi di allerta simili a quelli di un NIDS. La differenza, però, è che un HIDS è in grado di ispezionare l’intero flusso dei dati scambiati nelle varie comunicazioni. Le tecniche precedentemente citate non hanno efficacia nei confronti di un HIDS perché, tra l’altro, nel caso di comunicazioni crittografate, queste possono essere comunque monitorate. I dati cifrati infatti vengono analizzati prima che diventino tali.
Un HIDS, inoltre, può svolgere compiti addizionali quali i controlli sull’integrità dei file, sul contenuto del registro di sistema, operazioni di analisi dei log, rilevamento di rootkit e così via.
- Controllo dell’integrità. Per ciascun file presente sul sistema è sempre possibile generare un firma digitale attraverso l’utilizzo di una “funzione hash”. L'”impronta” generata caratterizza in modo univoco il singolo file preso in esame. Se un file con lo stesso nome, ad esempio, ha una firma differente significa che il contenuto varia. Un HIDS è in grado di monitorare file importanti con lo scopo di rilevarne eventuali cambiamenti dovuti, spesso, all’applicazione di aggiornamenti ma, purtroppo, altre volte, all’azione di malware.
- Monitoraggio del registro di sistema. Il registro di Windows, come sottolineato più volte, è una delle componenti più importanti ma allo stesso tempo più delicate del sistema operativo Microsoft. Un HIDS “tiene d’occhio” gli interventi applicati al contenuto del registro di sistema. Grazie a questo tipo di attività, è possibile assicurarsi che un utente oppure un’applicazione non introduca delle modifiche con scopi maligni.
- Rootkit. Un HIDS si occupa anche di preservare i sistemi tenuti sotto controllo dall’azione di rootkit. Qualora un malware del genere riuscisse ad insediarsi sul sistema i danni sarebbero infatti enormi. Un rootkit sa nascondere servizi, processi, file, cartelle, chiavi del registro di Windows e porte sia agli occhi dell’utente sia allo stesso sistema operativo.
- Avvio di operazioni in modo automatico.
Spesso gli HIDS permettono anche di eseguire particolari operazioni, in modo del tutto automatico, in risposta al verificarsi di uno specifico evento o di un insieme di attività potenzialmente pericolose.
Il progetto opensoruce OSSEC
Fra gli HIDS opensource, si segnala in particolare OSSEC: si incarica di analizzare i log di sistema, verificare l’integrità dei file memorizzati su disco, controllare la presenza di rootkit e tenere traccia delle performance di ogni macchina collegata alla rete locale.
Il progetto opensource sta ottenendo un sempre maggior numero di consensi ed è certamente uno dei migliori prodotti utilizzabili in una rete di tipo aziendale.
OSSEC deve essere installato su un sistema Linux (per quanto riguarda il lato server) ed è in grado di controllare, in modo centralizzato, qualsiasi personal computer, a partire dalle macchine Windows. Ciò è possibile grazie all’installazione, su ciascuna workstation, di uno speciale “agent”, un software che interagisce con il server di OSSEC.