
honeypot virtuali
Honeyd è un piccolo demone che crea host virtuali su una rete. Gli host possono essere configurati per eseguire servizi arbitrari e la loro personalità TCP può essere adattata in modo che appaiano come se stessero eseguendo determinate versioni di sistemi operativi. Honeyd consente a un singolo host di gestire più indirizzi - ne ho testati fino a 65536 - su una LAN per la simulazione di rete.
È possibile effettuare il ping delle macchine virtuali, o eseguire un traceroute verso di esse. Qualsiasi tipo di servizio sulla macchina virtuale può essere simulato in base a un semplice file di configurazione. Invece di simulare un servizio, è anche possibile inoltrarlo tramite proxy a un'altra macchina.
Honeyd dipende da diverse librerie:
Assicurati di averle installate.
Per installare le dipendenze in Ubuntu:
$ sudo apt-get install libevent-dev libdumbnet-dev libpcap-dev libpcre3-dev libedit-dev bison flex libtool automake
Per installare le dipendenze in ArchLinux:
$ pacman -S libdnet libpcap libevent pcre libedit bison flex libtool automake
Per far funzionare il framework di regressione, devi installare il modulo Python per libdnet. Potresti aver bisogno di Python 2.4 per ottenere i migliori risultati.
Per compilare honeyd, esegui i seguenti comandi:
$ ./autogen.sh $ ./configure $ make $ sudo make install
Se la compilazione si interrompe a causa di errori legati a Python, puoi provare a eseguire configure come
$ ./configure --without-python
Se ricevi avvisi di compilazione su Linux, lamentati con i responsabili dell'idiozia dei file header condizionali.
Puoi trovare la documentazione inclusa in questa release. La pagina di manuale può essere consultata con i seguenti comandi:
$ man honeyd
oppure nella directory dei sorgenti
$ nroff -mdoc honeyd.8
Maggiori informazioni sono disponibili su http://www.honeyd.org/ e https://github.com/DataSoft/Honeyd
Honeyd richiede privilegi di root per l'esecuzione. Normalmente, lo si esegue con argomenti simili ai seguenti:
$ sudo ./honeyd -d -f config.sample 10.0.0.0/8
Si consiglia vivamente di eseguire Honeyd in un ambiente chroot all'interno di una sandbox come systrace. Se possibile, Honeyd rilascia i privilegi dopo aver creato i suoi raw socket. Questo dipende dal tuo file di configurazione. Puoi forzare il rilascio dei privilegi impostando l'uid e il gid di Honeyd tramite i flag -u e -g .
Per verificare empiricamente la qualità dei risultati della scansione dei sistemi operativi, è incluso uno script bash chiamato ostest. Ci sono però alcuni "trabocchetti" in merito. Normalmente, honeyd ignora i pacchetti provenienti dalla stessa macchina su cui è in esecuzione per evitare loop di routing (o almeno così sostiene). Quindi scansionare sé stessi non funziona.
Un trucco rozzo per far funzionare il tutto è usare un'interfaccia ethernet hardware separata, come un economico adattatore usb-ethernet. Avrai quindi due adattatori eth, chiamiamoli eth0 e eth1. Configura una route in modo che l'indirizzo IP assegnato a ostest venga instradato verso eth0. Configura quindi honeyd per ascoltare su eth1.
Honeyd vedrà i pacchetti provenienti da eth0 e supporrà che provengano da una macchina diversa dalla nostra, quindi non li scarterà.
Questo programma è software libero; puoi ridistribuirlo e/o modificarlo secondo i termini della GNU General Public License come pubblicata dalla Free Software Foundation; sia la versione 2 della Licenza, sia (a tua scelta) qualsiasi versione successiva.
Questo programma è distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA; senza nemmeno la garanzia implicita di COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO. Vedi la GNU General Public License per maggiori dettagli.
Dovresti aver ricevuto una copia della GNU General Public License insieme a questo programma; in caso contrario, scrivi alla Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Questo programma è software libero; puoi ridistribuirlo e/o modificarlo secondo i termini della GNU General Public License come pubblicata dalla Free Software Foundation; sia la versione 2 della Licenza, sia (a tua scelta) qualsiasi versione successiva.
Questo programma è distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA; senza nemmeno la garanzia implicita di COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO. Vedi la GNU General Public License per maggiori dettagli.
Dovresti aver ricevuto una copia della GNU General Public License insieme a questo programma; in caso contrario, scrivi alla Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Le seguenti persone hanno contribuito con suggerimenti, idee o codice:
Dug Song [email protected] Jamie Van Randwyk [email protected] Eric Thomas [email protected] Christopher Kolina Derek Cotton Yuqing Mai Lance Spitzner [email protected] Christian Kreibich [email protected] Bill Cheswick [email protected] Lauren Oudot [email protected] Jon Oberheide [email protected] David Clark [email protected] Dan Petro [email protected] David Scott [email protected] Addison Waldow [email protected] Rami Rashid [email protected]