Всё может 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.

Stepan Trubachev


Новые статьи на нашем сайте:


Комментариев к странице: 0 | Добавить комментарий
Домой | Проект ядро Core/2 | Проект OS/4 Download | Новости | Гостевая книга | Подробно обо всем | Нужные программы | Проекты | OS/2 FAQ | Всячина | За и Против | Металлолом | #OS2Russian | RDM/2 | Весёлые картинки | Наша галерея | Доска объявлений | Карта сайта | ПОИСК | ФОРУМ