# Host-based intrusion detection system

Un Host based intrusion detection system (HIDS) è una tipologia di intrusion detection system specializzato nell'analisi e nel monitoraggio del computer. Una variante del network intrusion detection system, uno strumento indirizzato verso l'analisi del traffico di rete.

## Obiettivo

Un HIDS controlla dinamicamente alcune o tutte le componenti che formano l'host (il computer). Come i NIDS provvedono ad analizzare il traffico di rete gli HIDS provvedono ad analizzare i programmi in esecuzione e il loro utilizzo delle risorse. Questi programmi segnalerebbero per esempio se senza nessun motivo apparente il word processor si dovesse attivare e dovesse modificare il database delle password di sistema.
Gli HIDS sorvegliano lo stato del sistema, la memorizzazione delle informazioni e l'accesso alle risorse condivise e alle unità di memorizzazione. Un HIDS è un componente che sorveglia il funzionamento del sistema operativo verificando che le policy di sicurezza non siano aggirate o scavalcate.

### Controllo del funzionamento dinamico

La maggior parte delle persone ha familiarità con questo genere di programmi grazie agli antivirus. Gli antivirus controllano costantemente lo stato del sistema alla ricerca di potenziali infezioni. Lo stesso fanno i programmi HIDS solo che questi non si limitano a virus, trojan e worm ma controllano il funzionamento anche di programmi comuni. Comunque le linee di demarcazione tra i vari programmi sono molto sottili e quindi spesso le funzionalità delle due tipologie di programmi si sovrappongono.

### Controllo dello stato

Il principio di funzionamento degli HIDS è basato sulla considerazione che se l'attaccante (cracker) riesce a forzare il sistema deve lasciare traccia del suo passaggio anche perché probabilmente l'attaccante installerà nel computer uno o più programmi deputati alla raccolta di informazioni o alla gestione remota della macchina.
L'installazione e l'attivazione di questi programmi modificano lo stato interno della macchina e un buon HIDS dovrebbe essere in grado di rilevare un'intrusione. Usualmente gli HIDS vengono utilizzati in congiunzione con i NIDS in modo che i programmi si completino a vicenda per un controllo totale della macchina e delle sue comunicazioni.
Ironicamente la prima cosa che gli attaccanti fanno usualmente è quella di installare un programma di controllo remoto in modo da impedire a un altro cracker di accedere al sistema.

#### Tecniche

In generale gli HIDS utilizzano un database degli elementi da controllare. Questi spesso sono memorizzati nel file system ma non sempre. Non vi è motivo infatti perché un HIDS non debba periodicamente controllare alcune aree di memoria alla ricerca di violazioni. Anche la tabella delle system-call è un componente che può essere controllato proficuamente dato che molti virus tendono ad alterarla.
Per ogni elemento l'HIDS normalmente memorizza gli attributi (permessi di scrittura, dimensione, data modifica, ecc) e effettua un calcolo del checksum con algoritmi tipo hash MD5 o simili. Questi dati vengono memorizzati nel database per le future comparazioni. Da notare che l'MD5 non garantisce una completa sicurezza dato che è possibile modificare il file senza variare l'MD5. Recenti studi (2004) hanno dimostrato che la possibilità che ciò avvenga non è così ridotta come si pensava all'inizio.

#### Funzionamento

Durante l'installazione e ad ogni modifica autorizzata degli elementi questi vengono analizzati e il loro checksum viene calcolato e memorizzato nel database. Questa è una fase che va controllata con attenzione per impedire che degli elementi corrotti possano essere marcati come validi.
Esistono molti elementi che il sistema operativo modifica di frequente che sono interessanti da controllare dato che sono elementi che anche un aggressore avrebbe interesse a modificare. Un controllo approfondito di troppi elementi però rallenterebbe eccessivamente il sistema quindi alcuni HIDS per file non vitali preferiscono fare dei controlli basati sugli attributi senza dover ogni volta generare il checksum, un processo che per file di grosse dimensioni può rendere l'analisi molto lenta. Un'analisi di un numero eccessivo di elementi può generare un elevato numero di falsi positivi dato che spesso il sistema operativo modifica molti file di sistema solo per svolgere le sue usuali operazioni.
Una volta che il sistema è installato, i checksum sono stati calcolati e è stato impostato un intervallo ragionevole tra le varie analisi dell'HIDS, il sistema è pronto. Le segnalazioni possono essere inviate all'utente tramite file di log, email, finestre a video o altro.

### Protezione dell'HIDS

Un HIDS utilizzerà normalmente un insieme di tecniche aggiuntive per rivelare violazioni nel proprio database degli oggetti e per rendere queste violazioni difficili. Infatti se un attaccante è stato in grado di introdursi nel sistema nulla gli impedisce di cercare di eludere l'HIDS. Sono molto diffusi per esempio i virus che dopo essersi installati cercano di disabilitare i programmi antivirus.
Oltre ad adottare protezioni crittografiche un amministratore può utilizzare protezioni aggiuntive come memorizzare il database dell'HIDS in un supporto non cancellabile come un CD-ROM (sempre che il database non vada aggiornato con frequenza..) o memorizzare il database in un'altra macchina separata da quelle da controllare.
Si potrebbe anche affermare che i Trusted Platform Module siano un tipo di HIDS. Sebbene gli scopi siano diversi entrambi i moduli provvedono ad identificare eventuali modifiche a componenti del computer. Dal punto di vista progettuale questi moduli sono l'ultima difesa contro le modifiche non autorizzate ed essendo integrati nell'hardware del computer se non nella CPU stessa sono estremamente difficili da aggirare.