Защита от хакеров корпоративных сетей
Шрифт:
· Отключив возможность исполнения активных сценариев в браузере и приложениях Office, вы предотвратите заражение макровирусами, а также вирусами, построенными на основе сценариев.
· Пренебрегая установкой новейших пакетов исправлений, вы оставляете червям лазейки для проникновения в систему.
Часто задаваемые вопросы
Вопрос: Откуда произошел термин «компьютерный вирус»?
Ответ: Самовоспроизводящиеся программы впервые появились в 60-х годах прошлого века. Однако термин «вирус» появился сравнительно недавно. Первым его использовал профессор Фред Коэн (Fred Cohen) в 1984 году при описании самовоспроизводящихся программ.
Вопрос: Все ли вирусы являются вредоносными? Ответ: По большей части да. Законное распространение вирусной технологии представить себе
Вопрос: Можно ли получить работу, специализируясь в написании вирусов?
Ответ: Я думаю, что ответ «да» не будет сюрпризом для большей части читателей. В январе 2000 года появилось объявление о поиске специалиста в написании вирусов от корпорации информатики (Computer Sciences Corporation). Вот его текст:
«Корпорации информатики в Сан-Антонио, Техас, требуется опытный создатель вирусов. Работа на авиационной базе Келли в Сан-Антонио. Сопутствующий опыт приветствуется».
Остается только догадываться, что происходит за закрытыми дверьми на авиационной базе Келли.Вопрос: Как предотвратить распространение червя при заражении компьютера? Ответ: Это во многом зависит от того, какая операционная система была инфицирована. Предотвратить заражение достаточно легко для серверов в демилитаризованной зоне: измените установки брандмауэра таким образом, чтобы запретить прямое соединение серверов с Интернетом.
Глава 16 Уклонения от системы обнаружения вторжения
В этой главе обсуждаются следующие темы:
• Принципы работы, основанной на анализе сигнатур системы обнаружения вторжений
• Уклонение на уровне пакетов
• Уклонение на уровне приложений
• Уклонение при помощи морфизма кода
· Резюме
· Конспект
· Часто задаваемые вопросы
Введение
Один из законов защиты гласит, что все основанные на анализе сигнатур механизмы обнаружения атак можно обойти. Это справедливо для систем обнаружения вторжений (IDS – Intrusion Detection System). Системы обнаружения вторжений просматривают сетевой трафик и отслеживают несанкционированные действия в сети. Они анализируют сетевой трафик при помощи сигнатур, которые похожи на сигнатуры вирусов. Системам обнаружения вторжений присущи те же проблемы, что сканерам вирусов. Плюс к этому надо иметь в виду, что в их обязанности входят моделирование сети, работа на нескольких уровнях семиуровневой модели OSI одновременно, причем на каждом из этих уровней их могут перехитрить.
Эта глава посвящена описанию способов противодействия системам обнаружения вторжений. В их число входят манипуляции на уровне пакета, приложений и модификация машинного кода. Каждый из названных способов может использоваться как отдельно, так и совместно с другими, позволяя злоумышленнику избежать обнаружения системой обнаружения вторжения.
В главе приведено несколько примеров, иллюстрирующих перечисленные способы уклонения от обнаружения.
Принципы работы, основанной на анализе сигнатур системы обнаружения вторжений
Система обнаружения вторжений является вполне простым высокотехнологичным эквивалентом охранной сигнализации, настроенной контролировать точки доступа к сети, враждебную сетевую активность и известных злоумышленников. Эти системы реагируют на враждебную сетевую активность стандартным образом, используя базу данных сигнатур атак. Если в базе данных будет найдено соответствие наблюдаемому событию, то подается сигнал тревоги и для последующего анализа делается запись в журнале регистрации. Подлежащими регистрации сетевыми событиями и действиями определяется состав базы данных сигнатур атак, которая является ахиллесовой пятой систем обнаружения вторжений.
Сигнатура атаки содержит несколько компонентов, которые однозначно ее идентифицируют. Идеальная сигнатура – это такая сигнатура, которая, с одной стороны, полностью определяет атаку, а с другой – настолько проста, насколько это возможно (большие сложные сигнатуры могут стать причиной серьезных накладных расходов на их обработку). Поскольку существуют различные типы атак,
Большинство сигнатур было создано путем многократного выполнения известного программного кода атаки с контролем сопутствующих ему данных в сети и поиском в них уникальной последовательности двоичных кодов, повторяющихся при каждом выполнении. Этот способ создания сигнатур хорошо зарекомендовал себя в случае последовательных попыток известных типов атак на сеть. Автору приходилось иметь дело с некачественными сигнатурами. Некоторые из них были настолько примитивны, что оказались бесполезными против агрессивного злоумышленника, быстро просматривающего несколько Web-сайтов. Тем не менее помните, что идея заключается в уникальной идентификации атаки, а не просто в ее обнаружении.
Инструментарий и ловушки
Компоненты сигнатуры
Ниже приводится пример сигнатур, описанных на языке описания сигнатур, который используется системой обнаружения вторжения Snort:
alert tcp $EXTERNAL_NET any -> $HOME_NET 8080 (msg:“SCAN Proxy
attempt”;flags:S; classtype:attempted-recon; sid:620;
rev:1;)
alert ip $EXTERNAL_NET any -> $HOME_NET :1023 (msg:“SHELLCODE
linux shellcode”; content:“|90 90 90 e8 c0 ff ff ff|/bin
/sh”; classtype:attempted-admin; sid:652; rev:2;)
alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:“FTP CWD ...”;
flags:A+; content:“CWD ...”; classtype:bad-unknown; sid:1229
; rev:1;)
alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:“ICMP
traceroute ipopts”; ipopts: rr; itype: 0; classtype:
attempted-recon; sid:475; rev:1;)
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:“WEBATTACKS
chgrp command attempt”; flags:A+; content:“/usr/bin/
chgrp”;nocase; sid:1337; rev:1; classtype:web-application
–attack;)Язык описания сигнатур системы Snort является описательным языком, используемым для создания любых правил. Чтобы не запутаться в сложных деталях написания собственных сигнатур, давайте пробежимся по примеру слева направо и попытаемся его понять. Можно увидеть, что в примере определяются различные виды предупреждений об опасности. Предупреждения группируются по протоколам с указанием особенностей производимых действий. Например, для ограничения возможных действий в правилах указывается IP-адрес и номера портов. IP-адрес задается переменными $EXTERNAL_NET и $HOME_NET, обычно определяемыми с использованием стиля бесклассовой междоменной маршрутизации CIDR как 10.10.10.0/24. Стиль CIDR является описанием надсети единственной строкой в таблице маршрутизации с использованием укороченной маски подсети. Надсеть включает в себя несколько сетей одного класса. Ключевое слово msg определяет сообщение, которое будет отправлено при активизации правила после нахождения заданной сигнатуры. Параметр flags определяет, какие из установленных флажков режимов работы протокола TCP используются для анализа потока данных. Ключевое слово Ipopts задает анализируемые параметры пакетов протокола IP. А слово content используется для определения уникальной последовательности данных, содержащейся в пакете. Значение ключевого слова content задается в шестнадцатеричном формате между двумя вертикальными полосами, в то время как значения остальных слов – в формате ASCII. Первое правило отслеживает любую попытку подключения к внутреннему хосту извне по номеру порта 8080 протокола TCP. Этот порт часто используется проксимодулями доступа к сети Интернет. Второе правило ищет в каждом IP-пакете часто используемую последовательность команд командного процессора shell, передаваемую по номеру порта, который меньше, чем 1024. (Запись :1023 является сокращенной формой записи номеров портов между 0 и 1023 включительно.) Третье правило задает проверку наличия команды «CWD…», которая передается через порт 21 протокола TCP. Порт 21 по умолчанию используется протоколом передачи файлов FTP. Четвертое правило контролирует пакеты IP с установленной опцией маршрутизации записи rr (Record Route). Последнее правило контролирует прохождение строки /usr/bln/chgrp через порт 80 протокола передачи гипертекстовых файлов HTTP.