Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 116, АВГУСТ 2008 г.

Новая ветвь обороны

Крис Касперски

Хакер, номер #116, стр. 116-022-1

Активная защита против вирусов

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

Люди верят в антивирусы, и, хотя антивирусы им не очень-то помогают, они уже давно стали непременным атрибутом безопасности. Даже – со старыми базами месячной давности. Антивирусная индустрия, изначально ориентированная на отлов вирусов, которые разрабатываются месяцами и внедряют свою, возможно, измененную копию в исполняемые файлы, распространяемые через дискеты, BBS или первобытные компьютерные сети типа FIDO, оказалась тупиковой ветвью эволюции. Она паразитирует на вирусах и обречена на вымирание. Агонию мы можем наблюдать уже сейчас.

Вирусы изменились! Точнее, исчезли, уступив место компьютерным червям, появляющимся чуть ли не каждый день, написанным на С/DELPHI/Visual Basic'е, ни в какие файлы не внедряющимся и зачастую обитающим исключительно в оперативной памяти. Руткиты и почтовые троянские кони — это для детишек. Нормальная мальварь похожа на крылатую ракету. Быструю, стремительную, накрывающую цель точечным ударом и самоуничтожающуюся в случае неудачной атаки. Действительно, какой смысл торчать на машине, если пароли вместе с электронными деньгами уже ушли в неизвестном направлении и червь может смело делать себе харакири. Благо, пока все дыры не заткнуты, он, в случае необходимости, будет приходить вновь и вновь.

Участники рынка антивирусов испытывают серьезные проблемы с поиском образцов свежей малвари, покупая ее за нехилые деньги у того же VirusTotal'а или Norman'а. Наглядный тому пример — Rustock.C. Когда одни компании (имеющие связь с миром андеграунда) уже выпустили лекарство, другие (такой связи, очевидно, не имеющие) — лихорадочно пытались заполучить хотя бы один рабочий образец. А смысл? По данным компаний, владеющих распределенными сенсорными сетями, эпидемия рустока завершилась еще до выпуска лекарства в свет (по другим данным — спустя несколько дней после его выхода). Русток сделал свое дело, подняв бот-нет, прокачавший через себя нехилый объем хакерского трафика, после чего осел в частных коллекциях, ну и в антивирусных базах. О! Как круто ловить вирус, который можно встретить разве что на www.offensivecomputing.net, да и то – после предварительной регистрации.

IDS и IPS

Новое время требует новых решений. Пионерами борьбы с червями (и зловещими хакерами) стали системы обнаружения вторжений, они же Intruder Detection System или, сокращенно, IDS. В отличие от антивирусов и pro-активных механизмов, работающих с файлами и хучащих операционную систему, так что она постоянно сваливается в голубой экран смерти, IDS поступает совсем не так. IDS садится на интерфейс, прогоняя через себя весь входящий/исходящий сетевой трафик, и через специальную базу «правил» (фактически, тех же самых сигнатур) ловит подозрительные пакеты или детектит специфичную сетевую активность. Естественно, сигнатуры необходимо обновлять, иначе IDS ни хвоста не сможет распознать, и сигнала тревоги мы не услышим. А где их брать, эти сигнатуры?

Пополнение сигнатур осуществляется из двух основных источников. Первый — honey-pot'ы — «горшки с медом» или «капканы» для червей, реализованные на базе умышленно незащищенных компьютеров (виртуальных машин) с кучей дыр, куда малварь устремляется толпами. Конечно, возбуждая специально сконструированную систему сенсоров, тут же «выцарапывающих» червей из TCP/IP-потока и забрасывающих их в сигнатурную базу, в результате чего остальные узлы, оснащенные IDS, автоматически распознают малварь и поднимают администратора по тревоге.

Второй источник — ручной анализ свежих дыр с ручным же созданием регулярных выражений, описывающих практически все возможные комбинации зловредного кода. Благодаря чему, малварь еще не написана, а уже есть в базе! И это никакая не эвристика, а конкретная сигнатура (точнее, набор сигнатур), которую не так-то просто обломать, особенно с учетом того, что рядовым пользователям сигнатуры недоступны и лицензируются только крупным компаниям по подписке за деньги.

Локальные антивирусы с эвристическими анализаторами на борту доступны всем желающим. Прежде, чем выпускать червя в Сеть, хакеры многократно прогоняют его через кучу антивирусов, совершенствуя код, пока все эвристики не заткнутся. Собственно, потому эвристический анализ и не работает. Даже если эвристик настолько крут, что ловит 99,996% еще неизвестной малвари, то оставшихся 0,004% вполне достаточно для эпидемии глобальных масштабов.

По большому счету, качество детекции у IDS ничуть не выше. Но недоступность коммерческих реализаций и невозможность «обкатки» малвари погружают хакера во тьму, вынуждая его действовать наугад и наступать на заботливо расставленные капканы и грабли. Обойти все может разве что ясновидец или же… непосредственно сам разработчик IDS. Ни тех, ни других среди хакеров не наблюдается, а потому IDS'ы рулят.

Главным (и, пожалуй, единственным) недостатком IDS'ов является их пассивность. Они словно посторонние наблюдатели, распознающие вторжение и не предпринимающие никаких мер по его предотвращению, хотя с технической стороны заблокировать трафик — раз плюнуть. Так почему же IDS'ы этого не делают? Причина в огромном количестве ложных позитивных срабатываний. При простой записи в лог — проблем не возникает (администраторы любят анализировать длинные логи), а вот блокировка трафика из-за каждого пустяка превращает IDS в замечательное средство для DoS-атак. Его даже атаковать не нужно. Он и сам с перепугу замурует все входы/выводы, словив совершенно честный пакет.

Когда же IDS достигли приемлемого качества распознавания атак, их тут же переименовали в IPS (Intruder Prevention System) – «Системы Предотвращения Вторжений». Базовые принципы работы остались неизменными. Старые продукты под новой торговой маркой – ясное дело, чтобы срубить с пользователей побольше бабла. А что? Некоторые ставят одновременно и IDS, и IPS, хотя, по сути дела, IDS реализует подмножество функций IPS и при наличии последнего просто не нужен. Ну разве что достался в подарок от производителей сетевых девайсов.

Кстати, о подарках. С некоторого времени IDS/IPS стали встраиваться в персональные брандмауэры, точки беспроводного доступа, модемы и т.д. Качество встраиваемых защит крайне невелико. Доступа к сигнатурным базам (за редким исключением) они не имеют, а потому ловят только клинически устаревшую малварь, которая использует типовые сценарии атаки, разработанные несколько лет тому назад.

IDS/IPS, встроенные в «промышленные» маршрутизаторы от CISCO, работают намного лучше. Точнее сказать, CISCO IPS работает, а та штука, что встроена в персональный брандмауэр, только набивает себе цену. До недавнего времени IDS/IPS стоили очень и очень дорого, что, в конечном счете, привело к появлению аналогов от независимых производителей (спрос рождает предложение). Из них мы рассмотрим два наиболее известных продукта: коммерческий AMP (Active Malware Protection) от Endeavor Security и открытый проект Snort. Сравним их сильные и слабые стороны.

Snort

Система обнаружения вторжений по имени Snort (с логотипом свиньи с в-о-о-от такими ноздрями) позиционируется как Open Source-проект. Исходные тексты можно в любой момент скачать с официального сайта www.snort.org. Там же можно найти и многочисленные порты под любые системы: от XP до прошивок DSL-модемов и беспроводных точек доступа. Правда, с установкой придется, мягко выражаясь, попыхтеть. Юзабельность – на уровне черного экрана командной строки. Системы генерации отчетов в удобочитаемом виде «как бы есть», но пользы от них немного и сквозь отчет приходится продираться, как через оккупированную хрюшками свинофабрику. Приходится закачивать с того же интернета дополнительные программы и собственноручно обустраивать линию обороны.

При всей известности и даже открытости этого проекта, есть у него один большой (по крайней мере, для нас) недостаток. Без сигнатурной базы Snort практически бесполезен, а за доступ к базе надо платить. За годовую подписку нужно выложить от $30 до $500 – в зависимости от количества установленных сенсоров и потребностей. Без подписки зарегистрированные пользователи (то есть, халявщики) получают сигнатуры через 30 дней — порядком протухшие и не сильно полезные. Ведь последнее время вспышки вирусной активности носят кратковременный характер и через 30 дней вирусная агрессия, как правило, сходит на нет. В Сети наблюдается лишь мелкая остаточная «рябь». В итоге, незарегистрированные пользователи получают сигнатуры по мере выхода новых релизов Snort'а и поражаются, как эта штука стала стандартом де-факто в мире открытых IDS?! Она же совсем не работает!

Бесспорно, среди открытых проектов — Snort лучший. Он детально описан в десятках книг, спектр целевой аудитории которых распластался от чайников до администраторов, самостоятельно пишущих сигнатуры (или, в терминах Snort'а, — «рулеза» от английского rules, то есть правила), вместо того, чтобы лицензировать уже готовые у ведущих поставщиков.

AMP

Основной конкурент Snort'а — это Active Malware Protection от Endeavor Security (www.endeavorsecurity.com). Коммерческий продукт с дружелюбным интерфейсом и потрясающими возможностями, приправленными качественно сконструированными и тщательно отлаженными сигнатурами, дающими минимум ложных срабатываний. Последнее позволяет использовать AMP и как IDS, и как IPS. Полный аппаратно-программный комплекс стоит порядка $13000, причем не «вообще», а за год. По лицензии. А что, для крупных ISP вполне подъемная сумма, окупающая себя за счет подавления «паразитного» трафика, создаваемого червями, ботнетами и прочей нечестью.

Как же быть рядовым пользователям? Мыщъх убедил руководство компании создать бесплатную демонстрационную версию с ограничением по количеству малвари, детектируемой в единицу времени. Скажем, не более 100 червей в день, что для большинства из нас более чем достаточно! Даже в разгар эпидемий компьютер автора пытаются атаковать примерно раз в полчаса. А значит, у нас – двойной запас по прочности.

Программная составляющая представляет собой дистрибутив в формате rpm, требующий процессор не хуже P-4, операционную систему типа Fedora Core 6 и, как минимум, одну сетевую карту. На Windows AMP не устанавливается принципиально, но… на этот случай существуют виртуальные машины со своими виртуальными сетями и сетевыми трансляторами, связывающими виртуальную сеть с внешним миром.

В зависимости от целей, преследуемых пользователем, варианты установки варьируются в широких пределах. Если нам нужна система обнаружения вторжений, мы просто ставим Федору на VM Ware, инсталлируем AMP и даем ей доступ к физической сети, чтобы она ловила все проходящие пакеты, распознавая атаки (как успешные, так и обломавшиеся) вместе со следами присутствия малвари. Это открывает огромное поле для экспериментов, позволяя, в частности, коллекционировать свежих червей и вести мониторинг вирусной активности.

Функционируя в режиме IDS (системы обнаружения вторжений), AMP никак не защищает компьютер от атак, а лишь информирует, что нас поимели. Гм, ну это мы и без AMP рано или поздно узнаем. Как насчет укрепления линии обороны? В идеале нам потребуется отдельный компьютер, включенный в разрыв сетевого кабеля. Но в «бюджетном» варианте можно обойтись и без него, воспользовавшись все той же VM Ware, чья виртуальная сеть конфигурируется так, чтобы весь трафик проходил через гостевую операционную систему с AMP – тогда AMP получит возможность блокировать вредоносные пакеты в реальном времени без отрыва от производства. Однако при этом придется задействовать NAT (транслятор сетевых адресов, встроенный в VM Ware), а через NAT работают далеко не все программы или работают, но в ограниченном режиме (к примеру, Осел). К тому же, такая схема защиты не предотвращает атаки на TCP/IP-стек базовой операционной системы, в котором также имеются дыры. Впрочем, подавляющее большинство дыр сосредоточено в прикладных протоколах и приложениях типа IE, а дыры в TCP/IP-стеке — это целое событие! И такие события можно пересчитать по пальцам одной руки. Ну, хорошо, двух рук — но уже за все время существования NT.

Почему это работает?

Проникнуть на компьютер, защищенный Snort'ом, AMP или другой качественной IPS, практически невозможно. Допустим, хакер обнаружил новую, еще никому не известную уязвимость в… ну, это, впрочем, неважно. Допустим, также, что атака основана на переполнении буфера, а жертва использует XP SP2+ с аппаратным DEP, задействованным для всех приложений. В этом случае первая фаза атаки — копирование shell-кода из стека в специально выделенную область памяти с атрибутами, разрешающими чтение, запись и выполнение. Технически это реализуется через последовательность вызовов API-функций, чьи адреса хакер засылает в стек, что легко описывается языком сигнатур и распознается системой обнаружения вторжений независимо от того, какое именно приложение (или сетевая служба) атакуется.

В умелых руках AMP превращается в мощный инструмент борьбы с агрессорами, действующий на автопилоте и не требующий внимания со стороны оператора. К сожалению, если за компьютером сидит существо типа «секретарша», то… AMP эффективно парсит TCP-протокол с сетевого уровня и декодирует HTTP, а также файлы различных форматов, такие, например, как MS Word или PDF — в них тоже встречаются ошибки переполнения! Достаточно лишь открыть их. Увы, PDF, выложенный на WEB/FTP, распарсить (на сетевом уровне) еще возможно, но это уже предел (во всяком случае, для AMP). Тот же самый PDF, начиненный shell-кодом и упакованный zip'ом или rar'ом на сетевом уровне ни AMP, ни другие системы обнаружения вторжений не распарсят, ибо если парсить абсолютно все — никаких вычислительных мощностей не хватит, и мы получим такие тормоза, что ну ее на фиг эту безопасность.

То же самое относится и к обычным исполняемым файлам, внутри которых может находиться что угодно: от AdWare до троянских коней. AMP в принципе не защищает от атак подобного рода. Это все-таки не антивирус. А антивирусы известно где — на VirusTotal. AMP плюс VirusTotal (или локальный антивирус), плюс песочница типа Norman Sand Box – хоть и не панацея, но в совокупности обеспечивают вполне приемлемый уровень защищенности.

Хроника пикирующего бомбардировщика

Помимо локальной копии, фиксирующей атаки на заданный узел, пользователи AMP получают бесплатный доступ к демонстрационному аккаунту, который, пускай и с ограничениями, отображает текущую статистику вторжений в реальном времени. Очень полезная штука для анализа вирусной активности. В частности, 16 июля 2008 года произошел взрыв. Нет, не ядерный. Просто резкая и непонятно чем обоснованная вспышка вирусной активности, сошедшая на нет уже через несколько дней.

AMP позволяет не только наблюдать за вирусами, но и скачивать образцы, отловленные распределенной сетью honey-pot'ов – не только вирусов, атакующих наш узел, но и всех пойманных вирусов вообще! Лучшего средства для пополнения частных вирусных коллекций, пожалуй, и не придумаешь. Правда, не все так радужно. Больше половины малвари «вытягивается» в сильно побитом состоянии. Есть голова, но нет хвоста. Или же, наоборот, червь длиною в 9.6 Кб, захваченный вместе с посторонним трафиком, вырастает до мегабайтных размеров, что, естественно, затрудняет анализ. Впрочем, учитывая, что количество пойманных штаммов одного и того же вируса исчисляется сотнями, всегда можно «выдрать» наиболее качественный экземпляр, с которым уже и работать.

Но червей можно и на www.offensivecomputing.net найти. Уникальность AMP в том, что она ловит (и позволяет скачивать для исследования) еще и shell-коды. То есть, атакующие компоненты червя, вызывающие переполнения буфера и загружающие «хвост», чаще всего реализованный в виде обычного exe/dll/sys-файла. Реже — чего-то сильно необычного и без загрузчика практически не поддающегося анализу (взять хотя бы нашумевший Rustock.C, когда реверсеры рвали на себе волосы в разных местах, умоляя бога послать им дроппер – тот код, который забрасывает Rustock на заражаемые компьютеры).

DVD

На нашем диске ты найдешь упомянутые в статье материалы, а также бонусы к ним.

Содержание
ttfb: 8.6967945098877 ms