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

Большинство компонентов межсетевых экранов можно от­нести к одной из трех категорий:

• фильтрующие маршрутизаторы;

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

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

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

Фильтрующие маршрутизаторы.Фильтрующий маршрутизатор представляет собой мар­шрутизатор или работающую на сервере программу, сконфигури­рованные таким образом, чтобы фильтровать входящие и исходя­щие пакеты. Фильтрация пакетов осуществляется на основе информации, содержащейся в TCP- и IP-заголовках пакетов. Процесс инкапсуляции передаваемых данных и формирования TCP- и IP-заголовков пакетов с данными в стеке протоколов TCP/IP показан на рис. 30.

Фильтрующий маршрутизатор обычно может фильтровать IP-пакеты на основе группы следующих полей заголовка па­кета:

• IP-адрес отправителя (адрес системы, которая послала пакет);

• IP-адрес получателя (адрес системы, которая принимает пакет);

• порт отправителя (порт соединения в системе-отправителе);

• порт получателя (порт соединения в системе-получателе).

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

Основные компоненты межсетевых экранов - student2.ru

Рис. 30. Схема инкапсуляции данных в стеке протоколов TCP/IP

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

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

Добавление фильтрации по портам TCP и UDP к фильтра­ции по IP-адресам обеспечивает большую гибкость. Известно, что такие серверы, как демон TELNET, обычно связаны с конкретными портами (например, порт 23 протокола TELNET). Если межсетевой экран может блокировать соединения TCP или UDP с определен­ными портами или от них, то можно реализовать политику безо­пасности, при которой некоторые виды соединений устанавлива­ются только с конкретными хост-компьютерами.

Например, внутренняя сеть может блокировать все вход­ные соединения со всеми хост-компьютерами за исключением не­скольких систем. Для этих систем могут быть разрешены только определенные сервисы (SMTP для одной системы и TELNET или FTP - для другой). При фильтрации по портам TCP и UDP эта по­литика может быть реализована фильтрующим маршрутизатором или хост-компьютером с возможностью фильтрации пакетов (рис. 31).

Основные компоненты межсетевых экранов - student2.ru

Рис. 31. Схема фильтрации трафика SMTP и TELNET

В качестве примера работы фильтрующего маршрутизато­ра рассмотрим реализацию политики безопасности, допускающей определенные соединения с внутренней сетью с адресом 123.4.*.* Соединения TELNET разрешаются только с одним хост-компьютером с адресом 123.4.5.6, который может быть приклад­ным TELNET-шлюзом, а SMTP-соединения - только с двумя хост-компьютерами с адресами 123.4.5.7 и 123.4.5.8, которые могут быть двумя шлюзами электронной почты. Обмен no NNTP (Network Основные компоненты межсетевых экранов - student2.ru News Transfer Protocol) разрешается только от сервера новостей с адресом 129.6.48.254 и только с NNTP-сервером сети с адресом 123.4.5.9, а протокол NTP (сетевого времени) - для всех хост-компьютеров. Все другие серверы и пакеты блокируются. Со­ответствующий набор правил представлен в таблице.

Правила фильтрации

Тип Адрес отправителя Адрес получателя Порт отправителя Порт получателя Действие
TCP * 123.4.5.6 > 1023 Разрешить
TCP * 123.4.5.7 > 1023 Разрешить
TCP * 123.4.5.8 > 1023 Разрешить
TCP 129.6.48.254 123.4.5.9 > 1023 Разрешить
UDP * 123.4.*.* > 1023 Разрешить
* * * * * Запретить

Первое правило позволяет пропускать пакеты TCP из сети Internet от любого источника с номером порта большим, чем 1023, к получателю с адресом 123.4.5.6 в порт 23. Порт 23 связан с сервером TELNET, а все клиенты TELNET должны иметь неприви­легированные порты с номерами не ниже 1024.

Второе и третье правила работают аналогично и разреша­ют передачу пакетов к получателям с адресами 123.4.5.7 и 123.4.5.8 в порт 25, используемый SMTP.

Четвертое правило пропускает пакеты к NNTP-серверу се­ти, но только от отправителя с адресом 129.6.48.254 к получателю с адресом 123.4.5.9 с портом назначения 119 (129.6.48.254 -единственный NNTP-сервер, от которого внутренняя сеть получает новости, поэтому доступ к сети для выполнения протокола NNTP ограничен только этой системой).

Пятое правило разрешает трафик NTP, который использу­ет протокол UDP вместо TCP, от любого источника к любому полу­чателю внутренней сети.

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

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

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

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

К положительным качествам фильтрующих маршрутизато­ров следует отнести:

сравнительно невысокую стоимость;

гибкость в определении правил фильтрации;

небольшую задержку при прохождении пакетов.

Недостатками фильтрующих маршрутизаторов являются:

внутренняя сеть видна (маршрутизируется) из сети Internet;

правила фильтрации пакетов трудны в описании и требуют очень хороших знаний технологий TCP и UDP;

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

аутентификацию с использованием IP-адреса можно обмануть путем подмены IP-адреса (атакующая система выдает себя за другую, используя ее IP-адрес);

отсутствует аутентификация на пользовательском уровне.

Шлюзы сетевого уровня.Шлюз сетевого уровня иногда называют системой трансля­ции сетевых адресов или шлюзом сеансового уровня модели OSI. Такой шлюз исключает прямое взаимодействие между авторизированным клиентом и внешним хост-компьютером.

Шлюз сетевого уровня принимает запрос доверенного кли­ента на конкретные услуги и после проверки допустимости запро­шенного сеанса устанавливает соединение с внешним хост-компьютером. После этого шлюз копирует пакеты в обоих направ­лениях, не осуществляя их фильтрации.

Шлюз следит за подтверждением (квитированием) связи между авторизированным клиентом и внешним хост-компьютером, определяя, является ли запрашиваемый сеанс связи допустимым. Чтобы выявить допустимость запроса на сеанс связи, шлюз вы­полняет следующую процедуру.

Когда авторизированный клиент запрашивает некоторый сервис, шлюз принимает этот запрос, проверяя, удовлетворяет ли этот клиент базовым критериям фильтрации (например, может ли DNS-сервер определить IP-адрес клиента и ассоциированное с ним имя). Затем, действуя от имени клиента, шлюз устанавливает соединение с внешним хост-компьютером и следит за выполнени­ем процедуры квитирования связи по протоколу TCP. Эта проце­дура состоит из обмена TCP-пакетами, которые помечаются фла­гами SYN (синхронизировать) и АСК (подтвердить) (рис. 32).

Основные компоненты межсетевых экранов - student2.ru

Рис. 32. Последовательность передачи пакетов SYN, ASC в процессе квитирования связи по протоколу ТСР

Первый пакет сеанса TCP, помеченный флагом SYN и со­держащий произвольное число, например 1000, является запро­сом клиента на открытие сеанса. Внешний хост-компьютер, полу­чивший этот пакет, посылает в ответ пакет, помеченный флагом АСК и содержащий число, на единицу большее, чем в принятом пакете (в нашем случае 1001), подтверждая тем самым прием па­кета SYN от клиента.

Далее осуществляется, обратная процедура: хост-компьютер посылает клиенту пакет SYN с исходным числом (на­пример, 2000), а клиент подтверждает его получение передачей пакета АСК, содержащего число 2001. На этом процесс квитирова­ния связи завершается.

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

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

Для копирования и перенаправления пакетов в шлюзах сетевого уровня применяются специальные приложения, которые называют канальными посредниками, поскольку они устанавлива­ют между двумя сетями виртуальную цепь или канал, а затем раз­решают пакетам, которые генерируются приложениями TCP/IP, проходить по этому каналу. Канальные посредники поддерживают несколько служб TCP/IP, поэтому шлюзы сетевого уровня могут использоваться для расширения возможностей шлюзов приклад­ного уровня, работа которых основывается на программах-посредниках конкретных приложений.

Фактически большинство шлюзов сетевого уровня не яв­ляются самостоятельными продуктами, а поставляются в комплек­те со шлюзами прикладного уровня. Примерами таких шлюзов яв­ляются Gauntlet Internet Firewall компании Trusted Information Systems, Alta Vista Firewall компании DEC и ANS Interlock компании ANS. Например, Alta Vista Firewall использует канальные посред­ники прикладного уровня для каждой из шести служб TCP/IP, к ко­торым относятся, в частности, FTP, HTTP (Hyper Text Transport Protocol) и TELNET. Кроме того, межсетевой экран компании DEC обеспечивает шлюз сетевого уровня, поддерживающий другие общедоступные службы TCP/IP, такие как Gopher и SMTP, для которых межсетевой экран не предоставляет посредников приклад­ного уровня.

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

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

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

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

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

Для достижения более высокого уровня безопасности и гибкости шлюзы прикладного уровня и фильтрующие маршрутиза­торы могут быть объединены в одном межсетевом экране. В каче­стве примера рассмотрим сеть, в которой с помощью фильтрую­щего маршрутизатора блокируются входящие соединения TELNET и FTP. Этот маршрутизатор допускает прохождение пакетов TELNET или FTP только к одному хост-компьютеру - шлюзу при­кладного уровня TELNET/FTP. Внешний пользователь, который хочет соединиться с некоторой системой в сети, должен сначала соединиться со шлюзом прикладного уровня, а затем уже с нуж­ным внутренним хост-компьютером. Это осуществляется следую­щим образом:

1) сначала внешний пользователь устанавливает TELNET-соединение со шлюзом прикладного уровня с помощью протокола TELNET и вводит имя интересующего его внутреннего хост-компьютера;

2) шлюз проверяет IP-адрес отправителя и разрешает или запре­щает соединение в соответствии с тем или иным критерием доступа;

3) пользователю может потребоваться аутентификация (возможно, с помощью одноразовых паролей);

4) сервер-посредник устанавливает TELNET-соединение между шлюзом и внутренним хост-компьютером;

5) сервер-посредник осуществляет передачу информации между этими двумя соединениями;

6) шлюз прикладного уровня регистрирует соединение.

Этот пример наглядно показывает преимущества исполь­зования полномочных серверов-посредников.

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

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

В дополнение к фильтрации пакетов многие шлюзы при­кладного уровня регистрируют все выполняемые сервером дейст­вия и, что особенно важно, предупреждают сетевого админи­стратора о возможных нарушениях защиты. Например, при попыт­ках проникновения в сеть извне BorderWare Firewall Server компа­нии Secure Computing позволяет фиксировать адреса отправителя и получателя пакетов, время, в которое эти попытки были пред­приняты, и используемый протокол. Межсетевой экран Black Hole компании Milkyway Networks регистрирует все действия сервера и предупреждает администратора о возможных нарушениях, посы­лая ему сообщение по электронной почте или на пейджер. Анало­гичные функции выполняют и ряд других шлюзов прикладно­го уровня.

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

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

Невидимость структуры защищаемой сети из глобальной сети Internet. Имена внутренних систем можно не сообщать внешним системам через DNS, поскольку шлюз прикладного уровня может быть единственным хост-компьютером, имя кото­рого должно быть известно внешним системам.

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

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

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

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

К недостаткам шлюзов прикладного уровня относятся:

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

более высокая стоимость по сравнению с фильтрующими мар­шрутизаторами.

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

Наши рекомендации