Опубликован: 20.02.2007 | Доступ: свободный | Студентов: 3505 / 793 | Оценка: 4.42 / 4.03 | Длительность: 40:03:00
Лекция 17:

Инструментальные средства проверки TCP/IP-стека

< Лекция 16 || Лекция 17: 12345 || Лекция 18 >
Icmpsic

Большинство сетей блокируют входящие ICMP-сообщения в своих сетях. Используйте инструмент icmpsic, чтобы посмотреть, как ваше устройство защиты обрабатывает ICMP-трафик, включая трафик, который не попадает в категорию Ping. Нормальный ICMP-трафик обычно состоит из парных ICMP-запросов ( echo request ) (хост задает вопрос: "Есть ли там кто-нибудь?") и ICMP-ответов ( echo reply ) (ответ хоста: "Мы и они"). Существуют другие типы ICMP-сообщений, которые охватывают управление доступом и метками времени ( timestamp ). Большую часть времени весь ICMP-трафик, направленный из интернета в сеть, блокирован. Во внутренней сети утилита ping обычно может искать свободно, так почему бы не исследовать, как устройства обрабатывают чрезмерный ICMP-трафик?

Использование:

icmpsic [-v] [-D]-s <ip отправителя> 
  [, порт]-d <ip получателя> [,порт]
[-r начальное случайное число] 
   [-m <максимальная скорость генерации (КБ/с)>]
[-p <число генерируемых пакетов>] [-k <пропускаемые пакеты>] 
  [-x <посылать пакет X раз>]
Процентные опции:   [-F фрагментирование] [-V <Плохая версия IP>] 
  [-I <Опции IP>]
                    [-i <Плохая контрольная сумма ICMP>]

Хотя использование утилиты подразумевает, что вы можете указать порты с помощью аргументов -s и -d, установка номера порта заставляет утилиту icmpsic вместо этого использовать широковещательный (broadcast) адрес. Номера портов не являются частью ICMP-протокола. На уровне IP вы все еще можете генерировать фрагментированные пакеты ( -F ), пакеты с плохими версиями IP ( -V ) и пакеты с плохими опциями IP ( -I ). ICMP является подмножеством протокола IP, поэтому эти опции все еще доступны.

Единственная опция, специфическая для ICMP, позволяет посылать неверную контрольную сумму ICMP-сообщения, которая должна делать полученный пакет недействительным. Во всем остальном, утилита icmpsic генерирует случайные значения для типа и кода сообщения. Эхо-ответ ICMP ( echo reply ), например, имеет тип 0. Ответ метки времени ICMP ( timestamp reply ) имеет тип 14. RFC 792 перечисляет большинство типов ICMP-сообщений. Мы настолько педантичны в ICMP-протоколе из-за того, что его часто игнорируют, и он может использоваться как потайной канал ( covert channel ) (см. лекцию ""Черный ход и средства удаленного доступа"" ) или даже в идентификации операционной системы, что основывается на снятии "отпечатков пальцев" стека ( stack fingerprinting ) (http://www.sys-security.com/archive/papers/ICMP_Scanning_v2.5.pdf).

Esic

Буква e в названии esic означает Ethernet-сеть. Этот инструмент передает пакеты со случайными номерами, другими словами, пакеты, основанные не на TCP/IP-протоколе. Это единственный инструмент, который работает ниже уровня IP, поэтому он не может обеспечить генерацию такого же количества недопустимых пакетов.

Использование:

esic -i interface [-s <MAC-адрес отправителя>] 
 [-d <MAC-адрес получателя>]
  [-p <протокол #> или "rand">] [-r <начальное случайное число>]
  [-c <# число посылаемых пакетов>] [-l <максимальная длина пакета>]
  [-m <# число пакетов между распечаткой>]

Использование этого инструмента ограничено, главным образом, тестированием брандмауэров или причинением разрушительного ущерба коммутаторам. Обратите внимание, что заданный по умолчанию MAC-адрес получателя - широковещательный. Это означает, что любой пакет, который вы создаете без использования опции -d, будет передаваться на каждый интерфейс хаба или коммутатора. Это могло бы создавать наплыв пакетов, приводящий к атаке, вызывающей отказ в обслуживании, или к такому потоку, который коммутатор не успевает обрабатывать, таким образом, низводя функцию коммутатора до функции хаба и допуская возможность перехвата трафика. Конечно, потребуется большой трафик, чтобы повлиять на 100-мегабайтный коммутатор.

Советы и уловки

Комплект инструментов ISIC предназначен не для эзотерических сетевых тестов. Каждому инструменту соответствуют определенные сценарии, для которых он полезен. В таблице 17.1 перечислен каждый инструмент и некоторые примеры сценариев тестирования.

Таблица 17.1. Сценарии тестов, выполняемые с помощью комплекта isic
Инструмент Сценарий теста
ISIC Брандмауэры. Маршрутизаторы. Хосты защитного бастиона (Web-серверы, DNS-серверы, почтовые серверы).
tcpsic Брандмауэры (особенно, интерфейс администрирования). Маршрутизаторы (особенно, интерфейс администрирования). Важные службы (22: SSH, 25: SMTP, 80: HTTP, 443: HTTP, 8080: proxies).
udpsic Важные службы (53: DNS).
icmpsic Маршрутизаторы. Брандмауэры.
esic Брандмауэры. Маршрутизаторы. Коммутаторы (включая атаки трафика повышенной интенсивности, которые могут дать возможность прослушивания сети).
Брандмауэры

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

# isic -s 172.16.19.12 -d 192.168.0.1 -F75 -V75 -I75

Недопустимые пакеты предназначены для того, чтобы создать более тяжелую нагрузку на брандмауэр. Брандмауэры имеют тенденцию работать эффективно, когда трафик нормален. Как системный администратор, вы должны также беспокоиться о том, как брандмауэр действует в неблагоприятных условиях. Число 75 после опций -F, -V и -I означает, что у 75 % от всех пакетов будут ошибки в версии IP, длине заголовка и подсчете фрагментов. Хотя такая команда не является сигнатурой какой-либо специфической атаки, вызывающей отказ в обслуживании, но она может вызвать подобные эффекты.

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

# tcpsic -s 172.16.19.23,3434 -d 192.168.0.37,80

Теоретически, брандмауэр должен просто сбрасывать недопустимый трафик и переходить к следующему пакету; однако вы можете обнаружить случаи, в которых брандмауэр тратит необычно много времени на определенный номер протокола, фрагмент или недопустимую опцию TCP. Конечно, атака на брандмауэр не является единственной возможностью. В таблице 17.2 показаны другие типы тестов, которые вы можете выполнить.

Таблица 17.2. Сценарии общих тестов
Тест Сценарий
Нацелен на брандмауэр Посылайте трафик на IP-адрес брандмауэра или на один из его портов администрирования.
Подмена IP-адресов Генерируйте трафик на неподходящий интерфейс. Например, используйте адреса отправителя из адресного пространства 172.16.0.0/16 для интерфейса, который обслуживает сеть 10.1.2.0/24. Этот тест особенно полезен для брандмауэров с несколькими интерфейсами. Кроме того, он может обнаруживать проблемы с правилами брандмауэра, защищающими от обманов, или их отсутствие.
Нацелен на хосты позади брандмауэра Пытайтесь передавать трафик через брандмауэр, чтобы посмотреть, останавливает ли он пакеты, сформированные с изъяном.
Внимание. Если вы генерируете пакеты опцией rand для IP-адреса отправителя в инструментах tcpsic или udpsic, то сервер получателя может ответить на эти IP-адреса при попытке завершить трехэтапное квитирование по TCP-протоколу! Имейте в виду, что вы можете неосторожно передать TCP-, RST- и FIN-пакеты на случайные адреса.

Другая полезная методика генерации пакетов для тестов на повышенную нагрузку состоит в использовании случайного заполнителя ( rand placeholder ) для IP-адреса отправителя. Любое из инструментальных средств комплекта ISIC генерирует случайные IP-адреса, если это указано, даже из резервного адресного пространства. Используйте эту программу, чтобы проверить, как брандмауэр обрабатывает DNS-трафик, включающий 50 % неправильных контрольных сумм UDP.

# udpsic -s rand -d 192.168.0.121,53 -U50
Управление пакетами

Каждый инструмент поддерживает опции -m, -p, -k и -x, чтобы управлять созданием пакета и пропускной способностью. Используйте опцию -m, чтобы ограничить максимальную пропускную способность, которую пробует использовать инструмент ISIC. Эта опция может быть полезна для установления базовой нагрузки против сервера (например, маршрутизатора) или службы (например, HTTP). Например, по следующей команде никаких вредных пакетов не генерируется, но посылается устойчивый трафик в 1000 Кбит/с к Web-серверу.

# tcpsic -s rand -d 192.168.0.37,80 -m 1000 -F0 -V0 -I0 -t0

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

Опция -p предписывает ISIC посылать установленное число пакетов и затем останавливаться. Опция -k заставляет isic пропускать заданное число пакетов. Например, следующая команда генерирует 100000 пакетов, но опускает первые 50000.

# icmpsic -s rand -d 192.168.0.12 -p100000 -k50000
< Лекция 16 || Лекция 17: 12345 || Лекция 18 >