Лекция 10. Межсетевые экраны
Важное место в списке средств обеспечения безопасного подключения к Internet занимают межсетевые экраны (часто называемые брандмауэрами, или, по-английски, firewall).
Межсетевыми экранами (МЭ) называют средства защиты, устанавливаемые между общедоступной сетью (такой, как Internet) и внутренней сетью. Межсетевой экран выполняет двойную функцию:
- Во-первых, ограничивает доступ во внутреннюю сеть со стороны общедоступной сети за счет применения фильтров и средств аутентификации, чтобы злоумышленники не могли получить несанкционированный доступ к информации или нарушить нормальную работу сетевой инфраструктуры.
- Во-вторых, служит для контроля и регулирования доступа пользователей внутренней сети к ресурсам общедоступной сети, когда те представляют угрозу безопасности или отвлекают сотрудников от работы (социальные сети, игровые, спортивные серверы).
Сетевые экраны устанавливают и внутри корпоративных сетей, в целях ограничения доступа пользователей к особо важным ресурсам сети, например к серверам, содержащим финансовую информацию или сведения, относящиеся к коммерческой тайне. Существуют также персональные межсетевые экраны, призванные регулировать доступ к отдельным компьютерам и устанавливаемые на эти компьютеры.
Все экраны по способу их реализации можно разделить на несколько групп:
- аппаратные сетевые экраны, включающие в себя:
- предустановленные на специальные компьютеры;
- встроенные в маршрутизаторы;
- программные межсетевые экраны, которые устанавливаются поверх стандартных операционных систем.
Аппаратные экраны более надежны, поставляются уже установленными и настроенными, но они более дорогие. Программные экраны дешевле, но представляют собой набор, который требует от администратора общих знаний об информационной безопасности.
Межсетевой экран включает в себя фильтр пакетов. Эта служба может быть как встроенной в ядро операционной системы, на которой работает экран, так и устанавливаемой отдельно.
Фильтр пакетов осуществляет работу с трафиком на низком уровне, определяя, пропустить или задержать пакет в зависимости от адреса его отправителя, получателя или TCP-службы. Это позволяет закрывать отдельные "подозрительные" адреса, с которых возможна атака, либо фильтровать обращения из внешней сети к конфиденциальным службам.
Фильтр эффективен против простейших случаев атак и не может спасти от взлома, при котором проводится подмена IP-адреса. В этом случае производится маскировка атакующего под доверенный хост, - и фильтр пакетов доверчиво работает со взломщиком. Кроме того, фильтр прозрачен для различного рода некорректных пакетов, направляемых клиенту, поскольку не проверяет их содержимое.
Для организации виртуальных частных сетей в межсетевых экранах используются средства канального шифрования. Эта служба зашифровывает трафик при передаче через Интернет. На приемной стороне трафик расшифровывается и вводится в локальную сеть филиала предприятия. Люди, работающие в разных офисах, могут даже не замечать, что их компьютеры располагаются в сетях, удаленных друг от друга. Для сохранения конфиденциальности информации используются специальные шифры, которые не позволяют анализировать трафик, передаваемый по открытому сегменту виртуальной частной сети. Эта функция популярна среди компаний, имеющих сеть филиалов в разных городах.
Межсетевые экраны могут опираться на один из двух взаимоисключающих принципов обработки поступающих пакетов данных.
- «Что явно не запрещено, то разрешено». Т. е. если МЭ получил пакет, не подпадающий ни под одно из принятых ограничений или не идентифицированный правилами обработки, то он передается далее.
- «Что явно не разрешено, то запрещено» — гарантирует бОльшую защищенность, но оборачивается дополнительной нагрузкой на администратора. В этом случае внутренняя сеть изначально полностью недоступна, и администратор вручную устанавливает разрешенные при обмене данными с общедоступной сетью сетевые адреса, протоколы, службы и операции.
Правила обработки информации во многих межсетевых экранах экспертного класса могут иметь многоуровневую иерархическую структуру. Например, они могут позволять задать такую схему: «Все компьютеры локальной сети недоступны извне, за исключением доступа к серверу A по протоколу ftp и к серверу B по протоколу telnet, однако при этом запрещен доступ к серверу A с операцией PUT сервиса ftp».
Межсетевые экраны могут выполнять над поступающими пакетами данных одну из двух операций: пропустить пакет далее (allow) или отбросить пакет (deny). Некоторые МЭ имеют еще одну операцию — reject, при которой пакет отбрасывается, но отправителю сообщается по протоколу ICMP о недоступности сервиса на компьютере-получателе информации. В противовес этому при операции deny отправитель не информируется о недоступности сервиса, что является более безопасным.
Поддерживаемый уровень сетевой модели OSI является основной характеристикой при классификации межсетевых экранов. Различают следующие типы межсетевых экранов:
- управляемые коммутаторы (канальный уровень);
- сетевые фильтры (сетевой уровень);
- шлюзы сеансового уровня (circuit-level proxy);
- посредники прикладного уровня;
- инспекторы состояния (stateful inspection), представляющие собой межсетевые экраны сеансового уровня с расширенными возможностями.
Коммутаторы
Коммутаторы среднего и старшего уровня позволяют привязывать MAC-адреса сетевых карт компьютеров к определенным портам коммутатора. Немало коммутаторов предоставляет возможность фильтрации информации на основе адреса сетевой платы отправителя или получателя, создавая при этом виртуальные сети (VLAN). Другие коммутаторы позволяют организовать VLAN на уровне портов самого коммутатора. Таким образом, коммутатор может выступать в качестве межсетевого экрана канального уровня.
Однако, подделать адрес сетевой платы обычно не составляет труда (многие платы Ethernet позволяют программно менять или добавлять адреса канального уровня), и такой подход к защите является недостаточно надежным.
Сетевые фильтры
Сетевые фильтры работают на сетевом уровне иерархии OSI (см. Рис. 1). Сетевой фильтр представляет собой маршрутизатор, обрабатывающий пакеты на основании информации, содержащейся в заголовках пакетов. Сетевые фильтры существуют для сетей TCP/IP и IPX/SPX.
При обработке пакетов ими учитывается следующая информация:
- IP-адрес отправителя;
- IP-адрес получателя;
- протокол (TCP, UDP, ICMP);
- номер программного порта отправителя;
- номер программного порта получателя.
Администратор на основе этой информации задает правила, в соответствии с которыми пакеты будут либо пропускаться через фильтр, либо отбрасываться им. Сетевой фильтр позволяет реализовать различные схемы обмена данными между компьютерами корпоративной сети и Internet.
Примеры схем обмена данными:
- все компьютеры корпоративной сети имеют возможность общаться с внешними серверами Web и ftp, но не с telnet, NNTP и т. д.;
- доступ извне запрещен ко всем компьютерам корпоративной сети, кроме доступа к серверу A по протоколу HTTP и к серверу B по протоколу ftp; кроме того, внешнему компьютеру Z разрешается доступ к внутреннему серверу C и к любым службам TCP и UDP, но не ICMP.
Рис. 1. Общая схема работы сетевых фильтров
Сетевые фильтры очень легко реализовать, поэтому они получили повсеместное распространение и представлены программно-аппаратными и чисто программными реализациями. В частности, маршрутизаторы некоторых производителей снабжены функциями сетевой фильтрации. Большинство программных сетевых фильтров представляет собой бесплатные или условно-бесплатные утилиты.
В сетевых фильтрах в основном используется статическая фильтрация, когда администратору приходится создавать свой фильтр для каждого уникального типа пакета, требующего обработки. Рассмотрим это на примере. Допустим, всем компьютерам по умолчанию запрещен доступ в Internet. Однако компьютеру Z (IP-адрес 123.45.67.89) необходим доступ к внешнему серверу A (IP-адрес 211.111.111.111), предоставляющему сервис telnet. В данном случае администратор должен задать два правила:
- пропустить пакет, если он передается со стороны сетевого интерфейса внутренней сети на сетевой интерфейс внешней сети и имеет параметры: IP-адрес отправителя 123.45.67.89, IP-адрес получателя 211.111.111.111, протокол транспортного уровня TCP, программный порт отправителя больше 6000, программный порт получателя 23;
- пропустить пакет, если он передается со стороны сетевого интерфейса внешней сети на сетевой интерфейс внутренней сети и имеет параметры: IP-адрес отправителя 211.111.111.111, IP-адрес получателя 123.45.67.89, протокол транспортного уровня TCP, программный порт отправителя 23, программный порт получателя более 6000.
Таким образом, для каждого канала обмена данными необходимо задавать два правила (фильтра); в случае многоканальных соединений (например, для сервиса ftp) количество правил соответственно увеличивается. Для большой сети список правил достигает очень внушительных размеров.
Поскольку при получении каждого пакета сетевой фильтр просматривает таблицу правил в последовательном порядке, каждое новое правило уменьшает общую производительность маршрутизатора.
Сетевые фильтры имеют ряд недостатков, таких как:
- сложность их администрирования
- слабая защищенность от атак.
Прежде всего, идентификация отправителя производится только на основании IP-адреса. Однако с помощью подмены IP-адресов (IP-spoofing) злоумышленник без особых усилий может обойти такую преграду. Кроме того, за уполномоченный компьютер может в принципе сесть человек, не имеющий права работать с сервером.
Сетевой фильтр не может отслеживать работу сетевых приложений, и вообще он не контролирует содержимое пакетов транспортного, сеансового и прикладного уровня. Поэтому наличие сетевого фильтра не оградит корпоративную сеть от атак по типу SYN-flooding, от атак, связанных с фрагментацией пакетов, и от вторжений через сервисы прикладного уровня.
Основным (помимо цены и простоты реализации) достоинством сетевых фильтров является их очень высокая производительность, более высокая, чем у межсетевых экранов сеансового и прикладного уровня. Несмотря на серьезные недостатки, сетевой фильтр является неотъемлемой частью любого межсетевого экрана экспертного класса. Однако он представляет собой всего лишь одну из его составных частей, поскольку работает в сочетании со шлюзом более высокого уровня иерархии OSI. В такой схеме сетевой фильтр препятствует прямому общению между внутренней и внешней сетью (кроме заранее определенных компьютеров). Вся же основная фильтрация, но уже на вышестоящих уровнях OSI, организуется шлюзом соответствующего уровня или инспектором состояния.
Шлюзы сеансового уровня
Шлюзы сеансового уровня, оперируют на сеансовом уровне иерархии OSI. Однако в сетевой модели TCP/IP нет уровня, однозначно соответствующего сеансовому уровню OSI. Поэтому к шлюзам сеансового уровня относят фильтры, которые невозможно отождествить ни с сетевым, ни с транспортным, ни с прикладным уровнем.
Фильтры контроля состояния сеанса связи
К фильтрам контроля состояния канала связи относят сетевые фильтры (сетевой уровень) с расширенными возможностями.
Динамическая фильтрация в сетевых фильтрах. В отличие от стандартной статической фильтрации в сетевых фильтрах, динамическая (stateful) фильтрация позволяет вместо нескольких правил фильтрации для каждого канала связи назначать только одно правило. При этом динамический фильтр сам отслеживает последовательность обмена пакетами данных между клиентом и сервером, включая IP-адреса, протокол транспортного уровня, номера портов отправителя и получателя, а иногда и порядковые номера пакетов. Такая фильтрация требует дополнительной оперативной памяти. По производительности динамический фильтр несколько уступает статическому фильтру.
Фильтр фрагментированных пакетов. При передаче через сети с различными MTU IP-пакеты могут разбиваться на отдельные фрагменты, причем только первый фрагмент всегда содержит полный заголовок пакета транспортного уровня, включая информацию о программных портах. Обычные сетевые фильтры не в состоянии проверять фрагменты, кроме первого, и пропускают их (при выполнении критериев по IP-адресам и используемому протоколу). За счет этого злоумышленники могут организовать опасные атаки по типу «отказ в обслуживании», преднамеренно генерируя большое количество фрагментов и тем самым блокируя работу компьютера-получателя пакетов. Фильтр фрагментированных пакетов не пропускает фрагменты, если первый из них не пройдет регистрации.
Контроль битов SYN и ACK. Ряд фильтров позволяет отслеживать биты SYN и ACK в пакетах TCP. Все они призваны бороться с атаками по типу SYN-flooding, но используют различные подходы. Самый простой фильтр запрещает передачу TCP-пакетов с битом SYN, но без бита ACK со стороны общедоступной сети на компьютеры внутренней сети, если последние не были явно объявлены серверами для внешней сети (или хотя бы для определенной группы компьютеров внешней сети). К сожалению, такой фильтр не спасает при атаках SYN-flooding на машины, являющиеся серверами для внешней сети, но расположенные во внутренней сети.
Для этих целей применяют специализированные фильтры с многоступенчатым порядком установления соединений. Например, один из таких фильтров работает следующим образом.
Допустим, внешний компьютер Z пытается установить соединение с внутренним сервером A через межсетевой экран МЭ. Процедура установления соединения показана на Рис. 2 и состоит из следующих этапов:
(этап 1) МЭ получает пакет SYN от компьютера Z
(этап 2) этот пакет передается на сервер A
(этап 3) В ответ сервер A передает пакет SYN/ACK на компьютер Z, но МЭ его перехватывает
(этап 4) МЭ пересылает полученный пакет на компьютер Z, кроме того, МЭ от имени компьютера Z посылает пакет ACK на сервер A
(этап 5a) компьютер Z перешлет пакет ACK серверу A, который проходит через МЭ
(этап 5б) Если же МЭ не получит пакета ACK или кончится тайм-аут на установление соединения, то он вышлет в адрес сервера A пакет RST, отменяющий соединение
Рис. 2. Контроль битов SYN и ACK.
Шлюзы, транслирующие адреса или сетевые протоколы
Самым известным шлюзом сеансового уровня можно считать шлюз с преобразованием IP-адресов (Network Address Translation, NAT). При использовании шлюза NAT внутренняя сеть имеет адреса, невидимые (и даже незарегистрированные) в общедоступной сети. При обращении внутреннего компьютера наружу шлюз перехватывает запрос и выступает от имени клиента, задействуя свой внешний (зарегистрированный) IP-адрес. Полученный ответ шлюз передает внутреннему компьютеру (после подстановки внутреннего адреса компьютера), выступая в качестве передаточного звена. Это позволяет убить сразу двух зайцев: резко сократить количество зарегистрированных IP-адресов и контролировать поток информации, т. е. назначать или запрещать доступ в Internet отдельным компьютерам.
Шлюзы NAT могут работать в одном из четырех режимов:
- динамическом;
- статическом;
- статическом с динамической выборкой IP-адресов;
- комбинированном.
При динамическом режиме, иногда называемом трансляцией на уровне портов (Port Address Translation, PAT), шлюз имеет один-единственный внешний IP-адрес. Все обращения в общедоступную сеть (Internet) со стороны клиентов внутренней сети осуществляются с использованием этого внешнего адреса, при этом шлюз оперирует лишь портами внешнего интерфейса, т.е. при обращении клиента шлюз выделяет ему уникальный программный порт транспортного протокола (UDP, TCP) для внешнего IP-адреса. В распоряжении шлюза NAT могут иметься пулы до 64 000 портов TCP, 64 000 портов UDP и 64 000 портов ICMP (в протоколе ICMP термин «порт» не применяется, но разработчики шлюзов используют его, чтобы подчеркнуть принцип трансляции пакетов), хотя в некоторых реализациях емкость пулов может быть много меньше этих величин, например в Novell BorderManager каждый пул содержит по 5000 портов.
Динамический режим предназначен для сетей, компьютеры которых выступают исключительно в качестве клиентов ресурсов Internet.
При статическом режиме внешнему интерфейсу шлюза назначается столько зарегистрированных IP-адресов, сколько компьютеров имеется во внутренней сети. Каждому компьютеру внутренней сети ставится в соответствие уникальный внешний IP-адрес шлюза. При обмене данными между внутренней и общедоступной сетями шлюз транслирует внутренние IP-адреса во внешние и наоборот. Статический режим необходим, если компьютеры внутренней сети работают в качестве серверов Internet.
Статический режим с динамической выборкой IP-адресов аналогичен статическому, за исключением того, что за внутренними компьютерами не закрепляются заранее (статически) определенные внешние IP-адреса, они резервируются динамически из пула внешних IP-адресов.
Комбинированный режим подразумевает одновременное использование сразу нескольких вышеперечисленных режимов и предназначен для сетей, где имеются как клиенты, так и серверы Internet.
Шлюзы NAT имеют специфический недостаток: они не поддерживают сетевые приложения, пакеты прикладного уровня которых содержат IP-адреса. Единственным исключением является сервис ftp, для которого большинство шлюзов NAT умеет контролировать (и изменять) IP-адреса внутри пакетов прикладного уровня.
Вторым недостатком шлюзов NAT можно назвать то, что они не поддерживают аутентификацию на уровне пользователей, а только на уровне IP-адресов, что делает их уязвимыми для атак по типу IP-spoofing. Кроме того, шлюзы NAT не могут предотвратить атаки типа «отказ в обслуживании», в частности SYN-flooding, поэтому их имеет смысл применять только совместно с другими типами шлюзов сеансового и/или прикладного уровней.
Общие недостатки шлюзов сеансового уровня.
Основным недостатком шлюзов сеансового уровня следует назвать невозможность регулирования передачи информации на прикладном уровне и, как следствие, отслеживания некорректных или потенциально опасных действий пользователя. Например, они не позволят контролировать выполнение команды PUT сервиса ftp или отфильтровывать приложения ActiveX со стороны внешних машин, если такая операция допустима для внутренних клиентов.
За исключением шлюза IPX/IP и посредника SOCKS 5, все остальные фильтры имеют крайне ненадежную систему идентификации и аутентификации, основанную на IP-адресах отправителя/получателя. В свою очередь, применение шлюзов IPX/IP и SOCKS 5 требует установки на клиентские машины специализированного ПО.
За исключением шлюзов IPX/IP и SOCKS 5, другие шлюзы сеансового уровня обычно не поставляются в виде коммерческого продукта.
Посредники прикладного уровня.
Посредники прикладного уровня (application-level proxy), часто называемые proxy-серверами, контролируют и фильтруют информацию на прикладном уровне иерархии OSI (см. Рисунок 3). Посредники различают по поддерживаемым протоколам прикладного уровня: чем их больше, тем дороже продукт. Наиболее часто поддерживаются службы Web (HTTP), ftp, SMTP, POP3/IMAP, NNTP, Gopher, telnet, DNS, RealAudio/RealVideo. Когда клиент внутренней сети обращается, например, к серверу Web, то его запрос попадает к посреднику Web (или перехватывается им). Последний устанавливает связь с сервером от имени клиента, а полученную информацию передает клиенту. Для внешнего сервера посредник выступает в качестве клиента, а для внутреннего клиента — в качестве сервера Web. Аналогично посредник может работать и в случае внешнего клиента и внутреннего сервера.
Рис. 3. Посредники прикладного уровня оперируют на прикладном уровне
Посредники прикладного уровня делятся на прозрачные (transparent) и непрозрачные. Прозрачные посредники невидимы для клиентов и серверов: клиент обращается к серверу самым обычным образом, а посредник перехватывает запрос и действует от лица клиента. Особой популярностью пользуются прозрачные посредники для сервиса Web, их нередко устанавливают провайдеры Internet в целях повышения производительности работы и снижения нагрузки на глобальные каналы связи за счет кэширования информации.
В случае непрозрачных посредников клиентскую систему требуется явным образом настроить на работу с посредником (например, при использовании непрозрачного посредника Web в опциях настройки браузеров необходимо указать IP-адрес посредника и присвоенный ему порт TCP). Непрозрачные посредники хороши там, где требуется строгая аутентификация при входе во внутреннюю сеть или на выходе из нее, особенно для служб, не поддерживающих шифрование паролей.
Общим недостатком непрозрачных посредников является их «непрозрачность» для клиентского ПО и пользователей. Далеко не всякие клиентские программы можно настроить, например, на непрозрачные посредники SMTP, POP3, IMAP4, DNS, ftp.
В отличие от шлюзов сеансового уровня посредники прикладного уровня обрабатывают только те пакеты данных прикладного уровня, службы которых ими поддерживаются, а пакеты неизвестных (для посредника) или не сконфигурированных протоколов удаляются из обращения. Например, если посредник настроен только на обслуживание сервиса ftp, то он не пропустит пакеты telnet или HTTP.
Посредники прикладного уровня в обязательном порядке поддерживают строгую аутентификацию с помощью либо операционной системы или одной из служб каталогов (доменов) NDS, Windows NT, NIS/NIS+, либо систем RADIUS, TACACS и т. д.
Оборотной стороной названных возможностей посредников прикладного уровня является их невысокая производительность (для тех сетевых служб, где не предусматривается кэширование информации)
Инспекторы состояния
Инспекторы состояния, или иначе брандмауэры с контекстной проверкой (stateful inspection firewall), являются шлюзами сеансового уровня с расширенными возможностями. Термин «инспектор состояния» был введен компанией Check Point, дабы подчеркнуть отличие ее технологии от других, применяемых в межсетевых экранах. Инспекторы состояния оперируют на сеансовом уровне, но «понимают» и протоколы прикладного уровня (см. Рисунок 4). Т. е. при получении пакета данных содержимое этого пакета сравнивается с некими шаблонами, специфическими для соответствующего протокола прикладного уровня. И в зависимости от результата сравнения, пакет либо передается далее, либо отбрасывается. Чем мощнее инспектор состояния, тем больший список шаблонов он имеет. Если пакет не соответствует ни одному шаблону, то он будет отсеян.
Рис. 4. Инспектор состояния оперирует на сеансовом уровне, но анализирует пакеты
вышестоящих уровней.
В отличие от посредника прикладного уровня, открывающего два виртуальных канала TCP (один — для клиента, другой — для сервера) для каждого соединения, инспектор состояния не препятствует организации прямого соединения между клиентом и сервером. За счет этого производительность инспектора состояния оказывается много выше производительности посредников прикладного уровня и приближается к производительности сетевых фильтров.
Единственным достоинством инспекторов состояния (не затрагивая вопрос производительности) по сравнению с посредниками прикладного уровня является то, что инспектор состояния абсолютно прозрачен для клиентов и не требует дополнительной настройки клиентского ПО. Однако, в свою очередь, классические инспекторы состояния не годятся для кэширования Web. Поэтому даже если межсетевой экран основан на инспекторе состояния, для кэширования Web в него включают посредник Web прикладного уровня.
Другие возможности межсетевых экранов.
Помимо выполнения своих основных функций, межсетевые экраны экспертного класса имеют хорошо продуманную систему протоколирования событий и оповещения администраторов. МЭ позволяет регистрировать все обращения пользователей к ресурсам, проходящие через экран, в том числе кто, когда, с какой машины обратился к конкретному ресурсу или получил отказ. Протоколирование позволяет выявить случаи проведения атак на внутреннюю сеть, обнаружить местонахождение хакера и заранее блокировать трафик от него.
Составной частью большинства коммерческих межсетевых экранов экспертного уровня являются средства построения виртуальных частных сетей, позволяющие шифровать информацию при ее передаче по общедоступной сети. Более того, такими средствами обладают даже некоторые сетевые фильтры на базе аппаратных маршрутизаторов.
Заключение
Межсетевые экраны не являются универсальным средством для борьбы с атаками злоумышленников. Они не могут предотвратить атаки внутри локальной сети, но вместе с другими средствами защиты играют исключительно важную роль для защиты сетей от вторжения извне. Понимание технологии работы межсетевых является одним из важнейших навыков для администратора информационной безопасности.