Применение WinDump для обнаружения вторжений в сеть
Снифферы вообще и WinDump в частности, могут быть использованы для задачи обнаружения вторжения в сеть следующим образом. Сниффер запускают и изучают полученные им логи. В случае атаки, в логах будет присутствовать специфическая информация, которую может распознать опытный аналитик, либо некоторая система обнаружения вторжения (IDS). О вторжении, например, может говорить присутствие в трафике огромного числа запросов на соединение, с последующим сбросом – можно сделать вывод о том, что сеть сканируют, используя метод TCP SYN. Этот метод часто называют «полуоткрытым» сканированием, поскольку при этом полное TCP-соединение с портом сканируемой машины не устанавливается. Некий сканер посылает SYN-пакет, как бы намереваясь открыть настоящее соединение, и ожидает ответ. Наличие флагов SYN|ACK в ответе указывает на то, что порт удаленной машины открыт и прослушивается. Флаг RST в ответе означает обратное. Если сканер принял пакет SYN|ACK, то в ответ немедленно отправляет RST-пакет для сброса еще не установленного соединения. В результате, в логах вы увидите «затопление» вашей машины SYN-пакетами.
Хорошим примером распространенной атаки, которую можно четко идентифицировать по ее сигнатуре, является атака cmd.exe, направленная против Информационного Сервера Интернет (IIS) – web-сервера корпорации Microsoft. Эта атака применяется Интернет-червями и вирусами, такими как Nimda и Code Red. Атакующий «червь» или человек пытается выполнить в каталоге с правом на запись копию программы cmd.exe – командного интерпретатора Windows, используя переполнение буфера в модуле IIS, называемом Internet Server API (ISAPI). В случае успеха хакер или червь получает доступ к командной строке на этой машине и может произвести значительные разрушения. Однако команда для копирования этого файла является очевидной и нет причины для ее легального выполнения пользователями через сеть с помощью IIS:
length = 55
000 : 47 45 54 20 2F 73 63 72 69 70 74 73 2F 2E 2E 25 GET / scripts/..%
E 2E 2F 77 69 6E 6E 74 2F 73 79 5c%5c../winnt/sy
020 : 73 74 65 6D 33 32 2F 63 6D 64 2E 65 78 65 3F 2F stem32/cmd.exe?/
030 : 63 2B 64 69 72 0D 0A c+dir..
Поэтому, если вы видите подобную активность, то весьма вероятно, что это попытка вторжения. Используя WinDump вы можете легко идентифицировать данную атаку.
Надо отметить, что использование только WinDump в качестве IDS достаточно проблематично, так как обрабатывать большие массивы информации, полученной им, затруднительно. Применяя сниффер, вы фактически полностью сами контролируете ситуацию.
IDS SNORT
Snort – бесплатно распространяемая система обнаружения вторжений, созданная Марти Решем. C момента создания Snort быстро стал популярным инструментом обнаружения вторжения. Она бесплатна и работает в UNIX любого вида. Сейчас имеется и ее версия для Windows. На web-сайте www.snort.org находится система создания правил, оттуда же можно скачать наборы более чем из тысячи фильтров. Многие фильтры создаются пользователями, и это самая совершенная из бесплатных систем обнаружения вторжений.
Snort – достаточно простая система, и главной целью ее разработки была эффективность. 1200 фильтров для этой архитектуры вполне достаточно, но ничто не мешает достичь вдвое большей цифры.
Эта система обнаружения вторжений находится в первой десятке мира. Например, в декабре 1999 года. Snort опередила коммерческий продукт Shadow. Конечно, Snort применяется не всеми. Те, кто обязан использовать коммерческие продукты, или те, кто работает в Министерстве обороны, используют иные технологии.
Работа Snort
Демон Snort сидит в памяти и просматривает весь сетевой трафик. Перехваченные пакеты поступают в анализатор, который на основе набора правил, определяемых администратором, принимает решение, происходит атака или обычная работа. К анализатору могут быть подключены сторонние модули, чтобы увеличить его функциональность. Информация, собранная анализатором, поступает в систему предупреждения и регистрирования. Таким образом, распознаются разнообразные нападения типа переполнения буфера, скрытых просмотров порта, CGI-атак, попыток определения OS и т.д.
Snort может работать в трех различных режимах.
1. Режим пакетного сниффера. Когда Snort работает в этом режиме, он читает и дешифрует все сетевые пакеты и формирует дамп.
2. Режим регистрации пакетов. Этот режим записывает пакеты на диск и декодирует их в ASCII формат.
3. Режим обнаружения вторжений. Этот режим является основным.
Snort очень выгодно отличается тем, что у администратора есть возможность составления своих собственных правил обнаружения. Это означает очень быструю реакцию на новые типы атак и появление защитных механизмов. В Internet без труда можно найти источники, с которых можно скачать наборы правил для Snort.
Распознавание атак
Модуль распознавания является самым важным в любой системе обнаружения атак. От качества его реализации зависит эффективность всей системы. Этот модуль в общем случае использует три широко известных метода для распознавания атаки.
1. Сигнатуры, основанные на шаблоне (pattern-based signatures), выражении или строке, характеризующих атаку или иную подозрительную деятельность. Эти сигнатуры содержат некоторые ключевые слова или выражения, обнаружение которых и свидетельствует об атаке. Например, фрагмент «cwd ~root» в FTP-сеансе однозначно определяет факт обхода механизма аутентификации на FTP-сервере и попытке перейти в корневой каталог FTP-сервера. Другим примером является обнаружение апплетов Java в сетевом трафике на основе шестнадцатиричного фрагмента «CA FE BA BE». Эти же сигнатуры позволяют обнаруживать многих троянских коней, если последние используют стандартные значения портов.
2. Сигнатуры, основанные на контроле частоты событий или превышении пороговой величины. Эти сигнатуры описывают ситуации, когда в течение некоторого интервала времени происходят события, число которых превышает заданные заранее показатели. Примером такой сигнатуры является обнаружение сканирования портов или обнаружение атаки SYN Flood. В первом случае пороговым значением является число портов, просканированных в единицу времени. Во втором случае – число попыток установления виртуального соединения с узлом за единицу времени.
3. Обнаружение аномалий. Данный тип сигнатур позволяет обнаруживать события, отличающиеся от предварительно заданных. Например, если система обнаружения атак фиксирует вход сотрудника компании в сеть в субботу в 2.30, то это может свидетельствовать о том, что пароль этого пользователя украден или подобран и его использует злоумышленник для несанкционированного проникновения.