В дополнение к атакам, описанным в предыдущей
статье
, основанным на разном времени
фрагментации, существует еще один класс
атак, основанных на подмене фрагментов.
Господа Паксон и Шанкар в статье "Active
mapping: resisting NIDS Evasion without altering traffic
"
отметили, что разные операционные системы
осуществляют сборку фрагментов по разному.
Они выработали пять разных политик сборки.

В этой статье мы опишем два из них —
называются они First и Last. Ясно, что в первом
случае при сборке пакетов из фрагментов
предпочтение отдается первым полученным
частям, а во втором — последним. Примером
первого вида являются ОС семейства Windows 95/ 98/
NT4/ ME/ W2K/ XP/ 2003, а второго — Cisco IOS. Работа
продемонстрирована на рисунке.

Атакующий начинает атаку с разделения
своих данных на 4 фрагмента. Он посылает
фрагменты 1, 2 и 3 первыми, они принимаются
всеми операционными системами. После этого
посылаются фрагменты 2′, 3′ и 4, где 2′ и 3′ по
смыслу отличаются от реальных фрагментов 2
и 3, однако их смещение, длинна и прочие поля
в IP-заголовке остаются теми же самыми. 

В этом сценарии операционные системы
осуществляют сборку фрагментов с
соответствии со своими политиками. В случае
политики First будут собраны фрагменты 1, 2, 3 и
4, а в политике Last — 1, 2′, 3′, 4.

Более подробное описание различных
методов работы с фрагментами можно найти,
например, в документации Snort.

Противодействие Snort

Snort, без сомнения, является самой
популярной NIDS в мире. Конечно же в нем есть
меры противодействия таким атакам.
Препроцессор frag3
предназначен для работы с фрагментами, он
пришел на смену модулю frag2. Препроцессор
является целевым, позволяя пользователю
определять  метод сборки фрагментов и
время таймаута на целевом IP адресе или
подсети. Это позволяет системе обнаружения
вторжения работать в той же манере, что и
компьютеры в сети, которую она охраняет.
Предположим, что у вас под защитой подсеть
192.168.1.x, состоящая из машин с OpenBSD, и вы хотите
сконфигурировать Snort на работу с нею. Для
этого достаточно указать в
конфигурационном файле данные для
препроцессора frag3:

preprocessor frag3_global:
preprocessor frag3_engine: policy bsd\ 
bind_to 192.168.1.0/24 \ 
timeout 30 \ 
min_ttl 2 
preprocessor frag3_engine: policy first\ 
bind_to[10.1.47.0/24, 172.16.8.0/24]

Теперь пакеты для подсети 192.168.1.x будут
собираться используя политику bsd, с теми же
параметрами, что установлены и в BSD. Ясно
видно, что для подсети 10.1.47.x используется
политика First. Кроме того обратите внимание
на поле min_ttl, с помощью которого можно предотвратить
атаки, основанные на времени TTL — если бы
между IDS и подсетью существовал роутер, то
указанием минимального времени жизни
пакетов можно было бы избежать такого
нападения.

 

Оставить мнение

Check Also

Каждый пятый магазин, пострадавший от MageCart, заражают повторно через несколько дней

Независимый ИБ-эксперт Виллем де Грот (Willem de Groot) предупреждает, что сайты, подвергш…