Типы межсетевых экранов. Межсетевые экраны или файерволы

16.09.1999

Типы межсетевых экранов и используемые в них технологии. Si vis pacem, para bellum (Хочешь мира - готовься к войне). Константин Пьянзин Благодаря своей открытой архитектуре сеть Internet стала одним из самых удобных средств коммуникации.

Типы межсетевых экранов и используемые в них технологии.

Si vis pacem, para bellum

(Хочешь мира - готовься к войне).

Константин Пьянзин

Благодаря своей открытой архитектуре сеть Internet стала одним из самых удобных средств коммуникации. Вместе с тем открытость Internet породила множество проблем, связанных с безопасностью. Здесь как нельзя лучше подходит изречение: «Каждый - за себя, только Бог - за всех». Любой имеющий выход в Internet компьютер должен рассматриваться как потенциальный объект для атаки. Проблема особенно остро стоит в случае организаций, поскольку им необходимо контролировать работу в Internet большого количества компьютеров и сетевых устройств.

Безопасность при подключении к Internet обеспечивается с помощью следующих специализированных средств:

  • межсетевых экранов;
  • сетевых сканеров, призванных находить изъяны и потенциально опасные участки внутри сетей;
  • снифферов, или анализаторов протоколов, позволяющих отслеживать входящий и исходящий трафики;
  • средств протоколирования событий в сетях;
  • средств построения виртуальных частных сетей и организации закрытых каналов обмена данными.

Важное место в списке средств обеспечения безопасного подключения к Internet занимают межсетевые экраны (часто называемые брандмауэрами, или, по-английски, firewall). Согласно «Руководящему документу. Межсетевые экраны» Гостехкомиссии при Президенте РФ «межсетевым экраном называется локальное (однокомпонентное) или функционально-распределенное средство (комплекс), которое реализует контроль за информацией, поступающей в автоматизированную систему и/или выходящей из нее, и обеспечивает защиту автоматизированной системы посредством фильтрации информации, т. е. анализа по совокупности критериев и принятия решения об ее распространении в (из) автоматизированной системе». К сожалению, такое определение имеет чересчур общий характер и подразумевает слишком расширенное толкование.

В обиходе межсетевыми экранами (МЭ) называют средства защиты, устанавливаемые между общедоступной (такой, как Internet) и внутренней сетью. Межсетевой экран выполняет двойную функцию. Во-первых, он призван ограничить доступ во внутреннюю сеть со стороны общедоступной сети за счет применения фильтров и средств аутентификации, чтобы злоумышленники не могли получить несанкционированный доступ к информации или нарушить нормальную работу сетевой инфраструктуры. Во-вторых, МЭ служит для контроля и регулирования доступа пользователей внутренней сети к ресурсам общедоступной сети, когда те представляют угрозу безопасности или отвлекают сотрудников от работы (порнографические, игровые, спортивные серверы).

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

Межсетевые экраны по понятным причинам используются для сетей TCP/IP и классифицируются в соответствии с уровнем эталонной модели взаимодействия открытых систем (сетевой моделью) OSI. Однако такая классификация, в силу ряда обстоятельств носит достаточно условный характер. Во-первых, сетевая модель сетей TCP/IP предусматривает только 5 уровней (физический, интерфейсный, сетевой, транспортный и прикладной), в то время как модель OSI - 7 уровней (физический, канальный, сетевой, транспортный, сеансовый, презентационный и прикладной). Поэтому установить однозначное соответствие между этими моделями далеко не всегда возможно. Во-вторых, большинство выпускаемых межсетевых экранов обеспечивают работу сразу на нескольких уровнях иерархии OSI. В-третьих, некоторые экраны функционируют в режиме, который трудно соотнести с каким-то строго определенным уровнем иерархии.

Тем не менее поддерживаемый уровень сетевой модели OSI является основной характеристикой при классификации межсетевых экранов. Различают следующие типы межсетевых экранов:

  • управляемые коммутаторы (канальный уровень);
  • сетевые фильтры (сетевой уровень);
  • шлюзы сеансового уровня (circuit-level proxy);
  • посредники прикладного уровня;
  • инспекторы состояния (stateful inspection), представляющие собой межсетевые экраны сеансового уровня с расширенными возможностями.

Существует также понятие «межсетевой экран экспертного уровня». Такие МЭ обычно базируются на посредниках прикладного уровня или инспекторах состояния, но обязательно комплектуются шлюзами сеансового уровня и сетевыми фильтрами. К МЭ экспертного класса относятся почти все имеющиеся на рынке коммерческие брандмауэры.

Межсетевые экраны могут опираться на один из двух взаимоисключающих принципов обработки поступающих пакетов данных. Первый принцип гласит: «Что явно не запрещено, то разрешено». Т. е. если МЭ получил пакет, не подпадающий не под одно из принятых ограничений или не идентифицированный правилами обработки, то он передается далее. Противоположный принцип - «Что явно не разрешено, то запрещено» - гарантирует гораздо большую защищенность, но оборачивается дополнительной нагрузкой на администратора. В этом случае внутренняя сеть изначально полностью недоступна, и администратор вручную устанавливает разрешенные при обмене данными с общедоступной сетью сетевые адреса, протоколы, службы и операции.

Правила обработки информации во многих межсетевых экранах экспертного класса могут иметь многоуровневую иерархическую структуру. Например, они могут позволять задать такую схему: «Все компьютеры локальной сети недоступны извне, за исключением доступа к серверу A по протоколу ftp и к серверу B по протоколу telnet, однако при этом запрещен доступ к серверу A с операцией PUT сервиса ftp».

Межсетевые экраны могут выполнять над поступающими пакетами данных одну из двух операций: пропустить пакет далее (allow) или отбросить пакет (deny). Некоторые МЭ имеют еще одну операцию - reject, при которой пакет отбрасывается, но отправителю сообщается по протоколу ICMP о недоступности сервиса на компьютере-получателе информации. В противовес этому при операции deny отправитель не информируется о недоступности сервиса, что является более безопасным.

Ниже мы рассмотрим достоинства и недостатки каждого типа межсетевого экрана более подробно.

КОММУТАТОРЫ

Коммутаторы среднего и старшего уровня Cisco, Bay Networks (Nortel), 3Com и других производителей позволяют привязывать MAC-адреса сетевых карт компьютеров к определенным портам коммутатора. Более того, немало коммутаторов предоставляет возможность фильтрации информации на основе адреса сетевой платы отправителя или получателя, создавая при этом виртуальные сети (VLAN). Другие коммутаторы позволяют организовать VLAN на уровне портов самого коммутатора. Таким образом, коммутатор может выступать в качестве межсетевого экрана канального уровня.

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

Кроме того, подделать адрес сетевой платы обычно не составляет труда (многие платы Ethernet позволяют программно менять или добавлять адреса канального уровня), и такой подход к защите является до крайности ненадежным. Правда, организация виртуальных сетей на уровне портов коммутатора более надежна, но, опять же, она ограничена рамками локальной сети.

Тем не менее если следовать буквальной трактовке «Руководящего документа» Гостехкомиссии, то коммутаторы с возможностью создания VLAN являются межсетевыми экранами.

СЕТЕВЫЕ ФИЛЬТРЫ

Сетевые фильтры работают на сетевом уровне иерархии OSI (см. Рисунок 1). Сетевой фильтр представляет собой маршрутизатор, обрабатывающий пакеты на основании информации, содержащейся в заголовках пакетов. Сетевые фильтры существуют для сетей TCP/IP и IPX/SPX, но последние применяют в локальных сетях, поэтому мы их рассматривать не будем.

При обработке пакетов ими учитывается следующая информация:

  • IP-адрес отправителя;
  • IP-адрес получателя;
  • протокол (TCP, UDP, ICMP);
  • номер программного порта отправителя;
  • номер программного порта получателя.

Администратор на основе этой информации задает правила, в соответствии с которыми пакеты будут либо пропускаться через фильтр, либо отбрасываться им. Например, сетевой фильтр позволяет реализовать следующую схему обмена данными между компьютерами корпоративной сети и Internet:

  1. все компьютеры корпоративной сети имеют возможность общаться с внешними серверами Web и ftp, но не с telnet, NNTP и т. д.;
  2. доступ извне запрещен ко всем компьютерам корпоративной сети, кроме доступа к серверу A по протоколу HTTP и к серверу B по протоколу ftp; кроме того, внешнему компьютеру Z разрешается доступ к внутреннему серверу C и к любым службам TCP и UDP, но не ICMP.

Сетевые фильтры очень легко реализовать, поэтому они получили повсеместное распространение и представлены программно-аппаратными и чисто программными реализациями. В частности, маршрутизаторы Cisco, Bay Networks (подразделение Nortel) и других производителей снабжены функциями сетевой фильтрации, вследствие чего такие маршрутизаторы называют фильтрующими. Список программных сетевых фильтров еще более внушителен, и большинство из них представляет бесплатные или условно-бесплатные утилиты. Они реализованы для множества сетевых платформ, в том числе для UNIX, Windows NT, NetWare, VMS, MVS.

К сожалению, оборотной стороной простоты реализации и низкой цены сетевых фильтров является сложность их администрирования и слабая защищенность от атак.

В сетевых фильтрах в основном используется статическая фильтрация, когда администратору приходится создавать свой фильтр для каждого уникального типа пакета, требующего обработки. Поясним это на примере. Допустим, всем компьютерам по умолчанию запрещен доступ в Internet. Однако компьютеру Z (IP-адрес 123.45.67.89) необходим доступ к внешнему серверу A (IP-адрес 211.111.111.111), предоставляющему сервис telnet. В данном случае администратор должен задать два правила:

  1. пропустить пакет, если он передается со стороны сетевого интерфейса внутренней сети на сетевой интерфейс внешней сети и имеет параметры: IP-адрес отправителя 123.45.67.89, IP-адрес получателя 211.111.111.111, протокол транспортного уровня TCP, программный порт отправителя больше 6000, программный порт получателя 23;
  2. пропустить пакет, если он передается со стороны сетевого интерфейса внешней сети на сетевой интерфейс внутренней сети и имеет параметры: IP-адрес отправителя 211.111.111.111, IP-адрес получателя 123.45.67.89, протокол транспортного уровня TCP, программный порт отправителя 23, программный порт получателя более 6000.

Таким образом, для каждого канала обмена данными необходимо задавать два правила (фильтра); в случае многоканальных соединений (например, для сервиса ftp) количество правил соответственно увеличивается. Для большой сети список правил достигает очень внушительных размеров, в которых администратору легко запутаться. Правда, сетевые фильтры позволяют обычно объединять правила для подмножества компьютеров на основе IP-подсетей.

Поскольку при получении каждого пакета сетевой фильтр просматривает таблицу правил в последовательном порядке, каждое новое правило уменьшает общую производительность маршрутизатора.

Ряд производителей (в частности, Novell в утилите FILTCFG.NLM) предусматривает динамическую, или контекстную (stateful), фильтрацию и фильтрацию фрагментов IP-пакетов, но по характеристикам они скорее относятся к разряду шлюзов сеансового уровня и поэтому будут рассмотрены позднее.

Еще одной проблемой, особенно для бесплатных сетевых фильтров, является невозможность создания иерархической структуры правил. Например, в случае принципа «что явно не разрешено, то запрещено» фильтр просматривает сначала список исключений, и если пакет не подходит не под одно исключение, то в соответствии с указанным принципом пакет отсеивается. Если же пакет подходит хотя бы под одно исключение, то он передается дальше. Однако представим такую ситуацию: сеть закрыта от доступа снаружи, но один сервер должен быть доступен для внешнего мира по протоколу ftp. Все это прекрасно можно организовать с помощью сетевого фильтра, за исключением маленькой, но очень неприятной детали - на доступ к серверу по ftp нельзя наложить дополнительные ограничения. К примеру, невозможно в таком случае запретить доступ к нему со стороны компьютера Z, которым пользуется злоумышленник. Более того, хакер может передавать на сервер пакеты с адресом отправителя, соответствующим адресу компьютера внутренней сети (самый опасный вид подделки IP-пакетов). И сетевой фильтр пропустит такой пакет. Чтобы избежать подобных проблем, администраторы вынуждены ставить два последовательно подключенных фильтра, чтобы таким образом реализовывать иерархические правила фильтрации.

Сетевые фильтры имеют ряд принципиальных недостатков. Прежде всего аутентификация (или, если точнее, идентификация) отправителя производится только на основании 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 на машины, являющиеся серверами для внешней сети, но расположенные во внутренней сети.

Для этих целей применяют специализированные фильтры с многоступенчатым порядком установления соединений. Например, фильтр SYNDefender Gateway из состава межсетевого экрана FireWall-1 производства Check Point работает следующим образом. Допустим, внешний компьютер Z пытается установить соединение с внутренним сервером A через межсетевой экран МЭ. Процедура установления соединения показана на Рисунке 2. Когда МЭ получает пакет SYN от компьютера Z (этап 1), то этот пакет передается на сервер A (этап 2). В ответ сервер A передает пакет SYN/ACK на компьютер Z, но МЭ его перехватывает (этап 3). Далее МЭ пересылает полученный пакет на компьютер Z, кроме того, МЭ от имени компьютера Z посылает пакет ACK на сервер A (этап 4). За счет быстрого ответа серверу A, выделяемая под установление новых соединений память сервера никогда не окажется переполнена, и атака SYN-flooding не пройдет.

Дальнейшее развитие событий зависит от того, действительно ли компьютер Z инициализировал установление соединения с сервером A. Если это так, то компьютер Z перешлет пакет ACK серверу A, который проходит через МЭ (этап 5a). Сервер A проигнорирует второй пакет ACK. Затем МЭ будет беспрепятственно пропускать пакеты между компьютерами A и Z. Если же МЭ не получит пакета ACK или кончится тайм-аут на установление соединения, то он вышлет в адрес сервера A пакет RST, отменяющий соединение (этап 5б).

Фильтр SYNDefender Relay из состава того же Check Point FireWall-1 работает несколько иначе. Прежде чем передавать пакет SYN на сервер A, МЭ сначала устанавливает соединение с компьютером Z. Процедура установления соединения для этого случая показана на Рисунке 3. Только после получения пакета ACK от компьютера Z межсетевой экран инициализирует соединение с сервером A (этап 3). Очевидно, что после установления соединений межсетевой экран будет вынужден в динамическом режиме менять значения полей Sequent number (порядковый номер) и Acknowledgement number (номер подтверждения) во всех пакетах TCP, передаваемых между компьютерами A и Z, что снижает производительность.

ШЛЮЗЫ, ТРАНСЛИРУЮЩИЕ АДРЕСА ИЛИ СЕТЕВЫЕ ПРОТОКОЛЫ

Пожалуй, самым известным шлюзом сеансового уровня можно считать шлюз с преобразованием 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 и 6 4000 портов 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, поэтому их имеет смысл применять только совместно с другими типами шлюзов сеансового и/или прикладного уровней. Кроме шлюзов NAT достаточно известны шлюзы IPX/IP, предназначенные для организации выхода в Internet компьютеров, работающих в сетях IPX/SPX. При запросе клиента внутренней сети к серверу Internet шлюз перехватывает запрос и вместо пакета IPX формирует соответствующий IP-пакет. При поступлении отклика от сервера шлюз делает обратное преобразование. Пожалуй, это самый надежный тип шлюзов, поскольку внутренняя сеть имеет принципиально другую, по сравнению с TCP/IP, программную среду. Не было отмечено еще ни одного случая взлома такой инфраструктуры. Кроме того, в отличие от шлюзов NAT, аутентификация на шлюзах IPX/IP осуществляется не только на уровне сетевых адресов компьютеров, но и на уровне пользователей с помощью информации база данных NDS (для NetWare 4.x и 5.x) или BINDERY (для NetWare 3.x). Правда, такая аутентификация возможна лишь при доступе из внутренней сети в Internet, за исключением случая, когда внешний клиент использует NetWare на основе TCP/IP.

ПОСРЕДНИКИ СЕАНСОВОГО УРОВНЯ

Прежде чем разрешить установление соединения TCP между компьютерами внутренней и внешней сети, посредники сеансового уровня сначала как минимум регистрируют клиента. При этом неважно, с какой стороны (внешней или внутренней) этот клиент находится. При положительном результате регистрации между внешним и внутренним компьютерами организуется виртуальный канал, по которому пакеты передаются между сетями. С этого времени посредник не вмешивается в процесс обмена данными и не фильтрует информацию. Но такая схема является обобщенной, конкретные реализации шлюзов прикладного уровня могут иметь свои особенности. Наиболее известным и популярным посредником сеансового уровня является посредник SOCKS 5, который выступает в качестве сервера SOCKS 5. Когда клиент пытается связаться с сервером, находящимся по другую сторону посредника, то его SOCKS-клиент обращается к SOCKS-серверу, где происходит не только регистрация, но и полноценная аутентификация на основе имени и пароля пользователя. Аутентификация может быть организована так, чтобы пароль передавался в зашифрованном виде. При положительном результате аутентификации посредник SOCKS разрешает установление соединения клиента с сервером и более не вмешивается в процесс обмена информацией. Однако сервис SOCKS 5 позволяет устанавливать между клиентом и посредником передачу данными в зашифрованном виде по протоколу SSL. Принимая во внимание перечисленные характеристики, очевидно, что применение посредника SOCKS 5 особенно актуально в ситуации, когда сервер находится во внутренней сети, а клиент - в общедоступной. Но и случай, когда внутренние клиенты обращаются к ресурсам Internet, не стоит сбрасывать со счетов, поскольку посредник SOCKS 5 позволяет регулировать доступ на уровне имен и паролей пользователей. Недостатком посредников SOCKS является необходимость установки специализированного программного обеспечения - клиентской части SOCKS - на каждое клиентское место.

ОБЩИЕ НЕДОСТАТКИ ШЛЮЗОВ СЕАНСОВОГО УРОВНЯ

Основным недостатком шлюзов сеансового уровня следует назвать невозможность регулирования передачи информации на прикладном уровне и, как следствие, отслеживания некорректных или потенциально опасных действий пользователя. Например, они не позволят контролировать выполнение команды PUT сервиса ftp или отфильтровывать приложения ActiveX со стороны внешних машин, если такая операция допустима для внутренних клиентов.

Хотя применение шлюзов сеансового уровня позволяет предотвратить ряд опасных атак на внутреннюю сеть, некоторые типы атак, в частности категории «отказ в обслуживании», можно реализовать в обход этих шлюзов. За исключением шлюза IPX/IP и посредника SOCKS 5, все остальные фильтры имеют крайне ненадежную систему идентификации и аутентификации, основанную на IP-адресах отправителя/получателя. В свою очередь, применение шлюзов IPX/IP и SOCKS 5 привносит свои проблемы, так как требует установки на клиентские машины специализированного ПО.

За исключением шлюзов IPX/IP и SOCKS 5, другие шлюзы сеансового уровня обычно не поставляются в виде коммерческого продукта. Тем не менее все межсетевые экраны экспертного класса в обязательном порядке комплектуются самыми разными шлюзами сеансового уровня (так же, как и сетевыми фильтрами), поскольку посредники прикладного уровня или инспекторы состояния не могут отслеживать передачу данных на нижних уровнях иерархии OSI.

ПОСРЕДНИКИ ПРИКЛАДНОГО УРОВНЯ

Посредники прикладного уровня (application-level proxy), часто называемые proxy-серверами, контролируют и фильтруют информацию на прикладном уровне иерархии OSI (см. Рисунок 4). Посредники различают по поддерживаемым протоколам прикладного уровня: чем их больше, тем дороже продукт. Наиболее часто поддерживаются службы Web (HTTP), ftp, SMTP, POP3/IMAP, NNTP, Gopher, telnet, DNS, RealAudio/RealVideo. Когда клиент внутренней сети обращается, например, к серверу Web, то его запрос попадает к посреднику Web (или перехватывается им). Последний устанавливает связь с сервером от имени клиента, а полученную информацию передает клиенту. Для внешнего сервера посредник выступает в качестве клиента, а для внутреннего клиента - в качестве сервера Web. Аналогично посредник может работать и в случае внешнего клиента и внутреннего сервера.

Посредники прикладного уровня делятся на прозрачные (transparent) и непрозрачные. Прозрачные посредники невидимы для клиентов и серверов: клиент обращается к серверу самым обычным образом, а посредник перехватывает запрос и действует от лица клиента. Особой популярностью пользуются прозрачные посредники для сервиса Web, их нередко устанавливают провайдеры Internet в целях повышения производительности работы и снижения нагрузки на глобальные каналы связи за счет кэширования информации.

В случае непрозрачных посредников клиентскую систему требуется явным образом настроить на работу с посредником (например, при использовании непрозрачного посредника Web в опциях настройки браузеров необходимо указать IP-адрес посредника и присвоенный ему порт TCP). Непрозрачные посредники хороши там, где требуется строгая аутентификация при входе во внутреннюю сеть или на выходе из нее, особенно для служб, не поддерживающих шифрование паролей. Обычно это службы telnet и ftp, при этом задействуется система одноразовых паролей (One-Time Password, OTP) (более подробно о системах OTP см. в статье «Удаленное управление сетевыми ОС» в LAN №5 за 1999 г.).

На Рисунке 5 показан типичный пример использования telnet. Здесь клиент с помощью системы OTP устанавливает соединение с сервером tn.anywhere.com, находящимся за непрозрачным посредником fw.anywhere.com. Пользователь сначала должен зарегистрироваться на посреднике, сообщив для начала свое имя, в ответ на которое ему передается вызов (673 jar564). С помощью калькулятора OTP пользователь вычисляет затем парольную фразу, которую и вводит в поле Password. Далее он сообщает адрес сервера, с которым собирается установить соединение. Следует отметить, что регистрации на сервере tn.anywhere.com не требуется, поскольку межсетевой экран и данный сервер используют общую базу учетных записей пользователей.

Общим недостатком непрозрачных посредников является их «непрозрачность» для клиентского ПО и пользователей. Далеко не всякие клиентские программы можно настроить, например, на непрозрачные посредники SMTP, POP3, IMAP4, DNS, ftp.

В отличие от шлюзов сеансового уровня посредники прикладного уровня обрабатывают только те пакеты данных прикладного уровня, службы которых ими поддерживаются, а пакеты неизвестных (для посредника) или не сконфигурированных протоколов удаляются из обращения. Например, если посредник настроен только на обслуживание сервиса ftp, то он не пропустит пакеты telnet или HTTP.

Посредник прикладного уровня проверяет содержимое каждого пакета данных. Более того, посредник фильтрует пакеты на уровне конкретных операций сетевых служб. Например, межсетевой экран Raptor Firewall компании AXENT Technologies позволяет отфильтровывать пакеты ftp, содержащие команду PUT.

Посредники прикладного уровня в обязательном порядке поддерживают строгую аутентификацию с помощью либо операционной системы или одной из служб каталогов (доменов) NDS, Windows NT, NIS/NIS+, либо систем RADIUS, TACACS и т. д.

Оборотной стороной названных возможностей посредников прикладного уровня является их невысокая производительность (для тех сетевых служб, где не предусматривается кэширование информации). Вдобавок, для каждого соединения TCP посредник вынужден устанавливать два канала связи: один - с сервером, другой - с клиентом. Но следует помнить, что узким местом соединений с Internet являются главным образом медленные глобальные линии связи, поэтому о невысокой производительности посредников прикладного уровня можно говорить весьма условно.

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

ПОСРЕДНИКИ WEB

Сервис Web является основным в глобальной сети Internet. Однако медленные каналы связи, активное использование графики и мультимедиа на страницах Web ведут к снижению производительности работы пользователей в Internet. Между тем пользователи очень часто обращаются к одним и тем же ресурсам Internet. Поэтому для повышения скорости доступа все популярные браузеры кэшируют информацию. Тем не менее в корпоративной среде кэширование на уровне отдельных компьютеров не способно решить всех проблем, так как к одним и тем же ресурсам нередко обращаются совершенно разные пользователи, особенно если они работают в одной организации. Очевидно, что наилучшим способом борьбы с невысокой производительностью глобальных линий является установка кэширующего посредника Web на границе внутренней сети. Вдобавок, такой подход позволяет снизить нагрузку на каналы связи Internet, и таким образом либо экономить деньги, либо запускать дополнительные сетевые службы.

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

Существует четыре типа кэширования информации на посредниках Web:

  • пассивное;
  • активное;
  • негативное;
  • иерархическое.

Наиболее мощные современные посредники Web могут поддерживать все четыре типа кэширования. При пассивном кэшировании (иначе называемом базовым или кэшированием по требованию) клиент через браузер Web обращается к посреднику, а посредник возвращает запрашиваемую информацию из своего кэша, если она там есть. В противном случае посредник Web обращается к серверу Web.

Активное кэширование предполагает наличие у посредника некоторого интеллекта. Кэширование осуществляется заранее (read-ahead), до поступления явного запроса от клиента. Например, браузер запрашивает страницу Web, содержащую рисунки или иные элементы. Посредник не будет дожидаться явных запросов со стороны клиента на подкачку этих компонентов и постарается получить их самостоятельно, так сказать, загодя. Активное кэширование происходит в фоновом режиме, что повышает производительность работы.

Негативное кэширование подразумевает кэширование отказов. Если браузер запросил страницу, которую посредник не может получить (нет связи или из-за отсутствия страницы на сервере), то отказ кэшируется. При повторном обращении клиент сразу получит отрицательный ответ. Однако посредник будет продолжать пытаться получить затребованную страницу в фоновом режиме. Негативное кэширование у посредников Web появилось недавно, в так называемом втором поколении посредников, разработанных в соответствии с технологией Harvest/Squid. Созданные в рамках старой технологии CERN посредники не кэшируют отказы и пытаются каждый раз связаться с сервером Web.

Иерархическое кэширование представляет собой еще одно достижение технологии Harvest/Squid. В соответствии с ней посредники могут образовывать сложные иерархические структуры с равноправными или подчиненными связями. Например, организация имеет два одинаковых по производительности канала в Internet. На каждый канал устанавливается посредник, и между ними определяются равноправные отношения. В этом случае при отсутствии запрошенной информации в кэше посредник обратится не к серверу Internet, а ко второму посреднику. Если у второго посредника в кэше имеется необходимая информация, то она будет передана первому посреднику и далее клиенту. В противном случае первый посредник будет вынужден сам обратиться к серверу Web. При подчиненных отношениях типа «потомок-родитель» посредник со статусом «потомок» никогда не обращается к серверу Web самостоятельно, а только через «родителя». Подобные схемы значительно уменьшают загрузку глобальных линий связи и повышают отказоустойчивость подключения. Иерархическое кэширование организуется в соответствии с одним из двух стандартизированных протоколов кэширования: ICP (Internet Caching Protocol) или CARP (Cache Array Routing Protocol). Хотя протокол CARP разработан позже ICP, он получил большее распространение, поскольку устраняет избыточное кэширование информации между посредниками.


Рисунок 6. Прямое кэширование Web.

Кроме типов кэширования (пассивное, активное, негативное и иерархическое) посредники различаются также по режимам кэширования: прямому (forward) и обратному (reverse). Прямое кэширование - это то, к чему мы все привыкли. Т. е. посредник устанавливается на входе во внутреннюю сеть и кэширует информацию с серверов Internet для клиентов внутренней сети (см. Рисунок 6). При использовании прозрачного посредника клиенты могут даже не знать о существовании посредника, в то время как в случае непрозрачного посредника в опциях браузера необходимо задать его координаты.


Рисунок 7. Обратное кэширование Web.

Обратное кэширование подразумевает обслуживание внешних клиентов, запрашивающих информацию с серверов, расположенных во внутренней сети организации. Т. е. за посредником с обратным кэшированием закрепляется один или несколько серверов Web, информацию с которых он скачивает. Такой посредник лучше всего устанавливать у провайдера Internet, чтобы снизить нагрузку на канал связи с провайдером и увеличить производительность доступа внешних клиентов к серверу Web (см. Рисунок 7). Посредник с обратным кэшированием должен быть прозрачным для внешних пользователей. Однако это возможно лишь при обратном кэшировании только одного сервера (к порту 80 протокола TCP, отвечающему за сервис HTTP, на посреднике можно привязать только один сервер - для других серверов необходимо назначать другие порты). Тем не менее с помощью не очень сложных манипуляций работу посредника по кэшированию сразу нескольких серверов можно сделать практически прозрачной для клиентов.

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

Кэширование информации - это, конечно, очень привлекательная функция посредников Web, но нельзя забывать и о других возможностях, характерных для посредников прикладного уровня. Посредники Web способны поддерживать надежную аутентификацию пользователей, фильтровать приложения Java и ActiveX, осуществлять поиск вирусов, регулировать доступ пользователей к определенным URL. Более того, для посредников Web поставляются специальные программы, содержащие списки порнографических, расистских, игровых, развлекательных серверов. С помощью таких программ администратору легко регулировать доступ к подобным узлам.

ИНСПЕКТОРЫ СОСТОЯНИЯ

Инспекторы состояния, или иначе брандмауэры с контекстной проверкой (stateful inspection firewall), являются по сути шлюзами сеансового уровня с расширенными возможностями. Термин «инспектор состояния» был введен компанией Check Point, дабы подчеркнуть отличие ее технологии от других применяемых в межсетевых экранах. Инспекторы состояния оперируют на сеансовом уровне, но «понимают» и протоколы прикладного уровня (см. Рисунок 8). Т. е. при получении пакета данных содержимое этого пакета сравнивается с некими шаблонами, специфическими для соответствующего протокола прикладного уровня. И в зависимости от результата сравнения, пакет либо передается далее, либо отбрасывается. Чем мощнее инспектор состояния, тем больший список шаблонов он имеет. Если пакет не соответствует ни одному шаблону, то он будет отсеян.

В отличие от посредника прикладного уровня, открывающего два виртуальных канала TCP (один - для клиента, другой - для сервера) для каждого соединения, инспектор состояния не препятствует организации прямого соединения между клиентом и сервером. За счет этого производительность инспектора состояния оказывается много выше производительности посредников прикладного уровня и приближается к производительности сетевых фильтров. Правда, разработчики посредников прикладного уровня указывают на более высокий уровень защищенности своих продуктов, поскольку трафик контролируется непосредственно на прикладном уровне. Но большинство специалистов считают такие утверждения спорными или, во всяком случае, не очевидными. У кого, например, повернется язык назвать недостаточно надежным межсетевой экран Check Point FireWall-1, являющийся инспектором состояния, когда ему принадлежит 40% рынка межсетевых экранов и он удостоен множества самых престижных наград, в том числе и за безопасность?

Со своей стороны разработчики инспекторов состояния указывают, что их системы имеют гораздо больше возможностей расширения. При появлении новой службы или нового протокола прикладного уровня для его поддержки достаточно добавить несколько шаблонов. В то же время разработчики посредников прикладного уровня вынуждены писать «с нуля» модуль для каждого нового протокола. Так-то оно так, но добавить модуль в посредник прикладного уровня ничуть не сложнее, чем добавить шаблоны в инспектор состояния. К тому же производители инспекторов состояния и посредников прикладного уровня привыкли решать проблему кардинальным способом, посредством выпуска новой версии продукта.

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

На самом деле, спор, что лучше - инспектор состояния или посредник прикладного уровня, представляется беспочвенным. Для большинства задач они примерно равноценны. Преимущество же в производительности инспекторов состояния не имеет особого значения, если речь идет о подключении к Internet по медленным каналам связи.

Межсетевые экраны экспертного класса основываются либо на технологии инспекторов состояния, либо на технологии посредников прикладного уровня, но обязательно дополняются сетевыми фильтрами и шлюзами сеансового уровня. Подавляющее большинство выпускаемых межсетевых экранов представляет собой посредники прикладного уровня, но, как было отмечено ранее, инспекторы состояния (вернее, один инспектор - FireWall-1 компании Check Point) доминируют на рынке.

ДРУГИЕ ВОЗМОЖНОСТИ МЕЖСЕТЕВЫХ ЭКРАНОВ

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

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

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

ЗАКЛЮЧЕНИЕ

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

Константин Пьянзин - обозреватель LAN. С ним можно связаться по адресу: [email protected]

В середине 90-х годов атака по типу SYN-flooding была одной из самых распространенных. Она использует недостатки протокольной машины TCP. Атака SYN-flooding попадает под категорию атак «отказ в обслуживании» (Denial of Service, DoS), приводящих к зависанию компьютера - т. е. компьютер продолжает работать, но становится недоступным через сеть.

Когда клиентский компьютер устанавливает соединение с сервером по протоколу TCP, он посылает TCP-пакет с выставленным битом SYN. В ответ сервер посылает TCP-пакет с битами SYN/ACK. В свою очередь клиент отправляет TCP-пакет с битом ACK. После этого соединение между клиентом и сервером считается установленным. Такая схема соединения называется трехступенчатой, поскольку она предусматривает обмен тремя пакетами.

Когда сервер получает пакет SYN, он выделяет дополнительную память для нового соединения. В большинстве операционных систем для каждой из сетевых служб предусмотрен лимит (обычно равный десяти) на количество вновь создаваемых соединений TCP (в некоторых системах такого лимита нет, но положение от этого не намного лучше, поскольку при отсутствии свободной памяти зависнет весь компьютер, а не только одна конкретная служба). Пока сервер не получит пакет SYN/ACK или пакет RST (см. далее) либо не наступит тайм-аут на вновь создаваемое соединение (обычно 75 секунд), соединение продолжает резервировать память.

Атака SYN-flooding предусматривает посылку на сервер множества пакетов TCP с выставленным битом SYN от лица несуществующих или неработающих хостов (за счет применения подмены IP-адресов). Последнее требование важно, поскольку если запрос на установку соединения придет от имени работающего хоста, то, когда сервер пошлет в его адрес пакет SYN/ACK, хост ответит пакетом RST (reset), инициирующим сброс соединения. И соединение будет удалено из памяти сервера.

При атаке SYN-flooding выделенная под установление новых соединений память сервера быстро исчерпывается, и сетевой сервис зависает.

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



Требования к знаниям и умениям

Студент должен знать:

  • механизм межсетевого экранирования.

Студент должен уметь:

  • выбирать межсетевые экраны для защиты информационных систем.

Ключевой термин

Ключевой термин: Межсетевой экранирован.

Межсетевой экран или брандмауэр (firewall) — программная или программно-аппаратная система, которая выполняет контроль информационных потоков, поступающих в информационную систему и/или выходящих из нее, и обеспечивающая защиту информационной системы посредством фильтрации информации.

Второстепенные термины

  • Классификация межсетевых экранов.

  • Характеристика межсетевых экранов.

Структурная схема терминов

4.5.1 Классификация межсетевых экранов

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

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

межсетевой экран или брандмауэр (firewall), под которым понимают программную или программно-аппаратную систему, которая выполняет контроль информационных потоков, поступающих в информационную систему и/или выходящих из нее, и обеспечивает защиту информационной системы посредством фильтрации информации. Фильтрация информации состоит в анализе информации по совокупности критериев и принятии решения о ее приеме и/или передаче.

Межсетевые экраны классифицируются по следующим признакам:

  • по месту расположения в сети — на внешние и внутренние, обеспечивающие защиту соответственно от внешней сети или защиту между сегментами сети;

  • по уровню фильтрации, соответствующему эталонной модели OSI/ISO.

Внешние межсетевые экраны обычно работают только с протоколом TCP/IP глобальной сети Интернет. Внутренние сетевые экраны могут поддерживать несколько протоколов, например, при использовании сетевой операционной системы Novell Netware, следует принимать во внимание протокол SPX/IPX.

4.5.2 Характеристика межсетевых экранов

Работа всех межсетевых экранов основана на использовании информации разных уровней модели OSI. Как правило, чем выше уровень модели OSI, на котором межсетевой экран фильтрует пакеты, тем выше обеспечиваемый им уровень защиты.

Межсетевые экраны разделяют на четыре типа:

  • межсетевые экраны с фильтрацией пакетов;

  • шлюзы сеансового уровня;

  • шлюзы прикладного уровня;

  • межсетевые экраны экспертного уровня.

Таблица 1. Типы межсетевых экранов и уровни модели ISO OSI

Уровень

модели OSI

Протокол

Тип

межсетевого экрана

1

Прикладной

Telnet, FTP, DNS, NFS, SMTP, HTTP

·Шлюз прикладного уровня;

·Межсетевой экран экспертного уровня.

2

Представления данных

3

Сеансовый

TCP, UDP

·Шлюз сеансового уровня

4

Транспортный

TCP, UDP

5

Сетевой

IP, ICMP

·Межсетевой экран с фильтрацией пакетов

6

Канальный

7

Физический

Межсетевые экраны с фильтрацией пакетов представляют собой маршрутизаторы или работающие на сервере программы, сконфигурированные таким образом, чтобы фильтровать входящие и исходящие пакеты. Поэтому такие экраны называют иногда пакетными фильтрами. Фильтрация осуществляется путем анализа IP-адреса источника и приемника, а также портов входящих TCP- и UDP-пакетов и сравнением их с сконфигурированной таблицей правил. Эти межсетевые экраны просты в использовании, дешевы, оказывают минимальное влияние на производительность вычислительной системы. Основным недостатком является их уязвимость при подмене адресов IP. Кроме того, они сложны при конфигурировании: для их установки требуется знание сетевых, транспортных и прикладных протоколов.

Шлюзы сеансового уровня контролируют допустимость сеанса связи. Они следят за подтверждением связи между авторизованным клиентом и внешним хостом (и наоборот), определяя, является ли запрашиваемый сеанс связи допустимым. При фильтрации пакетов шлюз сеансового уровня основывается на информации, содержащейся в заголовках пакетов сеансового уровня протокола TCP, т. е. функционирует на два уровня выше, чем межсетевой экран с фильтрацией пакетов. Кроме того, указанные системы обычно имеют функции трансляции сетевых адресов, которая скрывает внутренние IP-адреса, тем самым, исключая подмену IP-адреса. Однако, в таких межсетевых экранах отсутствует контроль содержимого пакетов, генерируемых различными службами. Для исключения указанного недостатка применяются шлюзы прикладного уровня.

Шлюзы прикладного уровня проверяют содержимое каждого проходящего через шлюз пакета и могут фильтровать отдельные виды команд или информации в протоколах прикладного уровня, которые им поручено обслуживать. Это более совершенный и надежный тип межсетевого экрана, использующий программы-посредники (proxies) прикладного уровня или агенты. Агенты составляются для конкретных служб сети Интернет (HTTP, FTP, telnet и т.д.) и служат для проверки сетевых пакетов на наличие достоверных данных.

Шлюзы прикладного уровня снижают уровень производительности системы из-за повторной обработки в программе-посреднике. Это незаметно при работе в Интернет при работе по низкоскоростным каналам, но существенно при работе во внутренней сети.

Межсетевые экраны экспертного уровня сочетают в себе элементы всех трех описанных выше категорий. Как и межсетевые экраны с фильтрацией пакетов, они работают на сетевом уровне модели OSI, фильтруя входящие и исходящие пакеты на основе проверки IP-адресов и номеров портов. Межсетевые экраны экспертного уровня также выполняют функции шлюза сеансового уровня, определяя, относятся ли пакеты к соответствующему сеансу. И, наконец, брандмауэры экспертного уровня берут на себя функции шлюза прикладного уровня, оценивая содержимое каждого пакета в соответствии с политикой безопасности, выработанной в конкретной организации.

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

Выводы по теме

  1. Межсетевое экранирование повышает безопасность объектов внутренней сети за счет игнорирования неавторизованных запросов из внешней среды, тем самым, обеспечивая все составляющие информационной безопасности. Кроме функций разграничения доступа экранирование обеспечивает регистрацию информационных обменов.

  2. Функции экранирования выполняет межсетевой экран или брандмауэр (firewall), под которым понимают программную или программно-аппаратную систему, которая выполняет контроль информационных потоков, поступающих в информационную систему и/или выходящих из нее и обеспечивает защиту информационной системы посредством фильтрации информации.

  3. Межсетевые экраны классифицируются по следующим признакам: по месту расположения в сети и по уровню фильтрации, соответствующему эталонной модели OSI/ISO.

  4. Внешние межсетевые экраны обычно работают только с протоколом TCP/IP глобальной сети Интернет. Внутренние сетевые экраны могут поддерживать несколько протоколов.

  5. Межсетевые экраны разделяют на четыре типа:

  • межсетевые экраны с фильтрацией пакетов;

  • шлюзы сеансового уровня;

  • шлюзы прикладного уровня;

  • 14.9. Межсетевые экраны

    Интерес к межсетевым экранам (брандмауэр, firewall) со стороны людей, подключенных к интернет, все возрастает и появились даже приложения для локальной сети, предоставляющие повышенный уровень безопасности. В этом разделе мы надеемся изложить что такое межсетевые экраны, как их использовать, и как использовать возможности, предоставляемые ядром FreeBSD для их реализации.

    14.9.1. Что такое межсетевой экран?

    Есть два четко различающихся типа межсетевых экранов, повседневно используемых в современном интернет. Первый тип правильнее называть маршрутизатор с фильтрацией пакетов . Этот тип межсетевого экрана работает на машине, подключенной к нескольким сетям и применяет к каждому пакету набор правил, определяющий переправлять ли этот пакет или блокировать. Второй тип, известный как прокси сервер , реализован в виде даемонов, выполняющих аутентификацию и пересылку пакетов, возможно на машине с несколькими сетевыми подключениями, где пересылка пакетов в ядре отключена.

    Иногда эти два типа межсетевых экранов используются вместе, так что только определенной машине (известной как защитный хост (bastion host) ) позволено отправлять пакеты через фильтрующий маршрутизатор во внутреннюю сеть. Прокси сервисы работают на защитном хосте, что обычно более безопасно, чем обычные механизмы аутентификации.

    FreeBSD поставляется с встроенным в ядро фильтром пакетом (известным как IPFW), ему будет посвящена оставшаяся часть раздела. Прокси серверы могут быть собраны на FreeBSD из программного обеспечения сторонних разработчиков, но их слишком много и невозможно описать их в этом разделе.

    14.9.1.1. Маршрутизаторы с фильтрацией пакетов

    Маршрутизатор это машина, пересылающая пакеты между двумя или несколькими сетями. Маршрутизатор с фильтрацией пакетов запрограммирован на сравнение каждого пакета со списком правил перед тем как решить, пересылать его или нет. Большинство современного программного обеспечения маршрутизации имеет возможности фильтрации, и по умолчанию пересылаются все пакеты. Для включения фильтров, вам потребуется определить набор правил.

    Для определения того, должен ли быть пропущен пакет, межсетевой экран ищет в наборе правило, совпадающее с содержимым заголовков пакета. Как только совпадение найдено, выполняется действие, присвоенное данному правилу. Действие может заключаться в отбрасывании пакета, пересылке пакета, или даже в отправлении ICMP сообщения в адрес источника. Учитывается только первое совпадение, поскольку правила просматриваются в определенном порядке. Следовательно, список правил можно назвать «цепочкой правил» .

    Критерий отбора пакетов зависит от используемого программного обеспечения, но обычно вы можете определять правила, зависящие от IP адреса источника пакета, IP адреса назначения, номера порта источника пакета, номера порта назначения (для протоколов, поддерживающих порты), или даже от типа пакета (UDP, TCP, ICMP, и т.д.).

    14.9.1.2. Прокси серверы

    Прокси серверы это компьютеры, где обычные системные даемоны (telnetd , ftpd , и т.д.) заменены специальными серверами. Эти серверы называются прокси серверами , поскольку они обычно работают только с входящими соединениями. Это позволяет запускать (например) telnet прокси сервер на межсетевом экране, и делать возможным вход по telnet на межсетевой экран, прохождение механизма аутентификации, и получение доступа к внутренней сети (аналогично, прокси серверы могут быть использованы для выхода во внешнюю сеть).

    Прокси серверы обычно лучше защищены, чем другие серверы, и зачастую имеют более широкий набор механизмов аутентификации, включая системы «одноразовых» паролей, так что даже если кто-то узнает, какой пароль вы использовали, он не сможет использовать его для получения доступа к системе, поскольку срок действия пароля истекает немедленно после его первого использования. Поскольку пароль не дает доступа непосредственно к компьютеру, на котором находится прокси-сервер, становится гораздо сложнее установить в систему backdoor.

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

    14.9.2. Что позволяет делать IPFW?

    Программное обеспечение IPFW, поставляемое с FreeBSD, это система фильтрации и учета пакетов, находящаяся в ядре и снабженная пользовательской утилитой настройки, ipfw (8) . Вместе они позволяют определять и просматривать правила, используемые ядром при маршрутизации.

    IPFW состоит из двух связанных частей. Межсетевой экран осуществляет фильтрацию пакетов. Часть, занимающаяся учетом IP пакетов, отслеживает использование маршрутизатора на основе правил подобных тем, что используются в части межсетевого экрана. Это позволяет администратору определять, например, объем трафика, полученного маршрутизатором от определенного компьютера, или объем пересылаемого WWW трафика.

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

    14.9.3. Включение IPFW в FreeBSD

    Поскольку основная часть системы IPFW находится в ядре, вам потребуется добавить один или несколько параметров в файл настройки ядра, в зависимости от требуемых возможностей, и пересобрать ядро. Обратитесь к главе о пересборке ядра (Гл. 8) за подробным описанием этой процедуры.

    Внимание: Правилом IPFW по умолчанию является deny ip from any to any. Если вы не добавите других правил во время загрузки для разрешения доступа, то заблокируете доступ к серверу с включенным в ядро межсетевым экраном после перезагрузки. Мы предлагаем указать firewall_type=open в файле /etc/rc.conf при первоначальном добавлении межсетевого экрана, а затем, после тестирования его работоспособности, отредактировать правила в файле /etc/rc.firewall. Дополнительной предосторожностью может быть первоначальная настройка межсетевого экрана с локальной консоли, вместо входа через ssh . Кроме того, возможна сборка ядра с параметрами IPFIREWALL и IPFIREWALL_DEFAULT_TO_ACCEPT. В этом случае правило IPFW по умолчанию будет изменено на allow ip from any to any, что предотвратит возможную блокировку.

    Существует четыре параметра настройки ядра, относящихся к IPFW:

    options IPFIREWALL

    Включает в ядро код для фильтрации пакетов.

    Options IPFIREWALL_VERBOSE

    Включает протоколирование пакетов через syslogd (8) . Без этого параметра, даже если вы укажете в правилах фильтрации протоколировать пакеты, это не сработает.

    Options IPFIREWALL_VERBOSE_LIMIT=10

    Ограничивает число пакетов, протоколируемых каждым правилом через syslogd (8) . Вы можете использовать этот параметр если хотите протоколировать работу межсетевого экрана, но не хотите делать возможной DoS атаку путем переполнения syslog.

    Когда для одного из правил в цепочке достигается определенный параметром предел, протоколирование для этого правила выключается. Для включения протоколирования, вам потребуется сбросить соответствующий счетчик с помощью утилиты ipfw (8) :

    # ipfw zero 4500

    где 4500 это номер правила, для которого вы хотите возобновить протоколирование.

    Options IPFIREWALL_DEFAULT_TO_ACCEPT

    Изменяет правило по умолчанию с «deny» на «allow». Это предотвращает возможное блокирование, если ядро загружено с поддержкой IPFIREWALL, но межсетевой экран еще не настроен. Этот параметр также полезен, если вы используете ipfw (8) в качестве средства от определенных проблем по мере их возникновения. Тем не менее, используйте параметр с осторожностью, поскольку он открывает межсетевой экран и изменяет его поведение.

    Замечание: Предыдущие версии FreeBSD содержали параметр IPFIREWALL_ACCT. Этот параметр устарел, поскольку код автоматически включает возможность учета.

    14.9.4. Настройка IPFW

    Настройка программного обеспечения IPFW выполняется с помощью утилиты ipfw (8) . Синтаксис этой команды выглядит очень сложным, но он становится относительно прост как только вы поймете его структуру.

    В настоящее время утилита использует четыре различных категории команд: добавление/удаление (addition/deletion), просмотр (listing), сброс (flushing) и очистка (clearing). Добавление/удаление используется для создания правил, определяющих как пакеты принимаются, отбрасываются и протоколируются. Просмотр используется для определения содержимого набора правил (называемого еще цепочкой) и счетчиков пакетов (учет). Сброс используется для удаления всех правил цепочки. Очистка используется для обнуления одного или нескольких счетчиков.

    14.9.4.1. Изменение правил IPFW

    ipfw [-N] команда [номер] действие протокол адреса [параметры]

    При использовании этой формы команды доступен один флаг:

    Разрешение адресов и имен сервисов при отображении.

    Задаваемая команда может быть сокращена до более короткой уникальной формы. Существующие команды :

    Добавление правила к списку фильтрации/учета

    Удаление правила из списка фильтрации/учета

    Предыдущие версии IPFW использовали отдельные записи для фильтрации и учета пакетов. Современные версии учитывают пакеты для каждого правила.

    Если указано значение номер , оно используется для помещения правила на определенную позицию в цепочке. Иначе правило помещается в конец цепочки с номером на 100 больше, чем у предыдущего правила (сюда не включается правило по умолчанию с номером 65535).

    С параметром log соответствующие правила выводят информацию на системную консоль, если ядро собрано с опцией IPFIREWALL_VERBOSE.

    Существующие действия :

    Отбросить пакет и отправить в адрес источникаICMP пакет, сообщающий о недостижимости хоста или порта.

    Пропустить пакет как обычно. (синонимы: pass, permit, и accept)

    Отбросить пакет. Источнику не выдается ICMP сообщение (как если бы пакет вообще не достиг цели).

    Обновить счетчик пакета, но не применять по отношению к нему правила allow/deny. Поиск продолжится со следующего правила в цепочке.

    Каждое действие может быть записано в виде более короткого уникального префикса.

    Могут быть определены следующие протоколы :

    Соответствует всем IP пакетам

    Соответствует ICMP пакетам

    Соответствует TCP пакетам

    Соответствует UDP пакетам

    Поле адреса формируется так:

    источник адрес/маска [порт ] цель адрес/маска [порт ]

    Вы можете указать port только вместе с протоколами , поддерживающими порты (UDP и TCP).

    Параметр via опционален и может содержать IP адрес или имя домена локального IP интерфейса, или имя интерфейса (например ed0), он настраивает правило на соответствие только тем пакетам, которые проходят через этот интерфейс. Номера интерфейсов могут быть заменены на опциональную маску. Например, ppp* будет соответствовать PPP интерфейсам ядра.

    Синтаксис, используемый для указания адреса/маски :

    адрес или адрес /маска-биты или адрес :маска-шаблон

    Вместо IP адреса возможно указание существующего имени хоста. маска-биты это десятичный номер, указывающий количество бит, которые должны быть установлены в маске адреса. Например, 192.216.222.1/24 создаст маску, соответствующую всем адресам подсети класса C (в данном случае, 192.216.222). A valid hostname may be specified in place of the IP address. маска-шаблон это IP, который будет логически перемножен с заданным адресом. Ключевое слово any может использоваться для обозначения «любого IP адреса».

    Номера портов указываются в следующем формате:

    порт [,порт [,порт [.]]]

    Для указания одного порта или списка портов, или

    порт -порт

    Для указания диапазона портов. Вы можете также комбинировать указание одного диапазона со списком портов, но диапазон всегда должен указываться первым.

    Доступные параметры :

    Срабатывает, если пакет не является первым пакетом дейтаграммы.

    Соответствует входящим пакетам.

    Соответствует исходящим пакетам.

    Ipoptions spec

    Срабатывает, если заголовок IP содержит перечисленный через запятую список параметров, указанных в spec . Поддерживаемые параметры IP: ssrr (strict source route), lsrr (loose source route), rr (record packet route), и ts (time stamp). Действие отдельных параметров может быть изменено путем указания префикса!.

    Established

    Срабатывает, если пакет является частью уже установленного TCP соединения (т.е. если установлены биты RST или ACK). Вы можете поднять производительность межсетевого экрана, поместив правило с established близко к началу цепочки.

    Соответствует, если пакет является попыткой установки TCP соединения (установлен бит SYN, а бит ACK не установлен).

    Tcpflags флаги

    Срабатывает, если заголовок TCP содержит список перечисленных через запятую флагов . Поддерживаемые флаги: fin, syn, rst, psh, ack, и urg. Действие правил по отдельным флагам может быть изменено указанием префикса!.

    Icmptypes типы

    Срабатывает, если тип пакета ICMP находится в списке типы . Список может быть указан в виде любой комбинации диапазонов и/или отдельных типов, разделенных запятыми. Обычно используемые типы ICMP: 0 echo reply (ping reply), 3 destination unreachable, 5 redirect, 8 echo request (ping request), и 11 time exceeded (используется для обозначения истечения TTL, как с traceroute (8) ).

    14.9.4.2. Просмотр правил IPFW

    Синтаксис этой формы команды такой:

    ipfw [-a] [-c] [-d] [-e] [-t] [-N] [-S] list

    Для этой формы команды существует семь флагов:

    Показывать значения счетчиков. Этот параметр -- единственный путь для просмотра значений счетчиков.

    Просмотр правил в компактной форме.

    Показывать динамические правила в дополнение к статическим.

    Если определен параметр -d, показывать также динамические правила с истекшим сроком действия.

    Отображать последнее время срабатывание для каждого правила в цепочке. Этот список несовместим с синтаксисом, принимаемым ipfw (8) .

    Попытаться разрешить заданные адреса и имена сервисов.

    Отображать набор, к которому принадлежит каждое правило. Если этот флаг не указан, заблокированные правила не будут отображены.

    14.9.4.3. Сброс правил IPFW

    Синтаксис для сброса правил:

    Все правила в цепочке будут удалены, за исключением правила по умолчанию, устанавливаемого ядром (номер 65535). Будьте осторожны при сбросе правил; правило, отбрасывающее пакеты по по умолчанию отключит систему от сети, пока разрешающие правила не будут добавлены в цепочку.

    14.9.4.4. Очистка счетчиков пакетов IPFW

    Синтаксис для очистки одного или нескольких счетчиков пакетов:

    ipfw zero [index ]

    При использовании без аргумента номер будут очищены все счетчики пакетов. Если index указан, операция очистки применяется только к указанному правилу цепочки.

    14.9.5. Примеры команд для ipfw

    Следующая команда запретит все пакеты с хоста evil.crackers.org на telnet порт хоста nice.people.org:

    # ipfw add deny tcp from evil.crackers.org to nice.people.org 23

    Следующий пример запрещает и протоколирует весь TCP трафик из сети crackers.org (класса C) к компьютеру nice.people.org (на любой порт).

    # ipfw add deny log tcp from evil.crackers.org/24 to nice.people.org

    Если вы хотите запретить организацию X сессий в вашу сеть (часть сети класса C), следующая команда осуществит необходимую фильтрацию:

    # ipfw add deny tcp from any to my.org/28 6000 setup

    Для просмотра записей учета:

    # ipfw -a list или в краткой форме # ipfw -a l

    Вы можете также просмотреть время последнего срабатывания правил с помощью команды:

    14.9.6. Создание межсетевого экрана с фильтрацией пакетов

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

    Замечание: Если вы используете версию команды accept с протоколированием, будьте осторожны, поскольку она может создать большой объем протокольных данных. Будет произведено протоколирование каждого пакета, проходящего через межсетевой экран, поэтому большие объемы FTP/http и другого трафика существенно замедлят систему. Это также увеличит задержку таких пакетов, поскольку ядру требуется выполнить дополнительную работу перед тем, как пропустить пакет. syslogd также будет использовать гораздо больше времени процессора, поскольку он отправит все дополнительные данные на диск, и раздел /var/log может быть быстро заполнен.

    Вам потребуется включить межсетевой экран в /etc/rc.conf.local или /etc/rc.conf. Соответствующая страница справочника разъясняет что именно необходимо сделать и содержит примеры готовых настроек. Если вы не используете предустановленную настройку, команда ipfw list может поместить текущий набор правил в файл, откуда он может быть помещен в стартовые файлы системы. Если вы не используете /etc/rc.conf.local или /etc/rc.conf для включения межсетевого экрана, важно убедиться в том, что он включается после настройки интерфейсов.

    Далее необходимо определить, что именно делает ваш межсетевой экран! Это в основном зависит от того, насколько широкий доступ вы хотите открыть снаружи к вашей сети. Вот несколько общих правил:

      Заблокируйте доступ снаружи к портам TCP с номерами ниже 1024. Здесь расположена большая часть критичных для безопасности сервисов, таких как finger, SMTP (почта) и telnet.

      Заблокируйте весь входящий трафик UDP. Есть очень немного полезных сервисов, работающих через UDP, но они обычно представляют угрозу безопасности (например, Sun RPC и NFS протоколы). У этого способа есть и недостатки, поскольку протокол UDP не поддерживает соединения, и запрещение входящих пактов заблокирует также ответы на исходящий UDP трафик. Это может стать проблемой для тех, кто использует внешние серверы, работающие с UDP. Если вы хотите открыть доступ к этим сервисам, потребуется разрешить входящие пакеты с соответствующих портов. К примеру, для ntp вам может потребоваться разрешить пакеты, приходящие с порта 123.

      Заблокировать весь трафик снаружи к порту 6000. Порт 6000 используется для доступа к серверам X11, и может быть угрозой безопасности (особенно если у пользователей есть привычка выполнять на своих рабочих станциях команду xhost +). X11 может использовать диапазон портов, начинающийся с 6000, верхний предел определяется количеством X дисплеев, которые могут быть запущены на машине. Верхний предел, определенный RFC 1700 (Assigned Numbers), равен 6063.

      Проверьте порты, используемые внутренними сервисами (например, SQL серверами и т.п.). Возможно хорошей идеей является блокирование и этих портов, поскольку они обычно не попадают в диапазон 1-1024, указанный выше.

    Еще один список для проверки настроек межсетевого экрана доступен на CERT по адресу http://www.cert.org/tech_tips/packet_filtering.html

    Как сказано выше, все эти правила всего лишь руководство . Вы сами сможете решить, какие правила фильтрации будут использованы в межсетевом экране. Мы не можем нести НИКАКОЙ ответственности в случае взлома вашей сети, даже если вы следовали советам, представленным выше.

    14.9.7. Накладные расходы и оптимизация IPFW

    Многие пользователи хотят знать, как сильно IPFW нагружает систему. Ответ в основном зависит от набора правил и скорости процессора. При небольшом наборе правил для большинства приложений, работающих в Ethernet ответ «незначительно». Для тех, кому нужен более точный ответ, и предназначен этот раздел.

    Последующие измерения были выполнены с 2.2.5-STABLE на 486-66. (Хотя IPFW немного изменился в последующих релизах FreeBSD, скорость осталась приблизительно той же.) IPFW был модифицирован для измерения времени, затраченного ip_fw_chk, с выводом на консоль результата после каждого 1000-го пакета.

    Были протестированы два набора из 1000 правил. Первый был составлен для демонстрации плохого набора правил путем повторения правила:

    # ipfw add deny tcp from any to any 55555

    Этот набор правил плох, поскольку большая часть правил IPFW не соответствует проверяемым пакетам (из-за номера порта). После 999-й итерации этого правила следует правило allow ip from any to any.

    Второй набор правил был разработан для быстрейшей проверки каждого правила:

    # ipfw add deny ip from 1.2.3.4 to 1.2.3.4

    Не совпадающий IP адрес источника в правиле выше приведет к очень быстрой проверке этих правил. Как и прежде, 1000-е правило allow ip from any to any.

    Затраты на проверку пакета в первом случае приблизительно 2.703 мс/пакет, или приблизительно 2.7 микросекунд на правило. Теоретический предел скорости проверки около 370 пакетов в секунду. Предполагая подключение через 10 Mbps Ethernet и размер пакета приблизительно 1500 байт, получаем только 55.5% использования пропускной способности.

    Во втором случае каждый пакет был проверен приблизительно за 1.172 мс, или приблизительно 1.2 микросекунд на правило. Теоретический предел скорости проверки около 853 пакетов в секунду, что делает возможным полное использование пропускной способности 10 Mbps Ethernet.

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

      Поместите правило established как можно раньше для обработки большей части TCP трафика. Не помещайте перед ним правила allow tcp.

      Помещайте часто используемые правила ближе к началу набора чем редко используемые (конечно же, без изменения действия всего набора ). Вы можете определить наиболее часто используемые правила путем проверки счетчиков пакетов командой ipfw -a l.

    Число инцидентов, связанных с информационной безопасностью, по данным ведущих аналитических агентств постоянно возрастает. Специалисты, отвечающие за защиту информации, отмечают возрастающую активность внешних злоумышленников, использующих последние разработки в области нападения, пытающихся проникнуть в корпоративные сети для совершения своих «черных» дел.

    Число инцидентов, связанных с информационной безопасностью, по данным ведущих аналитических агентств постоянно возрастает. Специалисты, отвечающие за защиту информации, отмечают возрастающую активность внешних злоумышленников, использующих последние разработки в области нападения, пытающихся проникнуть в корпоративные сети для совершения своих «черных» дел. Они не ограничиваются кражей информации или выведением узлов сети из строя. Нередки случаи, когда взломанные сети использовались для совершения новых атак. Поэтому защита периметра информационной системы является обязательным элементом системы информационной безопасности организации.

    При этом для определения состава компонентов защиты периметра, обеспечивающих минимальный (начальный) уровень информационной безопасности, необходимо произвести анализ наиболее распространенных угроз информационным ресурсам организации:
    сетевые атаки, направленные на недоступность информационных ресурсов (к примеру, web-серверов, сервисов электронной почты и т.д.) - атаки класса DoS и DDoS;
    компрометация информационных ресурсов и эскалация привилегий как со стороны инсайдеров, так и внешних злоумышленников, как с целью использования ваших ресурсов, так и с целью нанесения ущерба;
    действия вредоносного программного кода (вирусы, сетевые черви, трояны, программы-шпионы и т.д.);
    утечка конфиденциальной информации и похищение данных как через сеть (e-mail, FTP, web и пр.), так и через внешние носители;
    различные сетевые атаки на приложения.

    Для минимизации угроз информационной безопасности необходимо внедрение межсетевых экранов в разных уровнях модели OSI, как показано в таблице.

    Таблица. Межсетевые экраны и модели OSI

    Работа всех межсетевых экранов основана на использовании информации разных уровней модели OSI (табл.). Модель OSI, разработанная Международной организацией по стандартизации, определяет семь уровней, на которых компьютерные системы взаимодействуют друг с другом, - начиная с уровня физической среды передачи данных и заканчивая уровнем прикладных программ, используемых для коммуникаций. В общем случае, чем выше уровень модели OSI, на котором брандмауэр фильтрует пакеты, тем выше и обеспечиваемый им уровень защиты.

    Могут быть выбраны следующие методы контроля трафика между локальной и внешней сетью:
    1. Фильтрация пакетов - основан на настройке набора фильтров. В зависимости от того, удовлетворяет ли поступающий пакет указанным в фильтрах условиям, он пропускается в сеть либо отбрасывается.
    2. Данный класс маршрутизаторов представляет собой транслятор TCP-соединения. Шлюз принимает запрос авторизованного клиента на конкретные услуги и после проверки допустимости запрошенного сеанса устанавливает соединение с местом назначения (внешним хостом). После этого шлюз копирует пакеты в обоих направлениях, не осуществляя их фильтрации. Как правило, пункт назначения задается заранее, в то время как источников может быть много. Используя различные порты, можно создавать разнообразные конфигурации соединений. Данный тип шлюза позволяет создать транслятор TCP-соединения для любого определенного пользователем сервиса, базирующегося на ТСР, осуществлять контроль доступа к этому сервису и сбор статистики по его использованию.
    3. Proxy-сервер - между локальной и внешней сетями устанавливается дополнительное устройство proxy-сервер, который служит «воротами», через которые должен проходить весь входящий и исходящий трафик. Statefulinspection - инспектирование входящего трафика - один из самых передовых способов реализации межсетевого экрана. Под инспекцией подразумевается анализ не всего пакета, а лишь его специальной ключевой части и сравнение с заранее известными значениями из базы данных разрешенных ресурсов. Данный метод обеспечивает наибольшую производительность работы межсетевого экрана и наименьшие задержки.

    Принцип действия межсетевого экрана основан на контроле поступающего извне трафика.

    Межсетевой экран может быть выполнен аппаратно или программно. Конкретная реализация зависит от масштаба сети, объема трафика и необходимых задач. Наиболее распространенным типом брандмауэров является программный. В этом случае он реализован в виде программы, запущенной на конечном ПК, либо пограничном сетевом устройстве, например, маршрутизаторе. В случае аппаратного исполнения межсетевой экран представляет собой отдельный сетевой элемент, обладающий обычно большими производительными способностями, но выполняющий аналогичные задачи.

    Межсетевой экран позволяет настраивать фильтры, отвечающие за пропуск трафика по следующим критериям:
    1. IP-адрес. Как известно, любое конечное устройство, работающее по протоколу IP, должно иметь уникальный адрес. Задав какой-то адрес либо определенный диапазон, можно запретить получать из них пакеты, либо, наоборот, разрешить доступ только с данных IP-адресов.
    2. Доменное имя. Как известно, сайту в сети Интернет, точнее его IP-адресу, может быть поставлено в соответствие буквенно-цифровое имя, которое гораздо проще запомнить, чем набор цифр. Таким образом, фильтр может быть настроен на пропуск трафика только к/от одного из ресурсов, либо запретить доступ к нему.
    3. Порт. Речь идет о программных портах, т.е. точках доступа приложений к услугам сети. Так, например, ftp использует порт 21, а приложения для просмотра web-страниц порт 80. Это позволяет запретить доступ с нежелательных сервисов и приложений сети, либо, наоборот, разрешить доступ только к ним.
    4. Протокол. Межсетевой экран может быть настроен на пропуск данных только какого-либо одного протокола, либо запретить доступ с его использованием. Обычно тип протокола может говорить о выполняемых задачах используемого им приложения и о наборе параметров защиты. Таким образом, доступ может быть настроен только для работы какого-либо одного специфического приложения и предотвратить потенциально опасный доступ с использованием всех остальных протоколов.

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

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

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

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

    Безопасность может быть дополнительно повышена с использованием «межсетевого экрана с сохранением состояния». Такой межсетевой экран сохраняет информацию об открытых соединениях и разрешает только трафик через открытые соединения или открытие новых соединений. Недостаток межсетевого экрана с сохранением состояния в том, что он может быть уязвим для атак DoS (Denial of Service, отказ в обслуживании), если множество новых соединений открывается очень быстро. Большинство межсетевых экранов позволяют комбинировать поведение с сохранением состояния и без сохранения состояния, что позволяет создавать оптимальную конфигурацию для каждой конкретной системы.

    В качестве примера можно рассмотреть создание правил фильтрации в простом пакетном фильтре. Существуют несколько возможных параметров при фильтрации пакетов. Наиболее простым является адресная фильтрация; она состоит в сравнении адресов в пакете с адресами, прописанными в правилах. Если адреса совпадают, пакет пропускается. Это сравнение производится следующим образом:

    1. Можно рассмотреть следующее правило: все хосты сети 10.1.x.x могут взаимодействовать с хостами сети 10.2.x.x. Пишется это правило следующем образом:

    10.1.0.0 & 255.255.0.0 — 10.2.0.0 & 255.255.0.0
    ——- Источник —— —— Назначение ——

    Теперь можно применить правило к пакету, который отправлен от хоста 10.1.1.2 к хосту 10.3.7.7. Наложим маску к обоим адресам - адресу в правиле и адресу в пакете. Затем проверяется, одинаковы ли адреса источника и назначения. В результате будем иметь:

    Для адреса источника:

    10.1.0.0 & 255.255.0.0 = 10.1.0.0 (для правила)
    10.1.1.2 & 255.255.0.0 = 10.1.0.0 (для пакета)

    После применения маски оба адреса совпадают. Проверим теперь адрес назначения:

    10.2.0.0 & 255.255.0.0 = 10.2.0.0 (для правила)
    10.3.7.7 & 255.255.0.0 = 10.3.0.0 (для пакета)

    Так как адреса назначения пакета и правила после применения маски не совпадают, то это правило не должно применяться к данному пакету.

    Эта операция выполняется по всему списку адресов и масок источника и назначения до достижения конца списка или до тех пор, пока пакет не будет удовлетворять одному из правил. Список правил имеет следующий формат:

    10.1.1.2 & 255.255.255.255 — 10.2.0.0 & 255.255.0.0
    10.3.3.2 & 255.255.255.255 — 10.1.2.1 & 255.255.255.255
    10.1.1.0 & 255.0.0.0 — 10.2.3.0 & 255.255.255.0
    10.1.0.0 & 255.255.0.0 — 10.2.0.0 & 255.255.0.0

    Кроме адресов источника и назначения, каждый IP-пакет заключает в себе информацию об используемых протоколе и сервисе. Ее можно использовать как дополнительный параметр фильтрации.

    Например, сервисы в протоколе TCP всегда связаны с портом. В результате можно привести в соответствие список портов с адресами.

    Воспользуемся для примера двумя хорошо знакомыми сервисами - POP3 и HTTP. POP3 использует порт 110, а HTTP - порт 80. Следовательно, мы можем добавить эти порты в описание правила. В результате получим:

    10.1.0.0 & 255.255.0.0 — 10.2.0.0 & 255.255.0.0 TCP 80 110
    —— Источник —— —— Назначение —— Протокол – Порты —

    Это правило разрешает каждому пакету, следующему от сети 10.1.x.x к сети 10.2.x.x и использующему сервисы HTTP и POP3, проходить через межсетевой экран.

    Сначала адреса из правила сравниваются с адресами пакета. Если после наложения маски оба адреса совпадают, протокол и порт назначения в пакете будут сравниваться с протоколом и списком портов, описанных в правиле. Если протокол совпадает, а порт в правиле одинаков с портом пакета, то такой пакет удовлетворяет правилу. В противном случае поиск будет продолжен в списке правил.

    С учетом этой новой информации набор правил будет иметь следующий формат:

    10.1.1.2 & 255.255.255.255 — 10.2.0.0 & 255.255.0.0 UDP 53
    10.3.3.2 & 255.255.255.255 — 10.1.2.1 & 255.255.255.255 TCP 80
    10.1.1.0 & 255.0.0.0 — 10.2.3.0 & 255.255.255.0 TCP 21 20 113
    10.1.0.0 & 255.255.0.0 — 10.2.0.0 & 255.255.0.0 ICMP 0 8

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

    Цель такой процедуры состоит в блокировании атаки, известной как IP-спуфинг, суть которой состоит в том, что во внутреннюю сеть посылается пакет с фальшивым адресом источника (из внутренней сети). При использовании в качестве параметра имени сетевого интерфейса можно легко блокировать этот вид атаки. Например, если внутренняя сеть взаимодействует с межсетевым экраном через интерфейс de0, то необходимо лишь установить в правилах, что пакеты с адресом источника из внутренней сети следует принимать, только если они пришли от данного интерфейса; во всех других случаях они будут отбрасываться.

    В Одноклассники

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

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

    Кроме того, межсетевые экраны, как правило, обладают большим набором настроек. Прохождение трафика на межсетевом экране можно настраивать по службам, IP -адресам отправителя и получателя, по идентификаторам пользователей, запрашивающих службу. Межсетевые экраны позволяют осуществлять централизованное управление безопасностью . В одной конфигурации администратор может настроить разрешенный входящий трафик для всех внутренних систем организации. Это не устраняет потребность в обновлении и настройке систем, но позволяет снизить вероятность неправильного конфигурирования одной или нескольких систем, в результате которого эти системы могут подвергнуться атакам на некорректно настроенную службу.

    Определение типов межсетевых экранов

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

    Межсетевые экраны прикладного уровня

    Межсетевые экраны прикладного уровня, или прокси-экраны, представляют собой программные пакеты, базирующиеся на операционных системах общего назначения (таких как Windows NT и Unix) или на аппаратной платформе межсетевых экранов. Межсетевой экран обладает несколькими интерфейсами, по одному на каждую из сетей, к которым он подключен. Набор правил политики определяет, каким образом трафик передается из одной сети в другую. Если в правиле отсутствует явное разрешение на пропуск трафика, межсетевой экран отклоняет или аннулирует пакеты.

    Правила политики безопасности усиливаются посредством использования модулей доступа. В межсетевом экране прикладного уровня каждому разрешаемому протоколу должен соответствовать свой собственный модуль доступа. Лучшими модулями доступа считаются те, которые построены специально для разрешаемого протокола. Например, модуль доступа FTP предназначен для протокола FTP и может определять, соответствует ли проходящий трафик этому протоколу и разрешен ли этот трафик правилами политики безопасности.

    При использовании межсетевого экрана прикладного уровня все соединения проходят через него (см. рис. 10.1). Как показано на рисунке, соединение начинается на системе-клиенте и поступает на внутренний интерфейс межсетевого экрана. Межсетевой экран принимает соединение, анализирует содержимое пакета и используемый протокол и определяет, соответствует ли данный трафик правилам политики безопасности. Если это так, то межсетевой экран инициирует новое соединение между своим внешним интерфейсом и системой-сервером.

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


    Рис. 10.1.

    Примечание

    Здесь подразумевается, что модуль доступа на межсетевом экране сам по себе неуязвим для атаки. Если же программное обеспечение разработано недостаточно тщательно, это может быть и ложным утверждением.

    Дополнительным преимуществом архитектуры данного типа является то, что при ее использовании очень сложно, если не невозможно, "скрыть" трафик внутри других служб. Например, некоторые программы контроля над системой, такие как NetBus и

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то