06.08.2002

Когда не спасают IDS, Firewall и антивирусы: обнаружение и изучение IRC троянов. (часть первая)

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

по материалам securityfocus

Введение

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

Учитывая, что текущая стандартная модель безопасности в подавляющем большинстве организаций основана на стандартных программных изделиях, этот класс троянов обычно не улавливается. Большинство существующих организаций установили свои межсетевые защиты, антивирусное программное обеспечение и системы обнаружения вторжения еще в 90-ых годах прошлого века, и с тех пор ограничивались лишь модернизацией и установкой защитных заплат, но программы тех лет принципиально не предусмотрены для обнаружения этого класса троянов, появившегося лишь в последние пару лет.

Инцидент

Рассмотрим случай: Firewall поднял тревогу, как показано в Примере 1, в районе полуночи: многочисленные сканирования с одного из хостов клиента внутри периметра по множеству интернет-адресов на IRC (TCP 6667). В течение нескольких минут мы получаем десятки тысяч тревожных сообщений. Несколько следующих дней мы тщательно исследуем методы нашего нападавшего, используемые им инструменты и их действия. Все эти усилия приводят нас к печальному выводу, что нам встретился довольно новый, непохожий ни на что остальное класс нападений (IRC-based троян), и что мы собственном опыте убедились, что межсетевые защиты, антивирусы и системы обнаружения вторжения от него не спасают. Здесь приведен классический случай, с которым многие уже столкнулись:
Пример 1. Firewall Logs

Apr 25 18:15:14 customer_firewall unix: securityalert: tcp if=hme1 from xxx.xxx.xxx.43:3622 to
212.110.161.45 on unserved port 6667
Apr 25 18:04:32 customer_firewall unix: securityalert: tcp if=hme1 from xxx.xxx.xxx.43:3690 to
203.121.68.219 on unserved port 6667
Apr 25 17:55:15 customer_firewall unix: securityalert: tcp if=hme1 from xxx.xxx.xxx.43:4240 to
209.116.7.23 on unserved port 6667
Apr 25 17:56:48 customer_firewall unix: securityalert: tcp if=hme1 from xxx.xxx.xxx.43:4802 to
212.74.101.21 on unserved port 6667

...и так далее по еще нескольким тысячам хостов.

Подход нападавшего.

Код, используемый хакером, может быть уникальным, но подход не нов. Однако вы редко слышите об этом - использование trojan пакетов, использующих IRC в качестве канала управления. Большинство средств предупреждения реагируют только на IRC backdoors и увеличение трафика, но не пытаются определять индивидуальные используемые троянские пакеты. А существующие антивирусы ловят крайне мало подобных инструментов. Причиной этого является слишком большое число таких инструментов нападения и необходимость подстраивать антивирусы под каждый, а ведь сколько подобных программ появляется или модифицируется. В общем, практически все производители антивирусов махнули на них рукой, аргументируя свое решение тем, что скорость распространения такого класса троянов невысока, в отличие от, скажем, заслуживающих внимания и освещения в печати червей подобных Nimda и Melissa. А ведь существуют сотни, а возможно и тысячи, этих пакетов, которые могут рассматриваться, как своего рода набор инструментов для компьютерного взломщика - как швейцарский армейский нож с многочисленными причиндалами. Диапазон действий этого набора самописных или полученных скриптов самый обширный и может использоваться в виде готовых к применению инструментов, как опытными профессионалами, так и начинающими хакерами-вандалами для самых различных целей:
  • Инфицирование хоста (с высоким уровнем анонимности). Может осуществляться самыми разнообразными путями.
  • Добавление разнообразных инструментов для общих задач (backdoors, DоS, просмотр хостов и портов, сокрытие источника нападения, выведение из строя хоста при необходимости, и т.д.).
  • Загрузка некоторых кодов контроля и управления (обычно коллекция mIRC скриптов).
Эти коды управления - то, что действительно определяет этот класс, как троянские пакеты. Коды контроля обеспечивают нападавшего средствами для управления различными приложениями и процессами через IRC, backdoor к хосту, или механизмами перемещения файлов. Более искушенные пакеты позволяют атакующему получать отчеты от жертв (или зомби) об успехах/продвижении нападений. Это позволяет хакеру управлять множеством, в некоторых случаях сотнями и даже тысячами зомби с большими возможностями контроля. Большинство подобных методов основано на модифицированной хакерами версии mIRC, обычных клиентах IRC, и связанных mIRC-скриптах. В общем, выгода от этого подхода тройная. Во-первых, этот подход использует довольно доступные инструменты для полного управления жертвами. Во вторых, при этом используется множество промежуточных жертв, что существенно затрудняет идентификацию хакера. И, наконец, этот метод симулирует действие различных законных программных продуктов, плохо идентифицируется, как именно неправомочное действие, и использует огромное количество перемещающихся пакетов, что сбивает с толку антивирусные программы, межсетевые защиты и другие возможные защитные системы. К примеру, ни CERT, ни ФБР не смогли предложить реальных методов для обнаружения источника нападения и способов защиты в рассмотренном нами случае.

Обнаружение компромисса

После первой волны сканирования, мы попросили полностью проверить этот хост. Оказывалось, что он управляется удаленным пользователем с переносного лэптопа с DSL, имеющим удаленный доступ через VPN. Машина имела самое современное антивирусное программное обеспечение и самую лучшую персональную межсетевую защиту. Пользователь, как выяснилось, отнюдь не является специалистом в компьютерах, хотя и не стеснен в средствах и тратит их немало на компьютерную защиту. Был сделан вывод, что его лэптоп был заражен каким-то способом. Компьютер был проверен опытными специалистами самым тщательным образом, но ничего подозрительного не было найдено. Группа, которая проводила проверку, сообщила, что машина чиста, и единственное предположение - что ip-адрес машины был подставлен опытным хакером путем переадресации. Однако когда лэптоп снова был подключен к сети, мы немедленно начали получать сканирующие просмотры с хоста по многим интернет-адресам на Squid (TCP 3158) и SQL (TCP 1433). Мы попросили, чтобы этот лэптоп был послан на сей раз нам для исследования.

Мы подключили машину вне периметра сети рядом со сниффером, и проанализировали перехваченный в течение часа трафик. Сразу же было обнаружена syn-flood атака на определенный сервер (см. Пример 2). После детального изучения, при использовании Ethereal и других инструментов, мы о обнаружили, что существует еще около 75 других зомби, участвующих в этой DDoS атаке, и все они управляются с IRC канала с одного источника, похоже, из Казахстана. С помощью своих собственных методов мы вывели из строя источник угрозы.

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

  • заражение новых хостов через уязвимость в SQL, запуск удаленных программ, которые загружают и инсталлируют троянский пакет. Все наблюдаемые жертвы использовали SQL серверы, имеющие учетную запись sa без пароля. Все были DSL или пользователи модема. Об этом говорит сканирование 1433 порта, которые мы наблюдали.
  • сокрытие себя путем использования других хостов, обычно открытых Squid прокси. Об этом говорит сканирование 3158 порта, которые мы наблюдали. (См. Пример 3, с расшифровкой того, как наш хакер сканирует на предмет поиска большего количества открытых Squid прокси).
  • управление и связь с зомби через IRC канал через действующий, но зараженный сервер.
Пример 2. DDоS

* Stran - наш хакер. Здесь он устанавливает TOPIC канала, которая сообщает зомби, кому нападать и на какой порт.
:Stran!~stran@fbi.gov TOPIC #rubik :!0pana www.gotocasino.com 80
* Зомби в сети attbi.com сообщает, что "бомбит" жертву.
:xJ9XI58!~F107638I@rox-21043.atl.client2.attbi.com PRIVMSG #rubik
:5,1[#4bOmBiNg#5]#0-#3[#09 www.gotocasino.com #3]
* Тот же самый зомби сообщает хозяину об успешной атаке
:xJ9XI58!~F107638I@rox-21043.atl.client2.attbi.com PRIVMSG #rubik
:14Attacked host #15: #4 www.gotocasino.com #14port #15: #4 80
* То же самое и с другими зомби, которые продолжают syn-flood атаку жертвы.

Пример 3. Распределенный просмотр Squid

* Stran, наш хакер, сообщает зомби просматривать адреса и порты в 3128.txt
:Stran!~stran@fbi.gov PRIVMSG #rubik :!0 play #rubik 3128.txt 2500
PRIVMSG Stran: ** 00X * *U ** 15nderstood

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

продолжение следует…
 

или введите имя

CAPTCHA