Фильтрация пакетов

Работа брандмауэров с фильтрацией пакетов (в том числе с сохранением состояний) типа 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

Обход брандмауэров Checkpoint


Брандмауэры Checkpoint 3.0 и 4.0 предоставляют открытые порты по умолчанию. Порты, используемые для обратного поиска DNS (UDP 53), переноса зоны DNS (TCP 53) и маршрутизации (RIP, UDP 520), могут задействоваться любьш узлом для доступа к любому узлу. В дополнение ко всему эти операции не регистрируются в системных журналах. В результате после "захвата" узла внутренней сети у взломщика появляются интересные возможности.
Выше вы узнали, насколько просто идентифицировать брандмауэр Checkpoint. На основе полученных знаний злоумышленник может эффективно обойти его правила. Однако для осуществления такого подхода должно выполняться несколько существенных предварительных условий. Сначала взломщик должен получить в свое распоряжение компьютер, расположенный позади брандмауэра, или обманным путем внедрить на внутренний узел "троянского коня".
В любом случае на взломанном узле должна быть запущена программа прослушивания netcat. Эта утилита либо обеспечит доступ взломщика к удаленной командной оболочке, либо предоставит ему возможность вводить команды и выполнять их локально на удаленном узле. Подобные "потайные ходы" подробно рассматриваются в главе 14, а сейчас для лучшего понимания проблемы мы лишь кратко рассмотрим описанный подход.
Как видно из следующего рисунка, брандмауэр Checkpoint пропускает данные через TCP-порт 53 без регистрации. После установки на взломанном удаленном узле программы netcat, связанной с портом 53, и "захвата" удаленной командной оболочки /bin/sh через свой собственный порт 53, находящийся в состоянии ожидания запросов, взломщик "прорубит окно" в брандмауэре и получит доступ к любой системе.


Контрмеры: защита от обхода брандмауэров CheckPoint


Предотвращение


В зависимости от требований к конфигурации можно запретить большую часть трафика, разрешенного по умолчанию. При этом необходимо соблюдайте осторожность, поскольку можно случайно запретить и передачу авторизованных данных. Для ограничения доступа выполните следующие действия.
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 нарушат этот процесс. Уточните у своего провайдера, применяет ли он эту утилиту.