
virtual honeypots
Honeyd é um pequeno daemon que cria hosts virtuais em uma rede. Os hosts podem ser configurados para executar serviços arbitrários, e sua personalidade TCP pode ser adaptada para que pareçam estar executando determinadas versões de sistemas operacionais. O Honeyd permite que um único host reivindique vários endereços – eu testei até 65536 – em uma LAN para simulação de rede.
É possível pingar as máquinas virtuais, ou fazer traceroute nelas. Qualquer tipo de serviço na máquina virtual pode ser simulado de acordo com um arquivo de configuração simples. Em vez de simular um serviço, também é possível fazer proxy dele para outra máquina.
O Honeyd depende de várias bibliotecas:
Certifique-se de que estejam instaladas.
Para instalar dependências no Ubuntu:
$ sudo apt-get install libevent-dev libdumbnet-dev libpcap-dev libpcre3-dev libedit-dev bison flex libtool automake
Para instalar dependências no ArchLinux:
$ pacman -S libdnet libpcap libevent pcre libedit bison flex libtool automake
Para que o framework de regressão funcione, você precisa instalar o módulo Python do libdnet. Talvez você precise do Python 2.4 para obter melhores resultados.
Para compilar o honeyd, execute os seguintes comandos:
$ ./autogen.sh $ ./configure $ make $ sudo make install
Se a compilação parar devido a erros relacionados ao Python, você pode tentar executar o configure como
$ ./configure --without-python
Se você receber avisos de compilação no Linux, reclame com os responsáveis pela idiotice do arquivo de cabeçalho condicional.
Você pode encontrar a documentação como parte deste lançamento. A página do manual pode ser acessada com os seguintes comandos:
$ man honeyd
ou no diretório fonte
$ nroff -mdoc honeyd.8
Mais informações podem ser encontradas em http://www.honeyd.org/ e https://github.com/DataSoft/Honeyd
O Honeyd requer privilégios de root para execução. Normalmente, você o executa com argumentos semelhantes aos seguintes:
$ sudo ./honeyd -d -f config.sample 10.0.0.0/8
É fortemente recomendado que você execute o Honeyd em um ambiente chroot sob uma sandbox como o systrace. Se possível, o Honeyd reduz privilégios após criar seus sockets brutos. Isso depende do seu arquivo de configuração. Você pode forçar a redução de privilégios definindo o uid e gid do Honeyd através das flags -u e -g .
Para verificar empiricamente a qualidade dos resultados de varredura de SO, um script bash chamado ostest está incluído. No entanto, há algumas "pegadinhas" com isso. Normalmente, o honeyd ignora pacotes provenientes da mesma máquina em que está sendo executado para evitar loops de roteamento. (ou pelo menos é o que afirma) Portanto, escanear a si mesmo não funciona.
Um hack feio para fazer isso funcionar é usar uma interface de hardware ethernet separada, como um adaptador usb-ethernet barato. Você então terá dois adaptadores eth, chame-os de eth0 e eth1. Configure uma rota para que o endereço IP fornecido ao ostest esteja roteando para eth0. Em seguida, configure o honeyd para escutar em eth1.
O Honeyd verá pacotes vindo de eth0 e assumirá que é uma máquina diferente da nossa, e não os descartará.
Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da GNU General Public License como publicada pela Free Software Foundation; na versão 2 da Licença, ou (a seu critério) qualquer versão posterior.
Este programa é distribuído na esperança de que seja útil, mas SEM QUALQUER GARANTIA; sem sequer a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO FIM. Veja a GNU General Public License para mais detalhes.
Você deve ter recebido uma cópia da GNU General Public License junto com este programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 EUA
Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da GNU General Public License como publicada pela Free Software Foundation; na versão 2 da Licença, ou (a seu critério) qualquer versão posterior.
Este programa é distribuído na esperança de que seja útil, mas SEM QUALQUER GARANTIA; sem sequer a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO FIM. Veja a GNU General Public License para mais detalhes.
Você deve ter recebido uma cópia da GNU General Public License junto com este programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 EUA
As seguintes pessoas ajudaram com sugestões, ideias ou código:
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]