использование Nepenthes Honeypot для обнаружения злонамеренного ПО

введение

За последние несколько лет в Windows было обнаружено множество серьезных уязвимостей, включая MS03-026 - уязвимость, с помощью которой в 2003 году распространялся Blaster, а также недавняя уязвимость MS06-040, обнаруженная в августе 2006 года, которая использовалась в черве Mocbot/Wargbot. В то же время быстро возросло количество злонамеренных программ, использующих эти уязвимости. К их числу следует отнести различные варианты известных червей, а также программы для организации ботнетов, такие как Agobot, Phatbot, Sdbot и т. д. Как известно, боты это множество компрометированных компьютеров “зомби”, объеденных в сеть - ботнет, и используемых в незаконных целях.

В этой статье описывается как Nepenthes, пассивный honeypot, который может использоваться для быстрого уведомления администратора о злонамеренном проникновении в сеть. Данная утилита коллекционирует злонамеренное ПО и может помочь в обнаружении и удалении инфекции.

обнаружение червей, основанных на сканировании

Некоторые из наиболее разрушительных червей последних лет были основаны на уязвимостях в службах Windows. В качестве примера можно привести Blaster, Sasser, Welchia и Slammer, результатом действий которых было простаивание и потеря производительности компаний по всему миру. Хочется надеяться, что ваша система обнаружения вторжений (Intrusion Detection System, IDS) имеет сигнатуры известных червей, таких как вышеупомянутые, а также позволяет опознавать факт сканирования портов для обнаружения новых червей. В случае с червем Blaster, каждый зараженный хост должен был бы каждую секунду отправлять на 135 TCP порт около 10 пакетов, что не ускользнуло бы от внимания Snort и позволило бы обнаружить проблему еще до появления официальной сигнатуры червя.

сложности в обнаружении ботов

Главное различие между ботом и червем в том, что бот имеет некоторый централизованный канал управления зараженным компьютером, часто реализуемый через IRC. Боты могут в чем-то повторять поведение червя, однако обычно они контролируются через IRC и все действия, такие как сканирование и осуществление атаки, начинают по команде. В данном случае IDS проанализировала бы C&C трафик (аббревиатура C&C расшифровывается как Command and Control) и сгенерировала сообщение об успешной атаке: :[SCAN]: Exploited yyy.yyy.123.45.


Вообще бот часто ведет себя довольно тихо, до тех пор пока не получит команду просканировать заданную сеть:

#(4 - 1329104) [2005-03-25 03:39:49.297] [snort/2001372]
BLEEDING-EDGE IRC Trojan Reporting (Scan)
IPv4: yyy.yyy.231.32 -> zzz.zzz.163.59
hlen=5 TOS=0 dlen=168 ID=18140 flags=0 offset=0 TTL=127 chksum=56572
TCP: port=3023 -> dport: 8000 flags=***AP*** seq=1483308911
ack=501861482 off=5 res=0 win=64331 urp=0 chksum=51363

Payload: length = 128
000 : 50 52 49 56 4D 53 47 20 23 61 73 74 72 6F 20 3A PRIVMSG #astro :
010 : 5B 53 43 41 4E 5D 3A 20 52 61 6E 64 6F 6D 20 50 [SCAN]: Random P
020 : 6F 72 74 20 53 63 61 6E 20 73 74 61 72 74 65 64 ort Scan started
030 : 20 6F 6E 20 yy yy yy 2E yy yy yy 2E 78 2E 78 3A on yyy.yyy.x.x:
040 : 34 34 35 20 77 69 74 68 20 61 20 64 65 6C 61 79 445 with a delay
050 : 20 6F 66 20 35 20 73 65 63 6F 6E 64 73 20 66 6F of 5 seconds fo
060 : 72 20 30 20 6D 69 6E 75 74 65 73 20 75 73 69 6E r 0 minutes usin
070 : 67 20 32 30 30 20 74 68 72 65 61 64 73 2E 0D 0A g 200 threads...


Другой бот, обнаруженный человеком по имени Daniel Cid, использует Google для поиска потенциально уязвимых инсталляций Mambo, что означает, что для поиска новых целей нет необходимости производить сканирование портов. Поэтому администратор не может полагаться исключительно на наличие фактов сканирования портов при обнаружении ботов. Отчеты, сделанные опять же через IRC, будут выглядеть примерно следующим образом:

"PRIVMSG #ch :[GOOGLE] Trying to exploit http://www.example.com/index.php"

Ботов обнаруживать сложнее, чем червей, по той причине, что они могут длительное время бездействовать и начать вызывать подозрения у IDS только при получении команды на начало атаки других компьютеров.

использование honeypots для обнаружения ботов

В случае большинства червей и ботов, основная часть их трафика будет направлена во внешнюю сеть. В этих случаях вы можете выделить некоторые закономерности крупномасштабного сканирования в логах IDS. Однако не исключено что придет время, когда бот начнет сканирование внутренней сети с целью поиска уязвимых систем, пригодных для заражения.

Для решения поставленных задач мы будем использовать Nepenthes honeypot, названный так в честь вида плотоядных растений. Nepenthes запускается на UNIX-сервере и эмулирует основные службы Windows с целью обнаружения автоматизированных атак. Nepenthes пытается загрузить злонамеренный код и имеет опциональную возможность автоматический отправки его в Norman sandbox. Отчет о характеристиках злонамеренного кода вы получите на ваш e- mail адрес. Если вы запустите Nepenthes на публично доступной машине, вы быстро поймете, какое большое число злонамеренного ПО функционирует в сети. Большинство из этих программ - это различные варианты нескольких основных семейств ботов: SpyBot, Agobot и других. Какое-то число из них может не обнаруживаться антивирусом. Для большинства людей это не представляет интереса, однако имеет смысл запустить Nepenthes внутри вашей организации для обнаружения червей, живущих внутри корпоративной сети.

установка и настройка Nepenthes

Читатели, использующие Debian Linux, могут найти собранный пакет в репозитории unstable и просто выполнить команду apt-get install nepenthes. Пользователи других систем должны прочитать документацию, в которой детально описан процесс сборки пакета. Если у вас нет желания собирать пакет самостоятельно, вы можете скачать образы Debian для запуска в VMware, которые потребуют выполнить минимальную работу для установки Nepenthes. После установки Nepenthes следует отредактировать файл /etc/nepenthes/nepenthes.conf и раскомментировать строки "submitnorman.so", "submit- norman.conf", для использования Norman sandbox. Файл submit-norman.conf должен выглядеть примерно следующим образом:

submit-norman

{
email "my.email@example.com";
};


Это включит автоматическую отправку перехваченного кода на онлайновый Norman sandbox, который выполнит анализ полученного кода и отправит копию отчета о результатах на ваш e-mail. Это даст вам информацию о злонамеренном коде без необходимости его запуска и трассировки или осуществления его дизассемблирования и анализа.

Когда вы настроите и запустите Nepenthes, это приложение должно начать прослушивать большое количество часто используемых TCP/IP портов, как показано ниже:

#lsof -i

nepnthes 25917 nepenthes 6u IPv4 162588 TCP *:smtp (LISTEN)
nepenthes 25917 nepenthes 7u IPv4 162589 TCP *:pop3 (LISTEN)
nepenthes 25917 nepenthes 8u IPv4 162590 TCP *:imap2 (LISTEN)
nepenthes 25917 nepenthes 9u IPv4 162591 TCP *:imap3 (LISTEN)
nepenthes 25917 nepenthes 10u IPv4 162592 TCP *:ssmtp (LISTEN)
...


использование Nepenthes

При попытке заражения сенсора Nepenthes, утилита пытается получить копию злонамеренного кода и отправить ее на Norman sandbox. Ниже приведена часть отчета о IRC-боте:

[ Network services ]
* Looks for an Internet connection.
* Connects to xxx.example.net on port 7654 (TCP).
* Sends data stream (24 bytes) to remote address xxx.example.net, port 7654.
* Connects to IRC Server.
* IRC: Uses nickname xxx.
* IRC: Uses username xxx.
* IRC: Joins channel #xxx with password xxx.
* IRC: Sets the usermode for user xxx to ...


Как видите, это гораздо проще, чем самостоятельное дизассемблирование и анализ кода. Некоторые злонамеренные программы, такие как Agobot, имеют встроенные антиотладочные средства, которые препятствует анализу их кода sandbox-ом. В таких случаях вы можете попробовать воспользоваться антивирусом или, если он ничего не обнаружит, попробовать отослать бинарный файл на Virus Total, который предоставит вам отчеты о проверке этого файла более двадцати различными антивирусами.

Полученные бинарные файлы имеют имя, состоящее из их MD5-хэша, и в дистрибутиве Debian находятся в директории /var/lib/nepenthes/binaries:

# ls /var/lib/nepenthes/binaries/

01a7b93e750ac9bb04c24c739b09c0b0 547765f9f26e62f5dfd785038bb4ec0b
99b5a3628fa33b8b4011785d0385766b 055690bcb9135a2086290130ae8627dc
54b27c050763667c2b476a1312bb49ea ...


Лог файлы также содержат информацию, откуда был получен данный бинарный файл:

# tail -1 /var/log/nepenthes/logged_submissions

[2006-07-05 20:37:52]
ftp://ftp:password@xxx.info:21/host.exe eb6f41b9b17158fa1b765aa9cb3f36a0


Если ваш антивирус на данный момент не видит угрозы в полученном файле, вам следует отправить этот файл разработчикам антивируса, которые могут достаточно быстро обновить базу сигнатур. Это позволит вам упростить работу по очистке системы и предотвратить эпидемию.

результаты использования Nepenthes

Новозеландский проект Honeynet установил Nepenthes версии 0.17 на Debian unstable. Данная машина прослушивала 255 IP-адресов (префикс сети - /24). В течение пяти дней было собрано 78 различных образцов кода. На момент окончания этих пяти дней только 48 из них были идентифицированы антивирусными продуктами как злонамеренный код. Из идентифицированных образцов некоторые были червями Korgo, Doomjuice, Sasser и Mytob. Остальные были IRC-ботами того или иного типа, подобного SDBot, Spybot, Mybot и Gobot. Большинство бинарных файлов были классифицированы как черви или боты, имеющие возможности обратной связи и управления. Дальнейший анализ этих образцов может быть выполнен читателем самостоятельно.

заключение

Для Windows были выпущено большое количество патчей, устраняющих отдельные уязвимости. Даже с хорошей системой управления патчами некоторые из ваших хостов могут остаться непропатченными из-за неверного конфигурирования или человеческого фактора. Большое количество различного злонамеренного ПО может быть использовано для атаки на систему с незакрытыми уязвимостями. Так как исходные коды некоторых злонамеренных программ часто доступны опытным атакующим, может существовать большое количество разновидностей одного злонамеренного кода, не обнаруживаемых антивирусами.

Пассивные honeypot-ы подобные Nepenthes легки в установке и требуют минимальной поддержки. Они могут предоставить полезную информацию при инфицировании компьютеров вашей организации. При использовании таких средств совместно с системой обнаружения вторжений, может быть получена ценная информация о поведении злонамеренной программы, перехваченные пакеты и сам бинарный код программы.



Jamie Riden, перевод Владимира Куксенка


Сетевые решения. Статья была опубликована в номере 07 за 2007 год в рубрике save ass…

©1999-2024 Сетевые решения