
виртуальные honeypots
Honeyd — это небольшой демон, который создаёт виртуальные хосты в сети. Хосты можно настроить на запуск произвольных служб, а их TCP-«личность» можно адаптировать так, чтобы они выглядели как работающие под определёнными версиями операционных систем. Honeyd позволяет одному хосту занимать несколько адресов — я тестировал до 65536 — в локальной сети для целей сетевого моделирования.
Виртуальные машины можно пинговать или выполнять к ним traceroute. Любой тип службы на виртуальной машине может быть смоделирован в соответствии с простым конфигурационным файлом. Вместо моделирования службы её также можно проксировать на другую машину.
Honeyd зависит от нескольких библиотек:
Убедитесь, что они у вас установлены.
Чтобы установить зависимости в Ubuntu:
$ sudo apt-get install libevent-dev libdumbnet-dev libpcap-dev libpcre3-dev libedit-dev bison flex libtool automake
Чтобы установить зависимости в ArchLinux:
$ pacman -S libdnet libpcap libevent pcre libedit bison flex libtool automake
Для работы регрессионного фреймворка необходимо установить Python-модуль для libdnet. Для наилучших результатов вам может понадобиться Python 2.4.
Чтобы собрать honeyd, выполните следующие команды:
$ ./autogen.sh $ ./configure $ make $ sudo make install
Если компиляция останавливается из-за ошибок, связанных с Python, вы можете попробовать запустить configure следующим образом:
$ ./configure --without-python
Если при компиляции на Linux вы получаете предупреждения, пожалуйтесь людям, ответственным за идиотизм с условными заголовочными файлами.
Документация входит в состав этого релиза. К man-странице можно обратиться с помощью следующих команд:
$ man honeyd
или в каталоге исходников
$ nroff -mdoc honeyd.8
Дополнительную информацию можно найти на http://www.honeyd.org/ и https://github.com/DataSoft/Honeyd
Для работы Honeyd требуются root-привилегии. Обычно вы запускаете его с аргументами, похожими на следующие:
$ sudo ./honeyd -d -f config.sample 10.0.0.0/8
Настоятельно рекомендуется запускать Honeyd в chroot-окружении внутри песочницы наподобие systrace. Если возможно, Honeyd сбрасывает привилегии после создания своих raw-сокетов. Это зависит от вашего конфигурационного файла. Вы можете принудительно сбросить привилегии, задав uid и gid Honeyd с помощью флагов -u и -g .
Чтобы эмпирически проверить качество результатов сканирования ОС, включён bash-скрипт с именем ostest. Однако с ним есть несколько «подводных камней». Обычно honeyd игнорирует пакеты, приходящие с той же машины, на которой он работает, чтобы избежать петель маршрутизации (по крайней мере, так он утверждает). Поэтому сканирование самого себя не работает.
Некрасивый хак, позволяющий заставить это работать, — использовать отдельный аппаратный Ethernet-интерфейс, например дешёвый USB-Ethernet адаптер. Тогда у вас будет два Ethernet-адаптера, назовём их eth0 и eth1. Настройте маршрут так, чтобы IP-адрес, переданный ostest, маршрутизировался через eth0. Затем настройте honeyd на прослушивание через eth1.
Honeyd увидит пакеты, приходящие с eth0, решит, что это другая машина, а не наша, и не отбросит их.
Эта программа является свободным программным обеспечением; вы можете распространять и/или изменять её в соответствии с условиями GNU General Public License, опубликованной Free Software Foundation; либо версии 2 Лицензии, либо (по вашему выбору) любой более поздней версии.
Эта программа распространяется в надежде, что она будет полезна, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; без подразумеваемой гарантии ТОВАРНОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННЫХ ЦЕЛЕЙ. Подробнее см. GNU General Public License.
Вы должны были получить копию GNU General Public License вместе с этой программой; если вы её не получили, напишите в Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. Эта программа является свободным программным обеспечением; вы можете распространять и/или изменять её в соответствии с условиями GNU General Public License, опубликованной Free Software Foundation; либо версии 2 Лицензии, либо (по вашему выбору) любой более поздней версии.
Эта программа распространяется в надежде, что она будет полезна, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; без подразумеваемой гарантии ТОВАРНОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННЫХ ЦЕЛЕЙ. Подробнее см. GNU General Public License.
Вы должны были получить копию GNU General Public License вместе с этой программой; если вы её не получили, напишите в Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
Следующие люди помогли советами, идеями или кодом:
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]