Progetto Honeyd: creazione di un sistema honeypot

Progetto Honeyd: creazione di un sistema honeypot

Progetto Honeyd

Honeyd è un esempio di honeypot a medio livello di interazione con cui si può creare un ambiente di rete molto complesso su di una singola macchina fisica.

Questo è un progetto open source sviluppato da Niels Provos dell’Università del Michigan in grado di simulare la presenza di host virtuali all’interno di una rete. Pur essendo nato specificamente per sistemi Unix-based, esiste anche un porting per Windows realizzato da Michael Davis. In dettaglio si tratta di un software capace di assumere la “personalità” di qualsiasi sistema operativo e che può essere  opportunamente configurato per offrire vari servizi basati sul protocollo TCP/IP come http, smtp, ssh, ecc. Pur rientrando nella categoria degli honeypot a basso/medio livello di interazione si distingue per la sua versatilità nel simulare una completa infrastruttura di rete su di un’unica macchina fisica, consentendo l’impostazione di vari parametri come numero di hops, larghezza di banda, perdita di pacchetti e latenza.

Caratteristiche di Honeyd

Le principali caratteristiche di Honeyd si possono riassumere in:

  • simulazione di reti di grosse dimensioni
  • elevata configurabilità
  • supporto di router multipli per la gestione di più reti
  • integrazione tra reti fisiche e reti virtuali

Lo scopo principale di Honeyd è il rilevamento di attività non autorizzate all’interno di una rete, attraverso il monitoraggio degli indirizzi IP non utilizzati di uno specifico intervallo (denominato “dark space“). Ogni connessione verso uno di tali indirizzi viene considerato come un possibile attacco o comunque come il risultato di una scansione. Viene esaminata qualsiasi attività relativa alle porte TCP e UDP nonché al traffico ICMP. In aggiunta si possono emulare dei servizi, utilizzando script realizzati in Perl, shell o altro in grado di interagire con l’aggressore secondo una modalità opportunamente stabilita.

Architettura di Honeyd

L’architettura di Honeyd consiste di varie componenti:

  • un database delle configurazioni
  • un packet dispatcher
  • un gestore di protocolli
  • un personality engine
  • un componente di routing opzionale

I pacchetti in arrivo vengono processati dal packet dispatcher che controlla la lunghezza dell’indirizzo IP e ne verifica l’integrità tramite il relativo checksum. Sono supportati i principali protocolli: TCP, UDP e ICMP. Tutti gli altri pacchetti vengono scartati. A questo punto viene interrogato il file di configurazione alla ricerca di un modello associato all’indirizzo IP di destinazione, in mancanza del quale si utilizza il modello di default. Nel caso dei protocolli UDP e TCP è possibile interagire con applicazioni esterne capaci di gestire il flusso dati. Alla ricezione di una richiesta il framework verifica se il pacchetto riguarda una connessione già stabilita e in questo caso lo inoltra al corrispondente servizio, altrimenti viene creato un nuovo processo per la sua esecuzione. Oltre ai servizi locali è supportato un meccanismo di reindirizzamento delle connessioni grazie al quale è possibile girare una richiesta di servizio ad un sistema reale. Prima che un pacchetto sia immesso sulla rete viene processato dal personality engine che apporta delle modifiche al suo contenuto per renderlo compatibile con lo stack utilizzato dal sistema operativo simulato.

Progetto Honeyd - Architettura di Honeyd
Progetto Honeyd – Architettura di Honeyd

Honeyd e personality engine

I pirati informatici utilizzano strumenti come Xprobe e Nmap, che esaminando lo stack IP del sistema bersaglio riescono ad identificare con sufficiente precisione il sistema operativo in esecuzione. Le informazioni così ricavate sono utili per ricercare eventuali vulnerabilità e approntare un attacco mirato. Honeyd riesce a simulare il comportamento dello stack di rete di un determinato sistema operativo, ovvero può assumerne la personalità, modificando gli header dei pacchetti in uscita in modo da garantire una corrispondenza con le caratteristiche del sistema operativo desiderato. Per default Honeyd sfrutta il fingerprinting database di Nmap come riferimento per le personalità TCP e quello di Xprobe per quelle ICMP. In questo modo cerca di ingannare gli attacker con le loro stesse armi.

Installazione di Honeyd

Per l’installazione di un Honeyd sono possibili diverse alternative, dalla compilazione dei sorgenti (disponibili per varie piattaforme), all’utilizzo di file binari precompilati (starter-kit), fino all’impiego di pacchetti RPM già pronti.

Honeyd su Windows

Il porting per la piattaforma Windows, pur non disponendo di tutte le funzionalità avanzate previste nella versione per Linux, consente di provare il software senza  dover  affrontare  le  problematiche  legate  alla  compilazione del codice e alla gestione di un sistema Linux non sempre alla portata di tutti. L’unico requisito è la presenza della libreria WinpCap per la gestione del traffico di rete.

 

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *