Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 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

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

Содержание
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001