Как работает брандмауэр nezumi Спецвыпуск: Хакер, номер #058, стр. 058-066-8 Некоторые брандмауэры не просто фильтруют пакеты по критериям портов или IP-адресов, но еще и проверяют их на соответствие стандартам RFC или анализируют содержимое на предмет наличия червей или использования тех или иных уязвимостей клиентских приложений. Для неискушенного пользователя звучит заманчиво, но в действительности все это полная чушь. Начнем со стандартов. Их много хороших и разных, а разночтений в стандартах еще больше. Поэтому нельзя с уверенностью сказать, соответствует ли конкретно взятый пакет стандарту. Большинство атак реализуется вполне стандартными TCP/IP-пакетами, и задача брандмауэра состоит не в соблюдении стандарта, а в его нарушении. Например, при уничтожении пакета с истекшим сроком жизни каждый узел обязан отправить специальное уведомление, дескать, ваша депеша сдохла в дороге, поэтому не взыщите. Утилита trace route именно так и работает. Она отправляет множество пакетов с различным сроком жизни, а потом собирает уведомления, поступающие ото всех транзитных узлов, что позволяет реконструировать топологию сети. Чтобы воспрепятствовать этому, брандмауэр должен нарушить стандарт и задержать уведомление о смерти! Теперь перейдем к червям и уязвимостям. Очевидно, что предвидеть сигнатуры еще не известных червей никакой брандмауэр не в силах, и поэтому его необходимо периодически обновлять. А раз так, то не лучше ли установить заплатку на программное обеспечение и заткнуть дыру, через которую лезут черви? Пользователь либо апдейтится, либо нет. Если он апдейтится, то такой брандмауэр ему не нужен, а если не апдейтится - тут уже ничего не поможет. В общем, получается замкнутый круг. К тому же проверку содержимого пакетов невозможно осуществить на IP-уровне, и брандмауэру все-таки придется поднапрячься и собрать весь TCP, про сложность которого мы уже говорили. Само сканирование также потребует некоторого времени и процессорных ресурсов (особенно если червь упакован полиморфным упаковщиком), а про эвристические анализаторы мы вообще молчим. Проверять содержимое пакетов на модемном соединении еще реально, но на быстрых каналах это труба. Сказанное - вовсе не повод для отказа от брандмауэров. Они, безусловно, нужны, но не стоит поручать им те функции, с которыми они не в состоянии справиться. Никто же не стремится превратить подводную лодку в вертолет :). И даже если такой агрегат все-таки будет создан, его технические характеристики будут явно не на высоте: подлодка требует большой плотности и прочности (иначе как прикажете опускаться на глубину?), а вертолет обязан максимально облегчить свой вес. Вот так и брандмауэры. Уязвимые порты затыкаются заплатками. Пакетный фильтр скрывает приватные узлы локальной сети от "внешнего мира". Антивирусы ловят агрессивно настроенные программы. Каждый занят своим делом, и никто не пытается залезть в одну штанину двумя ногами. |