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

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

Введение

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

В статье "The Nepenthes Platform: An Efficient Approach to Collect Malware" [5] Baecher и другие соавторы отмечают следующее:

"В течение четырех месяцев мы собрали более 15500 уникальных бинарных файлов, суммарный размер которых равен приблизительно 1400 МБ. Уникальность в данном контексте подразумевает различные MD5 хэши собранных файлов."

В упомянутой статье приводится процент идентифицированных перехваченных злонамеренных программ четырьмя антивирусами, который принимает значение между 73% и 84%. Ясно, что в таких условиях не каждый может полностью положиться на антивирусное ПО.

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

Некоторые из наиболее разрушительных червей последних лет были основаны на уязвимостях в службах Windows. В качестве примера можно привести Blaster, Sasser, Welchia и Slammer, результатом действий которых было простаивание и потеря производительности компаний по всему миру.

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

Главное различие между ботом и червем в том, что бот имеет некоторый централизованный канал управления зараженным компьютером, часто реализуемый через 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 [8], использует Google для поиска потенциально уязвимых инсталляций Mambo, что означает, что для поиска новых целей нет необходимости производить сканирование портов. Поэтому администратор не может полагаться исключительно на наличие фактов сканирования портов при обнаружении ботов. Отчеты, сделанные опять же через IRC, будут выглядеть примерно следующим образом:

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

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

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

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

Читатели, использующие Debian Linux, могут найти собранный пакет в репозитории unstable и просто выполнить команду apt-get install nepenthes. Пользователи других систем должны прочитать документацию [11], в которой детально описан процесс сборки пакета. Если у вас нет желания собирать пакет самостоятельно, вы можете скачать образы Debian для запуска в VMware [12], которые потребуют выполнить минимальную работу для установки Nepenthes. (Пожалуйста, если вы решите загрузить образ с этого сайта, постарается использовать ссылки BitTorrent, если это возможно).

После установки Nepenthes следует отредактировать файл /etc/nepenthes/nepenthes.conf и раскомментировать строку "submitnorman.so", "submit-norman.conf", "" для использования Norman sandbox. Файл submit-norman.conf должен выглядеть примерно следующим образом:

submit-norman
{
// адрес, на который будет отправлен отчет norman sandbox
email "my.email@example.com";
};

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

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

#lsof -i
nepenthes 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 [13], который предоставит вам отчеты о проверке этого файла более двадцати различными антивирусами.

Полученные бинарные файлы имеют имя, состоящее из их 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 легки в установке и требуют минимальной поддержки. Они могут предоставить полезную информацию при инфицировании компьютеров вашей организации. При использовании таких средств совместно с Системой обнаружения вторжений, может быть получена ценная информация о поведении злонамеренной программы, перехваченные пакеты и сам бинарный код программы.
Ссылки
[1] Microsoft Security Bulletin MS03-026, "Buffer Overrun in RPC Interface Could Allow Code Execution."
[2] Описание червя Blaster, www.symantec.com/security_response/writeup.jsp?docid=2003-081113-0229-99.
[3] Microsoft Security Bulletin MS06-040, "Vulnerability in Server Service Could Allow Remote Code Execution."
[4] Описание червя Mocbot/Wargbot, www.symantec.com/security_response/writeup.jsp?docid=2006-081312-3302-99.
[5] RAID '06 paper, "The Nepenthes Platform: An Efficient Approach to Collect Malware" by Baecher et al, honeyblog.org/junkyard/paper/collecting-malware-final.pdf.
[6] Домашняя страница Nepenthes, nepenthes.mwcollect.org.
[7] Домашняя страница IDS с открытым исходным кодом - Snort, www.snort.org.
[8] Сообщение Daniel Cid о сканировании Mambo в рассылку инцидентов Securityfocus, securityfocus.com/archive/75/433959/30/0/threaded.
[9] en.wikipedia.org/wiki/Nepenthes.
[10] Norman sandbox, получающий и анализирующий злонамеренный код, sandbox.norman.no.
[11] Документация Nepenthes, nepenthes.mwcollect.org/documentation.
[12] Образы Debian для запуска в VMWare, www.thoughtpolice.co.uk/vmware.
[13] Virus Total, бесплатный сервис для сканирования бинарных файлов различными антивирусами, www.virustotal.com.
Серверы IBM eServer pSeries


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=10046