Спецвыпуск журнала «Хакер» #47, октябрь 2004 г. - Хакер
Шрифт:
Интервал:
Закладка:
SNORT – одна из самых первых и наиболее удачных реализаций системы IDS.
Снорт седлает сетевые интерфейсы и осуществляет наблюдение за трафиком.
Основное место для установки Снорта – роутеры.
Снорта можно легко обойти, видоизменив по максимуму сигнатуру shell-кода.
Хакеры любят мед / Разбираемся в работе Ноneypot
Крис Касперски aka мыщъх
В последнее время создаются все более и более изощренные системы борьбы с хакерами, одной из которых является honeypot – своеобразный капкан для атакующих. Сколько людей отправилось за решетку с его «помощью»! Даже в нашей традиционно лояльной к хакерам стране имеется несколько случаев условных осуждений. Единственный выход – задавить идею honeypot'ов в зародыше.
Горшочек медаОднажды некий мужчина приобрел супернавороченный сейф и повсюду хвастался им: какой он надежный и прочный. Забравшиеся к нему грабители прожгли какой-то хитрой кислотой в сейфе дыру и… не обнаружили внутри ничего! Деньги и драгоценности хранились совсем в другом месте.
Подобная тактика широко используется и для раскрытия компьютерных атак. На видном месте сети устанавливается заведомо уязвимый сервер, надежно изолированный ото всех остальных узлов и отслеживающий попытки несанкционированного проникновения в реальном времени с передачей IP-адреса атакующего в ФСБ или подобные ему органы. Впрочем, все зависит от профессионализма взломщика, качества и количества прокси и т.д.
Сервер, играющий роль приманки, называется «горшок с медом» («honeypot»), а сеть из таких серверов – honeynet.
Противостоять honeypot'ам довольно сложно. Внешне они ничем не отличаются от обычных серверов, но в действительности это хорошо замаскированный капкан. Один неверный шаг – и хакеру уже ничто не поможет. Утверждают, что опытная лиса ухитряется съесть приманку, не попав в капкан. Так чем же мы хуже?
Внутри горшкаТипичный honeypot представляет собой грандиозный программно-аппаратный комплекс, состоящих из следующих компонентов: узла-приманки, сетевого сенсора и коллектора (накопителя информации).
Приманкой может служить любой север, запущенный под управлением произвольной операционной системы и сконфигурированный на тот или иной уровень безопасности. Изолированность от остальных участков сети препятствует использованию сервера-приманки как плацдарма для атак на основные узлы, однако дает взломщику быстро понять, что он на полпути к ловушке и отсюда следует немедленно ретироваться, заметая следы. Теоретически администратор может организовать подложную локальную сеть, практически же это оказывается неподъемно дорогостоящим решением, и приходится искать компромисс: либо ослабленная изоляция, ограждающая только критически важные узлы, либо эмулятор локальной сети, запущенный на одном компьютере. Чаще всего узлов с приманкой бывает несколько. Одни из них содержат давно известные дыры и рассчитаны на начинающих хакеров, только-только осваивающих командую строку и читающих книги десятилетней давности. Другие – защищены по самые помидоры и ориентированы на выявление еще неизвестных атак, совершающихся опытными взломщиками. Поэтому, даже обнаружив новую дыру, не спеши ломиться на первый же попавшийся сервер. Ведь, если атака завершится неудачно, информация об уязвимости попадет в загребущие лапы специалистов по информационной безопасности, а ты можешь оказаться на скамье подсудимых или (что еще хуже) больничной койке, считая перебитые ребра. Кстати говоря, очень многие узлы-приманки построены на ОС с настройками по умолчанию. И в этом есть свой резон. Дыры стандартных конфигураций хорошо известны, что обеспечивает максимальный приток атакующих.
Сетевой сенсор чаще всего реализуется на базе UNIX-подобной ОС, а для мониторинга информации используется утилита tcpdump или ее аналоги. В зависимости от конфигурации сети сенсор может как находиться на одном из узлов данного сегмента локальной сети, так и являться маршрутизатором, расположенным перед приманкой. Иногда сетевой сенсор совмещается непосредственно с самой приманкой. Это существенно упрощает и удешевляет систему honeypot'а, однако ослабляет ее иммунитет (захватив управление приманкой, атакующий быстро обнаружит сенсор и сделает ему харакири). Размещение сенсора внутри широковещательного сегмента обеспечивает ему наибольшую скрытость. Сетевой интерфейс сенсора может и не иметь собственного IP-адреса, прослушивая трафик в Stealth-режиме, что достигается путем физического обрезания передающего провода на сетевой карте (см. статью о сниферах в этом номере). Маршрутизатор в этом смысле намного более заметен, однако определить, работает ли на нем сетевой сенсор или нет, в общем случае невозможно.
Дампы tcpdump'а обрабатываются различными анализаторами (например, IDS), во-первых, распознающими сам факт атаки, а, во-вторых, определяющими IP-адрес нарушителя. Накапываемая информация оседает в коллекторе, сердцем которого является база данных. Это самое уязвимое место honeypot'а. Необходимо заранее выбрать четкие критерии, позволяющие однозначно определить, какие действия являются нормальными, а какие – нет. В противном случае администратор будет либо постоянно дергаться, вздрагивая от каждого сканирования портов, либо пропустит слегка видоизмененный вариант известной атаки. Есть и другая проблема. Если приманка не имеет никакого другого трафика, кроме хакерского (что легко определить по характеру изменения поля ID в заголовках IP-пакетов, подробнее о котором рассказывается в статье о брандмауэрах), то атакующий немедленно распознает ловушку и не станет ее атаковать. Если же приманка обслуживает пользователей внешней сети, непосредственный анализ дампа трафика становится невозможным и хакеру ничего не стоит затеряться на фоне легальных запросов. Достаточно эффективной приманкой являются базы данных с номерами кредитных карт или другой конфиденциальной информацией (естественно, подложной). Всякая попытка обращения к такому файлу, равно как и использование похищенной информации на практике, недвусмысленно свидетельствует о взломе. Существуют и другие способы поимки нарушителей, но все они так или иначе сводятся к жестким шаблонам, а значит, в принципе, не способны распознать хакеров с нетривиальным мышлением.
Короче говоря, опытный взломщик может обойти honeypot'ы. Попробуем разобраться как.
Срывая вуаль тьмыПрежде чем бросаться в бой, взломщику необходимо тщательно изучить своего противника: реконструировать топологию сети, определить места наибольшего скопления противодействующих сил и, естественно, попытаться выявить все honeypot'ы. Основным оружием хакера на этой стадии атаки будет сканер портов, работающий через «немой» узел и потому надежно скрывающий IP-адрес атакующего.
Явно уязвимые сервера лучше сразу отбросить – с высокой степенью вероятности среди них присутствуют honeypot'ы, дотрагиваться до которых небезопасно. Исключение составляют публичные сервера компаний, расположенные в DMZ-зоне – совмещать их honeypot'ом никому не придет в голову, правда, на них вполне может работать IDS.
Безопаснее всего атаковать рабочие станции корпоративной сети, распложенные за брандмауэром (если такой действительно есть). Вероятность нарваться на honeypot минимальна. К несчастью для атакующего, рабочие станции содержат намного меньше дыр, чем серверные приложения, а потому атаковать здесь особенно и нечего.
Отвлекающие маневрыВыбрав жертву, следует не сразу приступать к атаке. Вначале стоит убедиться, что основные признаки honeypot'а отсутствуют: узел обслуживает внешний трафик, имеет конфигурацию, отличную от конфигурации по умолчанию, легально используется остальными участниками сети и т.д. Теперь для нагнетания психологического напряжения нужно интенсивно сканировать порты, засылая на некоторые из них различные бессмысленные, но внешне угрожающие строки, имитируя атаку на переполнение буфера. Тогда администратору будет не так-то просто разобраться, имело ли место реальное переполнение буфера или нет, и если имело, то каким именно запросом осуществлялось.
Естественно, артобстрел необходимо вести через защищенный канал.
Атака на honeypotБудучи по своей природе обычным узлом сети, honeypot подвержен различным DoS-атакам. Наиболее уязвим сетевой сенсор, обязанный прослушивать весь проходящий трафик. Если удастся вывести его из игры, факт вторжения в систему на некоторое время останется незамеченным. Естественно, атакуемый узел должен остаться живым, иначе некого атаковать. Будем исходить из того, что сенсор принимает все пакеты. Тогда, послав пакет на несуществующий или любой ненужный узел, мы завалим противника.