Безопасность и Internet - статьи

       

Проведение тестирования


Тестирование реализации стеков операционной системы и IDS проводилось на макете, состоящем из двух компьютеров, объединенных сетью Ethernet. Хост, с которого проводилось тестирование, назывался «атакующей системой», а тестируемый хост — «целевой системой» (рис. 3). На хосте имелся файл с названием PHF. Доступ к данному файлу моделировал доступ к уязвимому сценарию phf (www.infosecurity.com/archive/1). В случае HTTP-запроса с атакующей системы к этому файлу Web-сервер передавал его содержимое атакующему, что говорило об успехе атаки. Совсем необязательно выполнять сам сценарий на Web-сервере: если Web-сервер выдал содержимое файла, можно считать, что атака состоялась. Атакующий мог видеть результат атаки на экране с помощью запущенного сетевого анализатора Snort. В случае успеха Snort перехватывал содержимое файла PHF. Обращение к файлу PHF выбрано не случайно. Во-первых, в [1] рассматривали также обращение к PHF. Во-вторых, данная уязвимость была обнаружена в 1996 году и все рассмотренные IDS имели правила для поиска такой сигнатуры.

Рис. 3. Тестовый макет

Создание тестирующей последовательности пакетов проводилось при помощи специально разработанной программы NetStuff, которая является расширенным генератором пакетов, позволяющим выполнять следующие действия.

  • Установка связи. Программу можно использовать для установления TCP-соединения с удаленным сервером. В качестве параметров трехэтапного квитирования пользователь может выбрать IP-адреса отправителя и получателя, номера портов отправителя и получателя, а также задать начальный номер ISN.
  • Разрыв связи. Для разрыва ранее установленного соединения предусмотрена специальная функция. Пользователю предоставляется возможность определить IP-адреса и номера портов отправителя и получателя, а также текущий номер последовательности.
  • Посылка пакетов. Основная функция программы - посылка данных в пакетах TCP/IP. Программа имеет возможность посылки данных как в одном пакете, так и в нескольких TCP- или IP-фрагментах. При посылке пакетов имеется возможность настроить все известные поля протоколов канального, сетевого и транспортного уровней. Автоматически высчитывается контрольная сумма TCP-сегментов и IP-пакетов.

  • Для посылки данных в виде фрагментов можно выбрать протокол, в рамках которого проводится фрагментация и количество фрагментов. При необходимости можно сделать так, что сигнатура атаки будет разбита и передана в нескольких фрагментах. Разбив данные на фрагменты, можно настроить каждый фрагмент, изменяя при этом поля заголовков. Также можно модифицировать полезные данные, которые несут фрагменты.

    Особое внимание уделялось выбору систем для тестирования: необходимо было рассмотреть как коммерческие, так и свободно распространяемые средства IDS.

    В качестве исследуемых систем IDS были выбраны Snort 1.8.4. beta for Linux [4], Snort 1.8. for Win32 [4], eTrust Intrusion Detection 1.0 от Computer Associates [5], Dragon 5.0 от Enterasys Networks [6], RealSecure 6.0 от Internet Security Systems. Первые две системы распространяются свободно, для работы остальных понадобился демо-ключ, не ограничивающий функциональные возможности. Операционные системы, защищенные IDS: Windows 98 SE v4.10.2222; Windows 2000 SP2 v5.00.2195; Windows NT 4.0 SP3; Linux Red Hat 7.2 на ядре 2.4.7-10.

    Поиск уязвимостей проходил по следующему сценарию.

  • Исследовалась реализация стека протоколов сетевого взаимодействия целевой системы. Для этого использовался генератор пакетов NetStuff и ранее подготовленные тестирующие последовательности сетевых пакетов. Инициировался запрос к файлу PHF, хранящемуся на Web-сервере целевой системы. В случае, если Web-сервер обработал запрос и выдавал содержимое файла, можно говорить о том, что конкретная реализация стека целевой системы восприняла текущую тестирующую последовательность, в противном случае, - что стек целевой системы не смог обработать запрос.
  • Аналогично проводилось тестирование IDS. Если IDS смогла обнаружить сигнатуру атаки "phf" и выдала сообщение об атаке, то можно говорить о том, что IDS восприняла тестирующую последовательность.
  • После изучения особенностей реализации стеков рассматривались полученные результаты и искались различия в работе стеков систем. Так, если конкретная целевая система оставляет новые данные при обработке перекрывающихся IP-фрагментов, а IDS оставляет старые, можно говорить о том, что найдено различие.
  • Последний этап поиска - попытка проведения скрытой атаки методом вставки или сокрытия. Для этого использовались результаты, полученные в предыдущем пункте. В том случае, если удавалось незаметно для IDS получить содержимое файла PHF, можно говорить о том, что найдена новая уязвимость.



  • Содержание раздела