Идентификация брандмауэров

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

Прямое сканирование


Самый простой способ поиска брандмауэров заключается в сканировании определенных портов, используемых ими по умолчанию. Некоторые современные брандмауэры можно уникально идентифицировать, выполнив простое сканирование портов. Для этого необходимо лишь знать, что именно вы хотите найти. Например, брандмауэры Firewall-1 компании Checkpoint ожидают поступления запросов с TCP-портов 256, 257 и 258, a Proxy Server компании Microsoft обычно прослушивает TCP-порты с номерами 1080 и 1745. Обладая такой информацией, поиск этих типов брандмауэров окажется тривиальным, если воспользоваться сканером портов, таким как утилита nmap.
nmap -n -vv -P0 -p256,1080,1745 192.168.50.1-60.254
Параметр -P0 отключает передачу тестовых ICMP-пакетов перед сканированием. Это оказывается очень важным, поскольку многие брандмауэры не реагируют на поступающие эхо-запросы ICMP.
Чтобы найти все бреши в защите пограничных устройств вашей сети, как начинающий, так и опытный взломщик прибегнет к сканированию широкого диапазона портов. Однако наиболее опасные злоумышленники постараются выполнить сканирование как можно более незаметно. При этом для того чтобы избежать разоблачения, они могут воспользоваться любым из многочисленных приемов, включая ping-прослушивание случайно выбранных адресов, произвольных портов, а также использование ложных узлов и выполнение распределенного сканирования.
 Если вы надеетесь, что система выявления вторжений (IDS - Intrusion -> Detection System) сможет выявить подобные атаки, то оцените потенциальную опасность еще раз. Большинство систем IDS настроено таким образом, что они способны обнаружить лишь наиболее "шумное" или прямолинейное сканирование портов. Если систему IDS не настроить должным образом, большинство злоумышленников останутся абсолютно незамеченными. Сканирование произвольных портов можно реализовать с помощью сценария Perl.

Контрмеры: защита от прямого сканирования


Способы предотвращения сканирования портов брандмауэра во многом совпадают с методами, рассмотренными в главе 2. Необходимо заблокировать попытки такого сканирования на пограничном маршрутизаторе или воспользоваться одним из средств выявления вторжений (свободно распространяемым или коммерческим). Однако и в этом случае нельзя предотвратить простое сканирование портов, поскольку по умолчанию большинство систем IDS не позволяет обнаружить подобную деятельность. Так что перед их использованием необходимо выполнить соответствующую настройку.

Обнаружение


Для того чтобы безошибочно обнаружить факт сканирования портов по случайному закону или с применением ложных узлов, нужно тонко настроить соответствующую сигнатуру. Для получения дополнительной информации по этому вопросу внимательно изучите документацию, входящую в комплект поставки используемой системы IDS.
Для того чтобы обнаружить сканирование портов из предыдущего примера с использованием системы RealSecure 3.0, нужно дополнительно повысить ее чувствительность, модифицировав специальные параметры. Мы рекомендуем внести следующие изменения.
1. Выберите и настройте политику Network Engine Policy.
2. Выберите команду Port Scan и щелкните на кнопке Options.
3. В поле Ports внесите значение 5.
4. В поле Delta задайте интервал 60 секунд.
При использовании брандмауэра Firewall-1 системы UNIX для выявления попыток сканирования можно воспользоваться утилитой Ланца Спитзнера. Как упоминалось в главе 2, его сценарий alert.sh поможет настроить брандмауэр компании Checkpoint и осуществить мониторинг сканирования портов, а при обнаружении такой деятельности будет сгенерировано уведомление, установленное пользователем.

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


Для того чтобы предотвратить сканирование портов брандмауэра из Internet, нужно заблокировать эти порты на маршрутизаторе, расположенном перед брандмауэром. Если эти устройства управляются вашим провайдером услуг Internet, то этот вопрос придется согласовать с ним. Если же вы самостоятельно управляете маршрутизатором, то для явного блокирования попыток сканирования воспользуйтесь следующим списком ACL компании Cisco.

access-list 101 deny tcp any any eq 256 log!
Блокирование сканирования Firewall-1
access-list 101 deny tcp any any eq 257 log!
Блокирование сканирования Firewall-1
access-list 101 deny tcp any any eq 258 log!
Блокирование сканирования Firewall-1
access-list 101 deny tcp any any eq 1080 log!
Блокирование сканирования Socks
access-list 101 deny tcp any any eq 1745 log!
Блокирование сканирования Winsock

Если вы заблокируете порты Checkpoint (256-258) на пограничных маршрутизаторах, то не сможете управлять брандмауэром по Internet. Администратор Cisco может без особых проблем применить вышеперечисленные правила. Нужно просто перейти в режим редактирования параметров и ввести по очереди предыдущие строки. После этого необходимо выйти из режима редактирования и ввести команду write, чтобы внесенные изменения были внесены в конфигурационный файл.

Кроме того, на всех маршрутизаторах в любом случае должно быть задано правило очистки (если они не препятствуют поступлению пакетов по умолчанию), которое имеет тот же смысл, что и приведенная ниже операция.

access-list 101 deny ip any any log!
Запрещение и регистрация любого пакета, удовлетворяющего приведенному списку ACL

Отслеживание маршрута


Более скрытый и изощренный метод поиска брандмауэров в сети заключается в использовании утилиты traceroute. Для поиска каждого сегмента пути к целевому узлу можно воспользоваться утилитой traceroute системы UNIX или аналогичной утилитой tracert.exe системы NT. Затем на основании полученной информации можно сделать некоторые логические предположения. В версии утилиты traceroute из системы Linux имеется параметр -I, при указании которого для поиска сегментов будут посылаться пакеты ICMP, а не UDP-пакеты, используемые по умолчанию.

[sm]$ traceroute -I 192.168.51.100
traceroute to 192.168.51.101 (192.168.51.100), 30 hops max, 40 byte
packets
1 attack-gw (192.168.50.21) 5.801 ms 5.105 ms 5.445 ms
2 gwl.smallisp.net (192.168.51.1)
3 gw2.smallisp.net (192.168.52.2)
13 hssi.bigisp.net (10.55.201.2)
14 seriall.bigisp.net (10.55.202.1)
15 192.168.51.101 (192.168.51.100)

Особого внимания заслуживает сегмент, предшествующий целевому узлу (10. 55.202 .1). Почти наверняка по этому адресу находится брандмауэр, однако для полной уверенности в этом необходимо выполнить некоторые дополнительные исследования.
Предыдущая команда предоставит большое количество информации, если маршрутизатор, расположенный между целевым сервером и компьютером взломщика, отвечает на пакеты, время жизни которых, определяемое значением TTL (Time-To-Live), истекло. Однако некоторые маршрутизаторы и брандмауэры настроены таким образом, что они не возвращают lCMP-пакеты в ответ на поступившие ICMP- и UDP-пакеты с истекшим временем TTL. Все, что в данном случае можно сделать, — это воспользоваться утилитой traceroute и посмотреть на последний сегмент полученного маршрута. Этот узел может оказаться полнофункциональным брандмауэром или, как минимум, первым маршутизатором пути, с которого началось блокирование пакетов с истекшим временем TTL. В приведенном ниже примере произошло блокирование передачи ICMP-пакетов источнику назначения. Как следствие, данные о маршрутизаторах, расположенных на пути к целевому узлу дальше маршрутизатора client-gw.smallisp.net, в полученной информации отсутствуют.

1 stoneface (192.168.10.33) 12.640 ms 8.367 ms
2 gwl.localisp.net (172.31.10.1) 214.582 ms 197.992 ms
3 gw2.localisp.net (172.31.10.2) 2C6.627 ms 38.931 ms
4 dsl.localisp.net (172.31.12.254) 47.167 ms 52.640 ms
14 ATM6.LAX2.BIGISP.NET (10.50.2.1) 250.030 ms 391.716 ms
15 ATM7.SDG.BIGISP.NET (10.50.2.5) 234.668 ms 384.525 ms
16 client~gw.smallisp.net (10.50.3.250) 244.065 ms!X * *
17 * * *
18 * * *

Контрмеры: защита от отслеживания маршрута


Для того чтобы предотвратить получение информации с помощью утилиты traceroute, запретите передачу ответных пакетов на пакеты с истекшим временем TTL на всех брандмауэрах и маршрутизаторах, на которых это возможно. Однако помните о том, что полностью решить этот вопрос можно далеко не всегда, поскольку многие маршрутизаторы могут оказаться под управлениям вашего провайдера услуг Internet.

Обнаружение


Попытки получения маршрутов с использованием стандартных средств можно выявить на границах сети в процессе мониторинга ICMP- и UDP-пакетов со значением TTL, равным 1. Это можно осуществить с помощью пакета RealSecure 3.0, выбрав имя TRACE_ ROUTE среди параметров безопасности Security Events политики Network Engine Policy.

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


Для того чтобы предотвратить возможность отслеживания маршрутов на границе сети, маршрутизаторы необходимо настроить таким образом, чтобы они не отправляли пакеты в ответ на сообщения с временем TTL, равным 0 или 1. На маршрутизаторах Cisco для этого можно воспользоваться следующим списком ACL. access-list 101 deny ip any any 11 0 ! Время ttl истекло
Однако лучше всего полностью заблокировать передачу пакетов UDP на пограничных маршрутизаторах.

Сбор маркеров


Сканирование портов позволяет определить местоположение брандмауэров, однако многие из них, подобно продуктам компаний Checkpoint и Microsoft, не прослушивают порты, установленные по умолчанию. Так что для подтверждения имеющихся сведений требуется получить дополнительные данные. В главе 3 подробно рассматривались методы получения имен запущенных приложений и их версий. Для этого необходимо подключиться к активным службам и извлечь связанные с ними идентификационные маркеры. Многие популярные брандмауэры предоставляют всю необходимую информацию сразу же после установки с ними соединения. Многие промежуточные узлы информируют злоумышленника о том, что они являются брандмауэрами, а некоторые из них дополнительно сообщают свой тип, а также версию. Например, при подключении с помощью утилиты netcat к порту 21 (FTP) узла, который, очевидно, является брандмауэром, можно получить некоторую важную информацию.

C:\>nc -v -n 192.168.51.129 21
(UNKNOWN) [192.168.51.129] 21 (?) open
220 Secure Gateway FTP server ready.

Сообщение Secure Gateway FTP server ready позволяет сделать вывод о том, что мы имеем дело со старым устройством Eagle Raptor. Последующее подключение к порту 23 (telnet) предоставляет еще одно доказательство этого предположения.

C:\>nc -v -n 192.168.51.129 23
(UNKNOWN) [192.168.51.129] 23 (?) open
Eagle Secure Gateway.
Hostname:

И наконец, если вы все еще не совсем уверены в том, что исследуемый узел является брандмауэром, можно подключиться с помощью утилиты netcat к порту 25 (SMTP). После этого все сомнения рассеются окончательно.

C:\>nc -v -n 192.168.51.129 25
(UNKNOWN) [192.168.51.129] 25 (?) open
421 fw3.acme.com Sorry, the firewall does not
provide mail service to you.

Как видно из приведенных примеров, в процессе идентификации брандмауэров чрезвычайно важной может оказаться информация о маркерах. После ее анализа можно воспользоваться хорошо известными изъянами или широко распространенными ошибками в настройке.

Контрмеры: защита от сбора маркеров


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

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


Для того чтобы предотвратить возможность сбора маркеров злоумышленником и, как следствие, получение им подробной информации о брандмауэре, можно изменить соответствующие конфигурационные файлы. Конкретные рекомендации зависят от типа брандмауэра. Например, для брандмауэров Eagle Raptor можно модифицировать маркеры FTP и telnet, изменив файлы сообщений с событиями дня (message-of-the day) ftp.motd и telnet.motd.