Фильтрация пакетов
Работа брандмауэров с фильтрацией пакетов (в том числе с сохранением состояний) типа Firewall-1 от компании CheckPoint, PIX и IOS от компании Cisco (да, IOS тоже можно использовать в качестве брандмауэра) основывается на списках ACL или правилах, служащих для определения того, является ли авторизованным трафик, передаваемый в/из внутренней сети. В большинстве случаев эти списки грамотно разработаны и их очень трудно обойти. Однако зачастую можно обойти брандмауэры с нестрогим списком ACL и передать отдельные пакеты во внутреннюю сеть.
Нестрогие списки ACL
Нестрогие списки ACL применяются на гораздо большем числе брандмауэров, чем это можно себе представить. Предположим, что провайдеру услуг Internet какой-то организации необходимо разрешить перенос зоны. В этом случае вместо нестрогого списка ACL, такого как "Разрешить выполнение действий с сервера DNS провайдера услуг Internet с исходного TCP-порта 53 и порта назначения 53", может быть реализован следующий: "Разрешить выполнение любых действий с исходного TCP-порта 53". Подобные ошибки в конфигурации могут оказаться поистине разрушительными, поскольку злоумышленник сможет просканировать всю сеть извне. Большинство из таких атак начинается со сканирования узла, расположенного позади брандмауэра, и использования в качестве исходного ложного TCP-порта 53 (DNS).
Контрмеры против нестрогих списков ACL
Предотвращение
Удостоверьтесь, что правила вашего брандмауэра разрешают лишь определенные подключения. Например, если вашему провайдеру услуг Internet требуется выполнять перенос зоны, это должно быть явно указано в установленных правилах. При этом требуйте указания в правиле как исходного IP-адреса, так и IP-адреса назначения (внутреннего сервера DNS).
Если вы используете брандмауэр Checkpoint, то для ограничения возможности использования исходного порта 53 (DNS) лишь службой DNS провайдера можно реализовать следующее правило. Например, если адресом сервера DNS провайдера является 192.168.66.2, а адресом внутреннего сервера DNS — 172.30.140.1, то это правило будет иметь следующий вид.
Source | Destination | Service | Action | Track |
(источник) | (назначение) | (служба) | (действие) | (регистрация) |
192.168.66.2 | 172.30.140.1 | domain-tcp | Accept | Short |
Предотвращение
В зависимости от требований к конфигурации можно запретить большую часть трафика, разрешенного по умолчанию. При этом необходимо соблюдайте осторожность, поскольку можно случайно запретить и передачу авторизованных данных. Для ограничения доступа выполните следующие действия.
1. В диалоговом окне редактирования политики безопасности выберите команду Policy1* Properties.
2. Сбросьте флажки Accept, расположенные рядом с именами всех функций, которые не являются необходимыми. Например, пользователям многих узлов не требуется выполнять загрузку данных DNS. В этом случае нужно сбросить флажок Accept Domain Name Downloads. Этот же прием можно использовать также для управления трафиком RIP и DNS.
3. Создайте свое собственное правило, разрешающее обмен данными DNS с определенным авторизованным сервером DNS (как описано в разделе "Контрмеры Против Нестрогих Списков ACL").
Туннелирование трафика ICMP и UDP
Туннелирование трафика ICMP — это возможность инкапсуляции реальных данных в заголовке пакета ICMP. Против такой атаки бессильны многие маршрутизаторы, разрешающие прохождение ICMP-пакетов ECHO, ECHO REPLY и UDP-пакетов. Подобно ситуации с брандмауэром CheckPoint, связанной с передачей данных DNS, возможность использования туннелирования трафика ICMP и UDP базируется на том, что в распоряжении взломщика уже имеется взломанный узел, находящийся позади брандмауэра.
Джереми Раух (Jeremy Rauch) и Майк Шифман (Mike Schiffman) тщательно исследовали эту концепцию и создали средства для ее использования: утилиты loki и lokid (клиент и сервер). После запуска сервера lokid на взломанном узле, расположенном позади брандмауэра, который разрешает прохождение ICMP-пакетов ECHO и ECHO REPLY, взломщик может запустить клиентскую часть (loki), чтобы помешать каждую передаваемую серверу lokid команду в ICMP-пакет ECHO. После этого утилита lokid будет "извлекать" полученные команды, выполнять их локально, а затем помешать полученные результаты в ICMP-пакеты ECHO REPLY и передавать их обратно взломщику. При использовании такого подхода у злоумышленников имеется возможность полного обхода брандмауэра. Описанная концепция и средства, которые ее реализуют, подробно рассматриваются в главе 14.
Контрмеры: защита от туннелирования трафика ICMP и UDP
Предотвращение
Для зашиты от атак такого типа можно полностью запретить доступ по протоколу 1СМР через брандмауэр или обеспечить управляемую избирательную передачу ICMP-пакетов. Например, следующий список ACL брандмауэров Cisco позволит полностью запретить передачу административных данных ICMP за пределы подсети 172.29.10.0 (демилитаризованной зоны).
access-list 101 permit icmp any 172.29.10.0 0.255.255.255 8!
echo access-list 101 permit icmp any 172.29.10.0 0.255.255.255 0!
echo-reply access-list 102 deny ip any any log!
запретить, иначе регистрировать все события
Если ваш провайдер услуг Internet отслеживает работоспособность компьютеров, расположенных позади брандмауэра, с помощью утилиты ping (чего мы не советуем делать), то такие списки ACL нарушат этот процесс. Уточните у своего провайдера, применяет ли он эту утилиту.