Всё может Firewall


Справка

Если заглянуть в англо-русский словарь, то можно обнаружить там, что слово firewall переводится как брандмауэр, что означает капитальную стену, разделяющую два смежных здания и препятствующую распространению возможного пожара. Когда в английской компьютерной терминологии появился термин "firewall", то переводчики просто воспользовались словарем, не обременяя себя анализом контекста. Так, в русской компьютерной лексике получил путевку в жизнь термин "брандмауэр". В связи с этим можно провести следующую аналогию: по-английски кремниевая пластина-заготовка для будущих микросхем называется wafer, что соответствует русскому слову вафля (её вид действительно напоминает вафли). Однако в русском языке прижилось адекватное английскому оригиналу словосочетание "кремниевая пластина". Тем не менее, в области сетевой безопасности широко используется термин "брандмауэер", несмотря на то, что корректным представляется термин "межсетевой экран". К тому же в немецком языке, из которого и было получено путём транслитерации слово "брандмауэр", используется термин "firewall", когда речь заходит о программном обеспечении, а не о пожарной безопасности. Впрочем, несмотря на вышесказанное, из соображений удобства в данной статье будут употребляться оба термина. Необходимо только помнить, что в обоих случаях речь идет о firewall.

Что только не называют брандмауэром! Под этим словом подразумевают и Proxy, и маршрутизатор, способный фильтровать пакеты, основываясь на IP-адресе отправителя, другими словами, любую систему, через которую проходит дорога в Интернет. Например, в некоторых FTP-клиентах можно встретить настройку "Подключение через Firewall", хотя, как правило, подразумевается FTP Proxy.

Чтобы разобраться, что же следует называть брандмауэром, сначала обратимся к истории. Вероятно, такая путаница возникла исторически. Первоначально подключение локальной сети к Интернету подразумевало назначение уникальных IP-адресов всем находящимся в ней узлам. Таким образом, они становились участниками сети глобальной и получали возможность выхода в неё через обычный маршрутизатор. В наше время практически нереально получить от провайдера некоторое пространство разрешённых к использованию в Интернете IP-адресов для того, чтобы назначить их всем компьютерам локальной сети. Поэтому обычной практикой стало использование зарезервированных для локальных сетей IP-адресов (10.x.x.x, 172.16.x.x-172.32.x.x и 192.168.x.x - для краткости будем называть их "нелегальными") и получение у провайдера одного "легального" адреса, единственного, с которого возможен непосредственный выход в Интернет. Очевидно, что предоставление коллективного доступа в Сеть с одного IP-адреса не входит в функции маршрутизатора. Эта задача возлагается на специальное программное обеспечение - Proxy, которое может работать на различных аппаратных платформах, в том числе и на базе какого-либо интеллектуального маршрутизатора. Поскольку при такой схеме невозможно из Интернета непосредственно обратиться к узлам, находящимся внутри сети, то на такое программное обеспечение стали вешать ярлык "Firewall". Между тем, брандмауэр может и должен служить шлюзом и на пути из Интернета в сеть с легальными адресами, так как её значительно проще атаковать. Таким образом, вне зависимости от того, осуществляется ли доступ во внешнюю сеть (читай Internet) через сертифицированный по стандарту C2 IBM Firewall for AIX или через доморощенный WinGate, пользователи утверждают, что они находятся за Firewall. Чтобы выяснить, насколько корректны такие утверждения, рассмотрим основные технологии, связанные с выходом из локальной сети в Internet.


Proxy

Строго говоря, основная задача брандмауэра - это анализ трафика "на лету" и фильтрация его по заданным правилам, а все остальные возможности опциональны. В свою очередь, Proxy можно перевести как "посредник" или "уполномоченный". Остановимся на наиболее распространенных видах Proxy-серверов.

NAT (Network Address Translation - трансляция адресов) или IP masquearading в терминологии Linux - для локальной сети такой Proxy выглядит как обычный маршрутизатор, но подменяет адрес отправителя в заголовках IP-пакетов, предназначенных для внешней сети, подставляя легальный адрес. Однако нетрудно заметить, что такой подмены явно недостаточно. На самом деле: если два узла внутренней сети посылают пакеты одному и тому же хосту в Интернет, и сервер-посредник честно подменил в них адреса отправителей на один и тот же легальный адрес, то нет никакой возможности разобраться в ответном потоке пакетов, так как все они будут содержать одинаковый адрес получателя. Таким образом, необходима дополнительная информация, идентифицирующая каждый пакет. В заголовке IP-пакета таковая отсутствует, поэтому NAT-Proxy вынужден анализировать заголовки пакетов протоколов TCP, UDP, ICMP и т.д., упакованных в IP. Очевидным достоинством механизма трансляции адресов является прозрачность использования - не требуется специфических настроек сетевых программ (они воспринимают NAT Proxy как обычный маршрутизатор).

SOCKS - посредник, работающий на уровне пакетов UDP- или TCP-соединения, может сам преобразовывать доменные имена в адреса, поддерживает SSL, но клиент должен иметь соответствующую настройку для работы через такой сервер. В Win9x/NT программы, не умеющие "ходить" через SOCKS, можно попробовать обмануть с помощью программы SocksCap32 (www. socks.nec.com, там же можно найти бесплатные SOCKS-серверы под различные платформы). В OS/2 стек TCP/IP имеет соответствующую настройку для работы через SOCKS, поэтому не требуется настройка каждой программы и достигается "прозрачность" подключения, сравнимая с трансляцией адресов.

FTP/HTTP - посредники уровня приложений. Как и в случае с SOCKS, клиент должен уметь работать через такого посредника. Основное их достоинство - это способность кэшировать принятые данные, что позволяет более эффективно использовать канал и уменьшить время ожидания загрузки.

Существует также множество менее распространённых серверов-посредников других типов, работающих на прикладном уровне, и некоторые специфические сервисы наподобие mapped link.

Рассмотрев принципы работы Proxy, мы неизбежно приходим к выводу: Proxy-сервер не решает вопросов безопасности, его задача - обеспечить работу множества клиентов с одного легального адреса. О защите можно говорить лишь при использовании серверов-посредников в локальной сети, состоящей из узлов с легальными адресами, однако и в этом случае устройством, обеспечивающим минимальную безопасность, с большим основанием можно назвать маршрутизатор, поскольку он скрывает от внешнего мира структуру сети, но никак не Proxy.


Межсетевые фильтры

Специалист может возразить: на связку Proxy+маршрутизатор никто и не рассчитывал, но чем плохи встроенные брандмауэры, поставляемые с большинством разновидностей Unix и с OS/2? Интегрированные в стек многих операционных систем и в некоторые аппаратные маршрутизаторы брандмауэры более уместно называть межсетевыми фильтрами. Несмотря на то, что их назначение - обеспечивать безопасность локальной сети совпадает с назначением брандмауэров, функциональные возможности интегрированных межсетевых фильтров составляют незначительное подмножество возможностей специализированных продуктов. Как правило, функции межсетевых фильтров ограничиваются некоторыми антиспуфинговыми мерами, способностью сохранять работоспособность при SYN-flood-атаке из семейства Denial of Service и фильтрацией пакетов по простейшим критериям. Другими словами, межсетевой фильтр представляет собой некую статичную систему. Рассмотрим неспособность межсетевых фильтров противостоять атаке из Интернета на следующем примере.

В локальной сети, защищённой от Интернет межсетевым фильтром, находится DNS-сервер компании, к которому направляются запросы локальных систем. Локальный сервер имён, в свою очередь, должен иметь возможность посылать запросы и принимать ответы внешних DNS-серверов. Злоумышленник может обрушить на DNS-сервер компании шторм UDP-пакетов, содержащих ответы на запросы IP-адресов, соответствующих доменным именам часто посещаемых серверов, например, www.microsoft.com. Безусловно, сервер имён не настолько глуп, чтобы принимать ответы от посторонних отправителей, поэтому атакующий должен воспользоваться подменой IP-адреса реального отправителя в заголовке IP-пакета на адрес сервера имён верхнего уровня. Таким образом, как только пользователь наберет www.microsoft.com, браузер обратится к серверу имен за IP-адресом и получит фальшивый адрес, подготовленный злоумышленником. Казалось бы, кроме неудобств, такая атака ничего принести не может, однако это не так. Заманив пользователя на подложный сайт, атакующий может использовать какую-либо из дыр в безопасности браузера, а может и нагло подставить окошко с требованием ввести пароль доступа в локальную систему в расчёте на доверчивого пользователя.

Впрочем, вернемся к вопросу о UDP-шторме. Защититься от подобных атак можно с помощью брандмауэра, который тем и отличается от фильтров пакетов, что способен анализировать весь информационный процесс от транспортного до прикладного уровня. Firewall знает о том, что DNS-запрос не отправлялся, поэтому DNS-ответа быть не может. Кроме того, что фильтр пакетов может знать о троянцах, вирусах, деструктивных Java-апплетах, модулях ActiveX и так далее?


FireWall

Итак, выяснив, что ни фильтры пакетов, ни тем более Proxy не обеспечивают комплексного решения проблем безопасности, рассмотрим возможности, которыми должен обладать полноценный брандмауэр. Теоритически брандмауэр может не предоставлять никакого proxy-сервиса и не фильтровать пакеты, основываясь на адресах, протоколах или номерах портов. Он может быть абсолютно прозрачен для защищаемой сети, но при этом будет жестко контролировать поток данных, выявлять и подавлять возможные атаки или блокировать загрузку вирусов и других вредоносных исполняемых модулей. На практике целесообразность использования брадмауэра без какого-либо proxy-сервиса вызывает большие сомнения, так как сервер-посредник позволяет скрыть внутреннюю структуру сети и, тем самым, сильно осложнить жизнь злоумышленнику. Именно поэтому в брандмауэры всё-таки включают механизм NAT, поддерживающий статическую и динамическую трансляцию адресов.

Кроме адресов, используемых для трансляции, брандмауэр имеет и собственный адрес (адреса). Поэтому злоумышленник может атаковать непосредственно брандмауэр, а не защищаемую сеть. Однако такую атаку делают практически невозможной механизмы Stealth и Antispoofing. Механизм Stealth делает брандмауэр невидимым. Это означает, что брандмауэр не отвечает на пакеты, адресованные непосредственно ему, что не мешает, однако, осуществлять маршрутизацию и трансляцию пакетов.

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


Выводы

К сожалению, оба известных мне продукта - InJoy Firewall (F/X Comunications) и SafeFire Firewall (Link Guard Solutions Ltd.), - именуемых брандмауэрами для OS/2, таковыми не являются (если принять предложенные выше определения), поскольку представляют собой межсетевой фильтр и NAT-proxy в одном флаконе и не умеют анализировать трафик. Однако построенные на их основе шлюзы в Интернете, безусловно, обеспечат большую защищённость и производительность, чем поделки наподобие WinRoute, WinProxy и им подобные. К тому же стоимость продуктов, способных анализировать трафик, измеряется тысячами долларов.

Безопасность начинается там, где заканчивается Microsoft.

Степан ТРУБАЧЕВ

Версия для печатиВерсия для печати

Номер: 

36 за 1999 год

Рубрика: 

Защита информации
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!