следует обойти. Свинка-то у нас глупенькая, и даже если она поймает в свои лапки shell-код, но сигнатура его окажется ей неизвестна, то будет молчать себе свинка в тряпочку.
Придется разбираться с *.rules. Есть некое свинское правило, shellcode.rules зовется. Ты только посмотри на него: в нем практически все мыслимые и несколько немыслимых shell-кодов. Ох-ох-ох, что ж я маленьким не сдох… ;)
Но как ни странно, не зря не сдох. Обойти это правило очень просто. Дело в том, что SNORT – это не антивирус, и он не обладает эмулятором кода, который сможет распознать shell-код не по сигнатуре, а по алгоритму (даешь эвристический IDS :)! – прим. AvaLANche'а). Следовательно, тебе надо несколько видоизменить сигнатуру shell-кода. Это можно сделать, просто переписав shell-код до неузнаваемости под себя. Самый простой способ – изменить (но без потери функциональности!) порядок следования команд или понатыкать NOP'ов (op-код – 90), создав «промежутки» в shell-коде. Конечно, при этом вырастет размер кода, но зато его сигнатура обманет Снорта. Как еще можно поменять сигнатуру?
1) Менять одни команды на другие. Тут тебе надо очень хорошо ориентироваться в асме и инструкциях целевого процессора. По сути дела, нужно написать свой shell-код, «неизученный» Снортом.
2) Вариант попроще – поменять вызов шелла. Строка /bin/sh приводит к поросячьей активности Снорта и, позже, админа, а строка %2Fbin%2Fsh – нет. Вот только не всегда это возможно. Хорошо этот способ работает, как правило, на web-сервисах.
3) Более сложный вариант – применение вирусных технологий (правда, вирусами тут и не пахнет). Никто не забыл о шифрации/дешифрации исполняемого кода? Можно написать (и многие пишут) shell-код, который будет в зашифрованном виде передаваться жертве, а при запуске расшифровываться «на лету». Меняя алгоритм шифрования или ключ, можно будет получать все новые и новые сигнатуры, неизвестные ранее этой IDS. Естественно, в сигнатуре будет светиться коротенький расшифровщик, но его видоизменить до неузнаваемости не составляет труда (подробнее о написании shell-кодов читай в августовском Спеце #08.04(45)).
Таким образом, грамотный взломщик помнит о SNORT'е и готовит эксплоиты собственоручно. Как в армии, где есть правило: оружие, обмундирование и снаряжение каждый готовит себе САМ!
SNORT – одна из самых первых и наиболее удачных реализаций системы IDS, работающая на основе анализа трафика. Я называю эту систему обнаружения атак «грязным свинтусом», так как на первом сайте, посвященном Снорту (еще до версии 1.0), на титульной странице, была вывешена фотография матерого хряка, упершегося рылом прямо в объектив фотографа. С тех пор система значительно повзрослела, сайт перенесли из домена .au в домен .org, а тельце старины Снорта отправили живым весом на колбасу, но имя его и образ живут. На логотипе по-прежнему присутствует довольная рожа (или рыло?) мультяшного хряка.
ТИП: Soft
Не одинок наш Снорти в этом мире. Полезно посмотреть:
– libnids – библиотека для создания такого рода систем (libnids.sourceforge.net). Собственно, я сам при необходимости именно ей и пользуюсь. Всегда приятно несколько обескуражить скриптодятла.
– iplog – анализ протокола на предмет атак.
– courtney – старушка Кортни, которая является простеньким перловым скриптом для обнаружения факта сканирования. Безнадежная пенсионерка.
Антон Карпов, специалист по сетевой безопасности, системный администратор
Часто говорят: если ты отражаешь атаку – ты уже проиграл. Доля правды в этих словах есть. Любые атаки желательно выявлять еще на стадии их зарождения, нежели разбираться с их результатом. К счастью, *nix-системы имеют для этого все средства. Развитая система протоколирования событий и своевременное наблюдения за аномалиями в системном журнале, а также использование сетевых средств обнаружения вторжений, конечно, помогут, но все что они позволяют – это отработать по факту того, что атака уже идет. Вот почему популярны не только системы обнаружения, но также и системы предотвращения вторжений. Простейший пример превентивной меры – соединение IDS с пакетным фильтром и подача команды на блокирование атакующего адреса.
SNORT – одна из самых первых и наиболее удачных реализаций системы IDS.
Снорт седлает сетевые интерфейсы и осуществляет наблюдение за трафиком.
Основное место для установки Снорта – роутеры.
Снорта можно легко обойти, видоизменив по максимуму сигнатуру shell-кода.
Хакеры любят мед / Разбираемся в работе Ноneypot
Крис Касперски aka мыщъх
В последнее время создаются все более и более изощренные системы борьбы с хакерами, одной из которых является honeypot – своеобразный капкан для атакующих. Сколько людей отправилось за решетку с его «помощью»! Даже в нашей традиционно лояльной к хакерам стране имеется несколько случаев условных осуждений. Единственный выход – задавить идею honeypot'ов в зародыше.
Однажды некий мужчина приобрел супернавороченный сейф и повсюду хвастался им: какой он надежный и прочный. Забравшиеся к нему грабители прожгли какой-то хитрой кислотой в сейфе дыру и… не обнаружили внутри ничего! Деньги и драгоценности хранились совсем в другом месте.
Подобная тактика широко используется и для раскрытия компьютерных атак. На видном месте сети устанавливается заведомо уязвимый сервер, надежно изолированный ото всех остальных узлов и отслеживающий попытки несанкционированного проникновения в реальном времени с передачей IP-адреса атакующего в ФСБ или подобные ему органы. Впрочем, все зависит от профессионализма взломщика, качества и количества прокси и т.д.
Сервер, играющий роль приманки, называется «горшок с медом» («honeypot»), а сеть из таких серверов – honeynet.
Противостоять honeypot'ам довольно сложно. Внешне они ничем не отличаются от обычных серверов, но в действительности это хорошо замаскированный капкан. Один неверный шаг – и хакеру уже ничто не поможет. Утверждают, что опытная лиса ухитряется съесть приманку, не попав в капкан. Так чем же мы хуже?
Типичный honeypot представляет собой грандиозный программно-аппаратный комплекс, состоящих из следующих компонентов: узла-приманки, сетевого сенсора и коллектора (накопителя информации).
Приманкой может служить любой север, запущенный под управлением произвольной операционной системы и сконфигурированный на тот или иной уровень безопасности. Изолированность от остальных участков сети препятствует использованию сервера-приманки как плацдарма для атак на основные узлы, однако дает взломщику быстро понять, что он на полпути к ловушке и отсюда следует немедленно ретироваться, заметая следы. Теоретически администратор может организовать подложную