01.10.2006

Реверсивная техника

image

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

Далтаев Асланбек, Аудитор IT

aslanbek_80@mail.ru

Многие компании заняты тотальной защитой внешнего периметра своих корпоративных сетей. Необходимо отдать им должное - риск прямых атак из Интернет на корпоративную сеть, включая DMZ, сводится к минимуму за счет их усилий. Но учитывают ли они постоянный прогресс и освоение злоумышленниками новых или хорошо забытых старых техник позволяющих свободно управлять внутренними ресурсами компании через межсетевые экраны, словно их и не существовало?

Атаки на переполнение буфера и подстановки байт кода на исполнение процессором описаны в полной мере в различных материалах, поэтому акцентируем внимание непосредственно на реверсивной технике, опуская методы внедрения кода. Скажем лишь, что успех внедрения трояна напрямую зависит от уровня безопасности внутренних рабочих станций, взаимодействующих со внешним миром, главным образом через браузеры и почтовые клиенты. Следует уделить внимание html страницам со вложенными скриптами, графическим изображениям, архивам zip, rar, файлам xls, doc, ppt и т.д. – всему, что может быть использовано сегодня для эксплуатации уязвимостей.

После успешного запуска троянская программа эмулирует web серфинг внутреннего пользователя (для файрвола и прокси сервера выглядит именно так), используя легальные http запросы методом direct, при наличии маршрутизации, или работая через прокси сервер. Разница в заголовках http запросов при direct и proxy методах не столь существенна. Основная задача троянской программы - передача внутренней информации злоумышленнику через http запросы, а в ответы (заголовок ответа плюс html код) ложного web сервера вставляются команды, предназначенные для выполнения троянской программой.

Вероятный алгоритм захвата IT инфраструктуры через реверсивную технику заключается в следующем:

  1. Пассивное ожидание «хозяина».

Через определенные промежутки времени, например, 1 раз в час, программа считывает содержимое web страницы-посредника (может размещаться на бесплатном хостинге или захваченном web сервере), редактируемой злоумышленником. Через страницу сообщается режим работы и публичный IP-адрес ложного web сервера.

<html><body>Under construction</body><?mode=sleep></html>

<html><body>Under construction</body><?mode=active?connect_to=82.82.82.82></html>

      2.   Переход в активное управление.

Злоумышленник создает сокет, слушающий входящие соединения tcp на порт 80 (443), ожидает http запрос троянской программы или прокси сервера. На запрос отвечает html кодом со вложенными командами для выполнения.

Рис. 1.

Демонстрация возможностей реверсивной троянской программы; принимает три команды на выполнение через http ответы ложного веб сервера (cdop – открыть cd-rom, beep – издать сигнал динамиком, cur – полный путь к текущей директории): код программы.

Ложный web сервер: код программы.

Результат работы:

     **************************************
* SIMPLE HTTP REVERSE SERVER DEMO *
**********wrote by digital duck***********


waiting for connection...
==========
victim's internal ip: 192.168.100.105
command result:
console> qwdwedwed wed we
==========
victim's internal ip: 192.168.100.105
command result: empty
console> cdop
==========
victim's internal ip: 192.168.100.105
command result: cd-rom door is opened
console> beep
==========
victim's internal ip: 192.168.100.105
command result: victim is signalling for 2 seconds
console> cur
==========
victim's internal ip: 192.168.100.105
command result: C:\Ipproxys and Settings\duck\cbproject\Application5\windows\Debug_Build
console>
  1. Организация плацдарма.

Эмулируя download файлов пользователями на захваченной машине размещаются исполняемые файлы, запускаемые главной программой как процессы, для сбора информации о программном обеспечении, используемом в локальной подсети: сканирование портов, подключение к pipes, netbios и т.д. Исходная информация сохраняется в текстовый файл, производится upload на ложный web-сервер. По результатам сканирования на внутреннюю машину загружаются программы для эксплуатации уязвимостей.

Достаточно ли обнаружить и удалить троя с инфицированной машины, чтобы прервать атаку? Все зависит от сценария нападения. Если злоумышленник делает уклон на bind shell при захвате остальных хостов, перенаправляя потоки на реверсивного трояна, который в свою очередь в реальном времени управляется злоумышленником, тогда, действительно, сам трой является узким местом, так как после его уничтожения инфицированных хостов с возможностью реверса не остается. Гораздо эффективней, если конечным результатом компрометации очередного хоста будет загрузка такого же реверсивного трояна со вложенной функцией голосования за право коннекта с «хозяином», то есть c ложным web сервером в публичной сети. Выборы в главного трояна? Почему нет! Протокол udp и правило «чей ip адрес больше (или меньше)» - тот и победил.

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

Защита информационных активов крупной организации – дело емкое и, главное, не всегда успешное. Здесь не обойтись без комплексного подхода к управлению безопасности. Более того, чтобы удачно сдерживать внешние угрозы требуется постоянно иметь в наличии внедряемые проекты, направленные на минимизацию рисков. Что можно рекомендовать по поводу реверсивных техник. Прежде всего, необходимо понимать – реверсивная техника применима не только к http. Протокол https может стать, как ни странно, самой настоящей головной болью сетевого администратора. Вашим пользователям действительно нужен доступ ко всем сайтам https в глобальной сети? Если да то забудьте о мониторинге и анализе трафика, а значит, забудьте и об обнаружении вторжений, основанных на реверсивной технике. Реверс применим практически к любому протоколу высокого уровня, важнее понимать – реверсивные троянские программы не ожидают появления «хозяина», они сами его находят. Поэтому, прежде всего, следует закрыть весь излишний исходящий трафик, http разрешить только с одного хоста – прокси сервера, создать группы пользователей Интернет, раздать доступ к web ресурсам по принципу служебной необходимости и доверительных отношений, по минимуму ограничить или вообще запретить download и upload. И помнить, что кроме http существует множество других протоколов, без которых любой нормальной сети просто не обойтись: icmp, dns, smtp, pop3, imap и другие – они тоже могут использоваться для реверса при нападении.

Надеюсь «старая песня о главном» не станет вашим кошмаром, а файрвол не превратится в груду дорогого и бесполезного железа.

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

CAPTCHA