Инструментальные средства обеспечения безопасности

Реализация


Комплект ISIC постоянно находится в каталоге /security дистрибутива BSD или может быть загружен с сайта http://www.packetfactory.net/Projects/ISIC/. Он основан на использовании библиотеки создания пакетов libnet, которая должна быть установлена на вашей системе. Приложение ISIC представляет собой комплект из пяти программ: ISIC, tcpsic, udpsic, icmpsic и esic. Каждая из этих программ генерирует различные типы допустимых и недопустимых пакетов для протоколов IP, TCP, UDP, ICMP и ARP. Это дает возможность тестировать не только общие сетевые протоколы (IP), но также и более специфические.


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

# iptest -s 172.16.34.213 192.168.12.84

Если IP-адрес отправителя не принадлежит физической сетевой карте (NIC), использующейся для генерации трафика, вам может понадобиться определить также сетевой интерфейс (-d) и шлюз (-g) в командной строке.

# iptest -s 10.87.34.213 -d le0 -g 192.168.12.1 192.168.12.84

Затем вы можете позволить инструменту Iptest пройти весь список встроенных тестов, или выбрать более узко направленные тесты с помощью опций -n и -pt, где n - число в интервале от одного до семи, а t - номер "точечного теста" (point test) для соответствующего n. Другими словами, вы выбираете опцию между единицей и семеркой. Например, опция пять (-5) содержит большинство TCP-тестов. В пределах пятой опции есть восемь точечных тестов (-p). Окончательно команда, предназначенная для выполнения пятой опции с ее первым точечным тестом, будет выглядеть следующим образом:

# iptest -s 10.87.34.213-d le0-g 192.168.12.1 -5 -p1 192.168.12.84

В этом примере будут проверены все комбинации флагов TCP. В таблице 17.3 описаны более полезные опции меню.

Таблица 17.3. Опции утилиты iptest и их точечные тесты

Номер опцииТочечный тестОписание
Опции iptest
-17Генерирует пакеты с фрагментами нулевой длины.
-18Создает пакеты длиной более 64 килобайт после сборки. Это могло бы вызвать переполнение буфера в плохих сетевых стеках.
-21Создает пакеты с длиной опции IP, которая больше, чем длина пакета.
-6n/aГенерирует фрагменты пакета, которые перекрываются при реконструкции. Это может наносить ущерб менее устойчивым стекам TCP/IP. Если вы используете этот тест, выполняйте его отдельно от других.
-7n/aГенерирует 1024 случайных IP-пакета. Поля IP-уровня будут правильны, но данные пакета - случайны.
Опции UDP теста
-41,2Создает длину полезной нагрузки UDP протокола, которая меньше (1) или больше (2), чем длина пакета.
-43,4Создает UDP-пакет, в котором номер порта отправителя (3) или получателя (4) попадает на границу байта: например, 0, 1, 32767, 32768, 65535. Этот тест может обнаружить граничные (off-by-one) ошибки.
Опции ICMP теста
-3с 1 по 7Генерирует различные нестандартные ICMP-типы и коды. Может выявить ошибки в списке контроля доступа ACL, которые, как предполагается, блокируют ICMP-сообщения.
Опции TCP теста
-51Генерирует все возможные комбинации флагов опций TCP. Этот тест может выявить логические проблемы в способах, которыми стек TCP/IP обрабатывает или игнорирует пакеты.
-52,3Создает пакеты, в которых номера пакетов (2) и номера подтверждения (3) попадают на границы байта. Этот тест может выявить граничные (off-by-one) ошибки.
-54Создает SYN-пакеты различных размеров. SYN-пакет с нулевым размером является повсеместным пакетом сканирования порта. Система обнаружения вторжений или брандмауэр должны отслеживать все виды SYN-пакетов, соответствующих подозрительной деятельности.
-57,8Создает пакеты, в которых номер порта отправителя (7) или порта получателя (8) попадает на границу байта. Например, 0, 1, 32767, 32768, 65535. Может выявить граничные ошибки (off-by-one).
<


Комплект nemesis содержит утилиты, предназначенные для создания пакетов и пакетных данных для протоколов ARP, DNS, ICMP, IGMP, OSPF, RIP, TCP и UDP. Каждая утилита называется соответственно nemesis-<протокол>, где <протокол> - один из восьми поддерживаемых типов протокола. Например, nemesis-dns имеет дело с созданием DNS-пакетов, в то время как nemesis-tcp создает пакеты для TCP-трафика. Вы можете выполнить общую отладку сети и тестирование с помощью инструментальных средств nemesis-udp и nemesis-tcp. Другие инструментальные средства приспособлены для тестирования более специализированных протоколов или служб.

Требуется некоторое время, чтобы начать создание пакетов с помощью nemesis, но как только вы создадите каркас, в нем будет просто производить небольшие изменения. Каждое из инструментальных средств комплекта nemesis требует основных IP-опций. Каждое из инструментальных средств поддерживает следующие опции.

Опции IP:

-S <IP адрес отправителя> -D <IP адрес получателя> -I <IP ID (идентификатор)> -T <IP TTL (время жизни дейтаграммы)> -t <IP tos (тип сервиса)> -F <IP frag (смещение фрагмента)> -O <Опции IP>

Опции Data Link:

-d <Устройство Ethernet> -H <MAC-адрес отправителя> -M <MAC-адрес получателя>

Утилита nemesis-tcp может быть особенно полезна при составлении общей картины атак, называемых "reply attacks", за счет анализа пакетов, которые вы перехватили в сети. Например, чтобы подделать сеанс TCP, вам нужно знать не только одноранговый (peer) IP-адрес и номер порта, но также и порядковый номер пакета (SEQ) и номер подтверждения (ACK). Таким образом, вы можете обрабатывать любую часть трехэтапного квитирования при установлении связи по TCP. Утилита nemesis-tcp поддерживает следующие специфические для TCP опции.

Опции TCP:

[-x <порт отправителя>] [-y <порт получателя>] -f <Опции флагов TCP> -fS SYN,-fA ACK,-fR RST,-fP PSH,-fF FIN,-fU URG -w < Размер окна> -s <номер SEQ> -a <номер ACK> -u <TCP urgent pointer (указатель срочности)> -P <Файл полезной нагрузки (двоичный или ASCII)> -v VERBOSE (Подробный - вывод структуры пакета на стандартное устройство stdout) Совет. Помещайте опции TCP флага (-f) перед опциями порта (-x, -y).

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