Каталог статей
Поиск по базе статей  
Статья на тему Компьютеры » Безопасность » Обнаружение атак своими силами

 

Обнаружение атак своими силами

 

 

Едучи с очередной прочитанной лекции по защите информации, стал свидетелем интересной картины, когда у молодого человека в защитной форме, который попрошайничал в переходе метро, висела на шее табличка: "Денег нет, а кушать хочется". С похожей ситуацией мне постоянно приходится сталкиваться в своей работе. Сотрудники многих организаций, интересуясь предлагаемыми нашей компанией решениями по защите информации, заявляют, что "денег нет, а защищаться хочется". Наверное, эта ситуация знакома многим специалистам, которым приходится с боем выбивать финансы на приобретение различных защитных средств.

Это подвигло меня на написание статьи, основная цель которой показать, что даже при отсутствии или недостаточном финансировании можно построить достаточно надежную и эффективную систему информационной безопасности.

загрузка...

 

 

Она будет уступать по своим характеристикам коммерческой системе, но зато на ее построение практически не потребуется тратить деньги. Рамки статьи не позволяют рассмотреть все аспекты создания "бесплатной" системы защиты и поэтому я рассмотрю только один из ее аспектов - обнаружение сетевых атак. Эта тема знакома мне ближе всего.

Как показывает анализ имеющихся сегодня систем обнаружения атак на уровне сети, все они используют в качестве источника данных сетевой трафик, который анализируется на наличие в нем признаков атак. Реже, но также возможно в качестве источника информации использовать журналы регистрации сетевого программно-аппаратного обеспечения (например, маршрутизатора, межсетевого экрана или анализатора протоколов), фиксирующего весь обрабатываемый им трафик.

Механизм функционирования системы обнаружения атак на уровне сети состоит из 4 основных этапов:

  • захват пакетов;
  • фильтрация и сборка фрагментов;
  • распознавание атак;
  • реагирование на них.

В зависимости от того, откуда берутся данные для анализа (с сетевой карты, с компонентов сетевого оборудования или из журнала регистрации), часть, отвечающая за захват пакетов, может быть реализована по-разному, но все остальные части (фильтрация, распознавание и реагирование) остаются без изменения.

Программное обеспечение системы обнаружения атак состоит из следующих частей:

  • Ядро, которое осуществляет взаимодействие с сетевым адаптером, частью сетевого оборудования или журналом регистрации, хранящим сетевой трафик. Данное ядро отвечает за захват данных. В сложных системах обнаружения атак, использующих захват с сетевой карты, взаимодействие осуществляется при помощи драйвера самой системы обнаружения атак, подменяющего драйвер операционной системы. Помимо более эффективной работы, это позволяет реализовать и ряд дополнительных функций, например, stealth-режим, не позволяющий обнаружить и атаковать саму систему обнаружения атак. Более простые системы обнаружения, в т.ч. и созданные самостоятельно, используют и анализируют данные, получаемые от драйвера операционной системы. Это ядро по решаемым задачам практически полностью аналогично ядру анализатора протоколов.
  • Программное обеспечение, которое осуществляет декодирование и анализ протоколов, с которыми работает сетевой адаптер, а также реализует соответствующую логику работы системы обнаружения атак и реагирование на них.

Захват сетевого трафика

Т.к. областью рассмотрения данной статью является "самопальные" системы обнаружения атак, то я не буду рассматривать механизмы захвата сетевого трафика, реализованные в специальном программно-аппаратном обеспечении, например, в Cisco Catalyst 6000 IDS Module или Cisco Secure Integrated Software. Рассмотрим более приемлемый для самостоятельной реализации механизм, который заключается в обработке трафика, получаемого с сетевой карты, которая может работать в двух режимах:

  • в обычном режиме, в котором сетевая карта обрабатывает только пакеты, предназначенные именно ей;
  • в "смешанном" или "беспорядочном" (promiscuous) режиме, в котором сетевая карта обрабатывает все пакеты, передаваемые в сетевом сегменте.

Именно последний режим и используется для создания своей системы обнаружения атак. Чтобы не усложнять себе жизнь, можно воспользоваться механизмами, предлагаемыми операционной системой. Идеальной ОС в этом случае является семейство Unix, которое позволяет без особых проблем получить доступ к сетевому трафику. Мало того... Сообщество пользователей ОС Unix разработало большое число утилит и библиотек, которые берут на себя заботу о доступе к сетевой карте и захвату трафика. Например, прослушивание и захват сетевого трафика может быть осуществлен с помощью широко известной библиотеки libpcap (library for packet capture). Данная библиотека ( /redir.php?url=www.tcpdump.org%29 разработана для множества ОС семейства Unix, которая позволяет "захватывать" (capture) и "прослушивать" (sniffing) все пакеты, передаваемые в разделяемых средах передачи данных (shared media). Многие системы обнаружения атак для Unix используют эту библиотеку в своей работе (например, SHADOW, Snort, NFR и т.д.), а многие разработчики еще и оптимизировали ее для различных платформ, в том числе существует версия и для платформы Windows, называемая Winpcap ( /redir.php?url=netgroup-serv.polito.it%2Fwinpcap%2F%29. Вместо libpcap можно использовать библиотеку libnet ( /redir.php?url=www.packetfactory.net%2FProjects%2Flibnet%29 или ее версию для Windows ( /redir.php?url=www.eeye.com%2Fhtml%2Ftools%2Flibnetnt.html%29%2C выполняющую аналогичные функции.

В случае с обработкой журналов регистрации сетевого оборудования проблем меньше, т.к. сетевой трафик уже захвачен и даже записан в удобном для анализа формате.

Фрагмент журнала регистрации маршрутизатора Cisco (для IOS 12.0T)

Обнаружение атак своими силами

Фрагмент журнала регистрации межсетевого экрана Check Point Firewall-1

Обнаружение атак своими силами

Все, что необходимо сделать в этом случае, - это обнаружить следы несанкционированной сетевой деятельности, за что и отвечает модуль фильтрации.

Фильтрация

Модуль фильтрации также как и модуль захвата пакетов, не обязательно писать самостоятельно, а можно реализовать с помощью свободно распространяемых утилит. Например, ngrep (/redir.php?url=ngrep.sourceforge.net%2F%29 или tcpdump. Данные системы основаны на механизме захвата необработанных (raw) пакетов сетевого трафика и пропускании их через синтаксический анализатор "регулярных выражений", который ищет в трафике соответствие шаблону. Примером шаблона можно назвать: "/cgi-bin/phf", который указывает на попытку использования уязвимого CGI-скрипта PHF. Создавая такую систему, вы анализируете известные атаки, пишете для них сигнатуру, и добавляете их в базу данных системы обнаружения атак.

Сразу необходимо оговориться, что можно не изобретать велосипед и использовать уже имеющиеся наработки в данной области. Например, системы SHADOW, Snort ( /redir.php?url=snort.sourcefire.com /) или libnids ( /redir.php?url=www.packetfactory.net%2FProjects%2Flibnids%2F%29. Исходный код названных утилит и библиотек доступен в Internet. К ним можно "прикрутить" что-то, что решает ваши задачи, но основное ядро остается неизменным. По такому принципу идут многие независимые разработчики. Например, к системе Snort существует очень много дополнительных утилит, расширяющих ее функциональность. К их числу можно отнести:

  • Snort-panel и IDScenter - графический интерфейс к системе Snort;
  • Guardian и SnortSam - скрипты для реконфигурации межсетевых экранов IPCHAINS и VPN-1&Firewall-1 в случае обнаружения атаки;
  • Snort_stat - скрипт для статистического анализа журнала регистрации Snort;
  • Snort2html, SnortSnarf и SnortReport - скрипты для генерации HTML-отчета на основе журнала регистрации Snort;
  • RotateLogs и snort_log_rotate - резервирование и очистка журналов регистрации Snort;
  • и т.д. С полным списком всех утилит, расширяющих функциональность Snort, можно ознакомиться по адресу /redir.php?url=snort.sourcefire.com%2Fdownloads.html.

Самые простые системы обнаружения атак просто подают на вход утилиты regexp события, получение при помощи библиотеки libcap или используют tcpdump. Эффективность такой системы обнаружения атак зависит от количества и качества регулярных выражений, которые и описывают обнаруживаемые атаки. Однако разработчики некоторых систем поступают еще проще и просто сопоставляют сетевые пакеты с сигнатурами известных атак. Системы, использующие regexp и libcap, имеют одно большое преимущество - простоту модификацию базы данных сигнатур. Изделия этого класса (например, система Snort) имеют большое число сигнатур и являются самыми часто и своевременно обновляемыми. Кроме того, простота реализации приводит к тому, что эти системы бесплатно (или почти бесплатно) доступны в сети Internet и любой желающий может использовать их в своей сети. Аналогичным образом любой желающий может самостоятельно изменять исходный код и добавлять сигнатуры атак в эти системы, тем самым, расширяя их функциональность.

Распознавание атак

Модуль распознавания является самым важным в любой системе обнаружения атак. От качества его реализации зависит эффективность всей системы. Этот модуль в общем случае использует три широко известных метода для распознавания атаки:

  • Сигнатуры, основанные на шаблоне (pattern-based signatures), выражении или строке, характеризующих атаку или иную подозрительную деятельность. Эти сигнатуры содержат некоторые ключевые слова или выражения, обнаружение которых и свидетельствует об атаке. Например, фрагмент "cwd ~root" в FTP-сеансе однозначно определяет факт обхода механизма аутентификации на FTP-сервере и попытке перейти в корневой каталог FTP-сервера. Другим примером является обнаружение апплетов Java в сетевом трафике на основе шестнадцатиричного фрагмента "CA FE BA BE". Эти же сигнатуры позволяют обнаруживать многих троянских коней, если последние используют стандартные значения портов. Например, троянец NetBus, как это уже описывалось в третьем номере BYTE за этот год, определяется по использованию 12345-го и 12346-го портов, а троянец BackOrifice - по 31337-му порту.
  • Сигнатуры, основанные на контроле частоты событий или превышении пороговой величины. Эти сигнатуры описывают ситуации, когда в течение некоторого интервала времени происходят события, число которых превышает заданные заранее показатели. Примером такой сигнатуры является обнаружение сканирования портов или обнаружение атаки SYN Flood. В первом случае пороговым значением является число портов, просканированных в единицу времени. Во втором случае - число попыток установления виртуального соединения с узлом за единицу времени.
  • Обнаружение аномалий. Данный тип сигнатур позволяет обнаруживать события, отличающиеся от предварительно заданных. Например, если система обнаружения атак фиксирует вход сотрудника компании в сеть в субботу в 2.30, то это может свидетельствовать о том, что пароль этого пользователя украден или подобран и его использует злоумышленник для несанкционированного проникновения.

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

База сигнатур атак

База сигнатур является сердцем любой системы обнаружения атак. Все атаки или иные несанкционированные действия построены на стандартных фильтрах, которые являются основой любой системы обнаружения атак. Рассмотрим два типа фильтров. Первый - на примере утилиты TCPdump, второй - на примере межсетевого экрана Check Point VPN-1&Firewall-1. Второй пример обусловлен тем, что иногда в организации деньги все же выделяются и тогда отделы защиты информации приобретают межсетевой экран (МСЭ). В большинстве случаев - это решение компании Check Point ( /redir.php?url=www.infosec.ru%2Fprodukt%2Fcheckpoint%2Ffirewall1.html%29. Немногие специалисты знают, что этот МСЭ обладает замечательным механизмом - языком описания сетевых событий INSPECT, который позволяет оперировать любыми полями (включая поле данных) сетевых пакетов. Используя этот язык можно построить достаточно эффективную систему обнаружения сетевых атак, встроенную в так полюбившийся российским пользователям межсетевой экран. Достоинство этого решения в том, что на единую консоль администратора "сыпятся" сообщения и от межсетевого экрана и от системы обнаружения атак.

В данной статье я не ставил целью описать все возможные сигнатуры атак (да и размер статьи не позволяет это). Я бы хотел, чтобы читатель сам разобрался в этом, попутно повышая свою квалификацию в области обнаружения атак и понимания сетевых протоколов. Те же, кто торопится защитить себя от хакерских напастей, могу отослать к своей книге "Обнаружение атак" [1], в которой достаточно подробно рассматриваются вопросы создания своих сигнатур на примере утилиты TCPdump.

Продемонстрирую несколько примеров, которые показывают, как просто можно описать сигнатуры различных сетевых событий и атак, которые должны контролироваться и обнаруживаться. Например, работа по протоколу TCP определяется правилом ip[9:1] = 6 (для TCPdump) или accept [9:1]=6 (для Check Point Firewall-1). Девятый байт в IP-заголовке характеризует идентификатор протокола (для TCP это значение равно 6). Оператор accept в языке INSPECT [2] дает команду межсетевому экрану пропустить пакет, соответствующий данному условию (могут быть и другие операторы - drop, reject, hold и т.д.). Атака Land может быть определена следующим образом (для TCPdump):

Обнаружение атак своими силами

Первое правило обнаруживает только те пакеты, в которых совпадают только адреса получателя и отправителя, а второй обнаруживает пакеты с совпадением не только этих адресов, но и портов получателя и отправителя.

Язык INSPECT является объектно-ориентированным и в правилах можно использовать различные сетевые объекты (узлы, сети, пользователи и т.д.), что существенно облегчает работу по созданию сигнатур атак. Например, нижеследующее правило:

Обнаружение атак своими силами

также предназначено для обнаружения атаки Land. Но данное правило срабатывает не для всего трафика, как в предыдущем случае с TCPdump, а только для сетевых пакетов, передаваемых от объекта с именем router77 на все интерфейсы межсетевого экрана.

Может показаться, что с помощью TCPdump нельзя строить серьезные сигнатуры. Это не так. Например, следующее правило позволяет обнаруживать пакеты, которые приходят из Internet, в которых в качестве адреса источника указаны немаршрутизируемые адреса:

Обнаружение атак своими силами

где, номер после ключевого слова net и является номером немаршрутизируемой или невозможной сети. Правило обнаружения троянца BackOrifice выглядит так:

Обнаружение атак своими силами

Кстати BackOrifice может быть обнаружен и с помощью 8-ми байтовой последовательности "CE 63 D1 D2 16 E7 13 CF", обнаруживаемой в сетевых пакетах, передаваемых между клиентом и сервером Back Orifice:

Обнаружение атак своими силами

Заключение

Однако, несмотря на большое число сигнатур, которые можно создать своими силами, системы, построенные своими руками, не могут обнаруживать атаки, состоящие из нескольких пакетов или использующие фрагментированные пакеты (за исключением некоторых случаев). Кроме того, эти системы не могут обнаружить атаки, немного отличающиеся (даже одним битом) от тех сигнатур, которые занесены в базу данных. Например, 8 байтов "CE 63 D1 D2 16 E7 13 CF" в потоке данных, передаваемых по протоколу UDP, с высокой вероятностью характеризуют использование троянца Back Orifice с паролем, заданным по умолчанию. И даже притом, что 80% всех злоумышленников оставляют пароль, заданный по умолчанию, остальные 20% (наиболее квалифицированных) изменяют его. Такая модифицированная атака не будет обнаружена системой, построенной на применении регулярных выражений. Многие из этих систем не обрабатывают также фрагментированные пакеты. И злоумышленник мог бы обойти систему обнаружения атак, просто изменяя значение MTU на своем компьютере. Справедливости ради необходимо отметить, что и более сложные и дорогостоящие коммерческие системы обнаружения атак не всегда не контролируют фрагментированные сообщения.

Для собственноручно созданных систем очень велик процент ложных срабатываний (false positives), при котором анализируемый трафик определяется как атака, несмотря на то, что реальной атаки в этом трафике нет. Например, указанные 8 байт для троянца Back Orifice не настолько необычны, чтобы их нельзя было встретить в обычном трафике. Рассматриваемые системы в этом случае просигнализируют об обнаружении использования Back Orifice там, где его на самом деле нет. Или другой пример. Вы пишите письмо другу, в котором предупреждаете его, что скрипт "/cgi-bin/phf" является уязвимым. Большинство коммерческих систем, анализирующих не просто отдельные сетевые пакеты, а целиком трафик конкретного протокола, "увидит", что текстовый фрагмент "/cgi-bin/phf", характеризующий атаку передается не по 80 (HTTP), а по 25 (SMTP) порту и не будут сигнализировать об атаке. В отличие от пакетно-ориентированных систем, построенных на базе TCPdump или INSPECT.

Однако такие системы имеют право на существование, и технологии, описанные в данной статье, используются при создании своей (пусть не столь мощной, как RealSecure Network Sensor) системы обнаружения атак, на которую не надо тратить много денег.

загрузка...

 

 

Наверх


Постоянная ссылка на статью "Обнаружение атак своими силами":


Рассказать другу

Оценка: 4.0 (голосов: 16)

Ваша оценка:

Ваш комментарий

Имя:
Сообщение:
Защитный код: включите графику
 
 



Поиск по базе статей:





Темы статей






Новые статьи

Противовирусные препараты: за и против Добро пожаловать в Армению. Знакомство с Арменией Крыша из сэндвич панелей для индивидуального строительства Возможно ли отменить договор купли-продажи квартиры, если он был уже подписан Как выбрать блеск для губ Чего боятся мужчины Как побороть страх перед неизвестностью Газон на участке своими руками Как правильно стирать шторы Как просто бросить курить

Вместе с этой статьей обычно читают:

Тюнинг своими силами

Тюнинг своими силами Тюнинг – в переводе с английского «настройка». На языке автомобилистов означает доработку машины с целью улучшения ее качеств под вкус конкретного владельца. Наверное, я не ошибусь, если скажу, что практически каждый владелец отечественных авто хоть раз, да бросал свой завистливый взгляд на обладателей иномарок.

» Немецкие автомобили - 6762 - читать


Музыка в машине своими силами

Музыка в машине своими силами. Прошу данную статью не считать обличающей действия фирм-установщиков. Просто я живу по принципу «не Боги горшки обжигают», поэтому считаю, что любому человеку, обладающему минимальными знаниями в области электроники, по силам провести самостоятельную установку музыки в свой автомобиль.

» Разное - 25296 - читать


Сайт своими силами?

На сегодняшний день многие компании уже имеют собственный корпоративный сайт. И к их числу ежедневно присоединяется немало фирм. А перед каждым руководителем, решившим обзавестись собственным сайтом, возникает вопрос: заказать изготовление веб-проекта в дизайн-студии или попытаться обойтись своими силами?

» Интересное в сети - 2102 - читать


Как своими силами предупредить рак груди!

«В отличие от мужчин, у женщин нет права быть некрасивой». Женская грудь с самого рождения человечества привлекала внимание мужчин. По результатам опросов сексологов из Калифорнийского института красоты женская грудь стоит на первом месте в подсознании мужчины как элемент притягательности и фактор ментальных фантазий.

» Здоровый образ жизни - 1914 - читать


Можно ли в России создать свою систему обнаружения атак?

Таких романов нынче нет. Не хотите ли разве русских? А разве есть русские романы?..

» Безопасность - 2059 - читать



Статья на тему Компьютеры » Безопасность » Обнаружение атак своими силами

Все статьи | Разделы | Поиск | Добавить статью | Контакты

© Art.Thelib.Ru, 2006-2024, при копировании материалов, прямая индексируемая ссылка на сайт обязательна.

Энциклопедия Art.Thelib.Ru