Иллюстрированный самоучитель по Secure Web


Война с брандмауэрами - часть 3


Утилита firewalk


Утилита firewalk является небольшим прекрасным средством, которое, подобно программам-сканнерам, позволяет исследовать порты узлов, расположенных позади брандмауэра. Она написана Майком Шифманом (Mike Schiffman) и Дэйвом Гольдсмитом (Dave Goldsmith). С помощью этой утилиты можно просканировать такие узлы и получить установленные на них правила. Причем вся процедура выполняется без реального "прикосновения" к целевой системе.

Утилита firewalk генерирует IP-пакеты с параметром TTL, который вычисляется так, чтобы время жизни пакета истекло в следующем за брандмауэром сегменте маршрута. Теоретические предпосылки такого подхода заключаются в том, что если пакет пропускается брандмауэром, то по истечении времени его жизни будет получено сообщение ICMP TTL, expired in transit (время жизни истекло в процессе передачи). В то же время, если пакет блокируется на основании заданного списка ACL брандмауэра, то этот пакет будет отвергнут. В результате либо вообще не будет получено никакого ответного сообщения, либо будет получен ICMP-пакет с типом 13.

[root]# firewalk -pTCP -S135-140 10.22.3.1

192.168.1.1

Ramping up hopcounts to binding host...

probe: 1 TTL: 1 port 33434: expired from [exposed.acme.com]

probe: 2 TTL: 2 port 33434: expired from [rtr.isp.net]

probe: 3 TTL: 3 port 33434: Bound scan at 3 hops [rtr.isp.net]

port 135: open

port 136: open

port 137: open

port 138: open

port 139: *

port 140: open

Относительно утилиты firewalk необходимо упомянуть об одной проблеме, которая заключается в том, что ее результаты могут оказаться непредсказуемыми. Некоторые брандмауэры способны выявить истечение времени жизни пакета до проверки своего списка ACL, что приводит к передаче ответного ICMP-сообшения TTL EXPIRED в любом случае. В результате утилитой firewalk все порты будут считаться открытыми.

Контрмеры: защита от утилиты firewalk


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


На уровне внешнего интерфейса можно заблокировать передачу ICMP-пакетов TTL EXPIRED, однако это может отрицательно сказаться на производительности, поскольку легитимные клиенты никогда не смогут узнать, что же произошло с их соединением.



Начало  Назад  Вперед



Книжный магазин