• Сообщение на тему межсетевые экраны. Информационная безопасность

    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.

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

    Назначение межсетевых экранов

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

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

    История создания

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

    Программные сетевые экраны возникли много позже. Так, Netfilter/iptables, межсетевой экран для Linux, был создан только в 1998 году. Связано это с тем, что ранее функцию фаейрвола выполняли, и весьма успешно, антивирусные программы, но с конца 90-х вирусы усложнились, и появление межсетевого экрана стало необходимым.

    Фильтрация трафика

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

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

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

    Типы межсетевых экранов (Firewall)

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

    • Управляемые коммутаторы;
    • Пакетные фильтры;
    • Шлюзы сеансового уровня;
    • Посредники прикладного уровня;
    • Инспекторы состояния.

    Управляемые коммутаторы

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

    Некоторые производители (ZyXEL, Cisco) добавили в свой продукт возможность обработки данных на основе MAC-адресов, которые содержатся в заголовках фреймов. Тем не менее, даже этот метод не всегда приносит ожидаемый результат, так как мак-адрес можно легко изменить с помощью специальных программ. В связи с этим в наши дни коммутаторы чаще всего ориентируются на другие показатели, а именно на VLAN ID.

    Виртуальные локальные сети позволяют организовывать группы хостов, в которые данные стопроцентно изолированы от внешних серверов сети.

    В рамках корпоративных сетей управляемые коммутаторы могут стать весьма эффективным и сравнительно недорогим решением. Главным их минусом является неспособность обрабатывать протоколы более высоких уровней.

    Пакетные фильтры

    Пакетные фильтры используются на сетевом уровне, осуществляя контроль трафика на основе данных из заголовка пакетов. Нередко способны обрабатывать также заголовки протоколов и более высокого уровня – транспортного (UDP, TCP), Пакетные фильтры стали самыми первыми межсетевыми экранами, остаются самыми популярными и на сегодняшний день. При получении входящего трафика анализируются такие данные, как: IP получателя и отправителя, тип протокола, порты получателя и источника, служебные заголовки сетевого и транспортного протоколов.

    Уязвимость пакетных фильтров заключается в том, что они могут пропустить вредоносный код, если он разделен на сегменты: пакеты выдают себя за часть другого, разрешённого контента. Решение этой проблемы заключается в блокировании фрагментированных данных, некоторые экраны способны также дефрагментировать их на собственном шлюзе – до отправки в основной узел сети. Тем не менее, даже в этом случае межсетевой экран может стать жертвой DDos-атаки.

    Пакетные фильтры реализуются в качестве компонентов ОС, пограничных маршрутизаторов или персональных сетевых экранов.

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

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

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

    Шлюз сеансового уровня – единственное связующее звено между внешней и внутренней сетями. Таким образом, определить топологию сети, которую защищает шлюз сеансового уровня, становится затруднительно, что значительно повышает её защищённость от DoS-атак.

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

    Посредники прикладного уровня

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

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

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

    Инспекторы состояния

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

    Инспекторы состояния осуществляют контроль:

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

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

    Реализация межсетевых экранов

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

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

    Именно поэтому крупные компании предпочитают установку специализированных программно-аппаратных комплексов, получивших название «security appliance». Работают они чаще всего на основе систем Linux или же FreeBSD, ограниченных функционалом для выполнения заданной функции.

    Такое решение имеет следующие преимущества:

    • Лёгкое и просто управление: контроль работы программно-аппаратного комплекса осуществляется с любого стандартного протокола (Telnet, SNMP) – или защищённого (SSL, SSH).
    • Высокая производительность: работа операционной системы направлена на одну единственную функцию, из неё исключены любые посторонние сервисы.
    • Отказоустойчивость: программно-аппаратные комплексы эффективно выполняют свою задачу, вероятность сбоя практически исключена.

    Ограничения межсетевого экрана (Firewall-а)

    Сетевой экран не проводит фильтрацию тех данных, которые не может интерпретировать. Пользователь сам настраивает, что делать с нераспознанными данными – в файле конфигураций, согласно которым и осуществляется обработка такого трафика. К таким пакетам данным относятся трафик из протоколов SRTP, IPsec, SSH, TLS, которые используют криптографию для скрытия содержимого, протоколы, шифрующие данные прикладного уровня (S/MIME и OpenPGP). Также невозможна фильтрация туннелирования трафика, если механизм того туннелирования непонятен сетевому экрану. Значительная часть недостатков межсетевых экранов исправлена в UTM-системах - Unified Threat Management , иногда их так же называют NextGen Firewall.

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

      обеспечивает ли экран соединение между одним узлом и сетью или между двумя или более различными сетями;

      происходит ли контроль потока данных на сетевом уровне или более высоких уровнях модели OSI;

      отслеживаются ли состояния активных соединений или нет.

    В зависимости от охвата контролируемых потоков данных межсетевые экраны подразделяются на:

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

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

    В зависимости от уровня OSI, на котором происходит контроль доступа, сетевые экраны могут работать на:

      сетевом уровне , когда фильтрация происходит на основе адресов отправителя и получателя пакетов, номеров портов транспортного уровня модели OSI и статических правил, заданных администратором;

      сеансовом уровне (также известные, как stateful ), когда отслеживаются сеансы между приложениями и не пропускаются пакеты, нарушающие спецификации TCP/IP, часто используемые в злонамеренных операциях – сканирование ресурсов, взломы через неправильные реализации TCP/IP, обрыв/замедление соединений, инъекция данных;

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

    Фильтрация на сетевом уровне

    Фильтрация входящих и исходящих пакетов осуществляется на основе информации, содержащейся в следующих полях TCP- и IP-заголовков пакетов: IP-адрес отправителя; IP-адрес получателя; порт отправителя; порт получателя.

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

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

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

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

    Недостатки:

      не собирает фрагментированные пакеты;

      нет возможности отслеживать взаимосвязи (соединения) между пакетами.?

    Фильтрация на сеансовом уровне

    В зависимости от отслеживания активных соединений межсетевые экраны могут быть:

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

      stateful, stateful packet inspection (SPI) (фильтрация с учётом контекста), с отслеживанием текущих соединений и пропуском только таких пакетов, которые удовлетворяют логике и алгоритмам работы соответствующих протоколов и приложений.

    Межсетевые экраны с SPI позволяют эффективнее бороться с различными видами DoS-атак и уязвимостями некоторых сетевых протоколов. Кроме того, они обеспечивают функционирование таких протоколов, как H.323, SIP, FTP и т. п., которые используют сложные схемы передачи данных между адресатами, плохо поддающиеся описанию статическими правилами, и зачастую несовместимых со стандартными, stateless сетевыми экранами.

    К преимуществам такой фильтрации относится:

      анализ содержимого пакетов;

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

    Недостатки:

      сложно анализировать данные уровня приложений (возможно с использованием ALG – Application level gateway).

    Application level gateway, ALG (шлюз прикладного уровня) – компонент NAT-маршрутизатора, который понимает какой-либо прикладной протокол, и при прохождении через него пакетов этого протокола модифицирует их таким образом, что находящиеся за NAT’ом пользователи могут пользоваться протоколом.

    Служба ALG обеспечивает поддержку протоколов на уровне приложений (таких как SIP, H.323, FTP и др.), для которых подмена адресов/портов (Network Address Translation) недопустима. Данная служба определяет тип приложения в пакетах, приходящих со стороны интерфейса внутренней сети и соответствующим образом выполняя для них трансляцию адресов/портов через внешний интерфейс.

    Технология SPI (Stateful Packet Inspection) или технология инспекции пакетов с учетом состояния протокола на сегодня является передовым методом контроля трафика. Эта технология позволяет контролировать данные вплоть до уровня приложения, не требуя при этом отдельного приложения посредника или proxy для каждого защищаемого протокола или сетевой службы.

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

    Пример работы механизма Stateful Inspection . Межсетевой экран отслеживает сессию FTP, проверяя данные на уровне приложения. Когда клиент запрашивает сервер об открытии обратного соединения (команда FTP PORT), межсетевой экран извлекает номер порта из этого запроса. В списке запоминаются адреса клиента и сервера, номера портов. При фиксировании попытки установить соединение FTP-data, межсетевой экран просматривает список и проверяет, действительно ли данное соединение является ответом на допустимый запрос клиента. Список соединений поддерживается динамически, так что открыты только необходимые порты FTP. Как только сессия закрывается, порты блокируются, обеспечивая высокий уровень защищенности.

    Рис. 2.12. Пример работы механизма Stateful Inspection с FTP-протоколом

    Фильтрация на прикладном уровне

    С целью защиты ряда уязвимых мест, присущих фильтрации пакетов, межсетевые экраны должны использовать прикладные программы для фильтрации соединений с такими сервисами, как, например, Telnet, HTTP, FTP. Подобное приложение называется proxy-службой, а хост, на котором работает proxy-служба – шлюзом уровня приложений. Такой шлюз исключает прямое взаимодействие между авторизованным клиентом и внешним хостом. Шлюз фильтрует все входящие и исходящие пакеты на прикладном уровне (уровне приложений – верхний уровень сетевой модели) и может анализировать содержимое данных, например, адрес URL, содержащийся в HTTP-сообщении, или команду, содержащуюся в FTP-сообщении. Иногда эффективнее бывает фильтрация пакетов, основанная на информации, содержащейся в самих данных. Фильтры пакетов и фильтры уровня канала не используют содержимое информационного потока при принятии решений о фильтрации, но это можно сделать с помощью фильтрации уровня приложений. Фильтры уровня прил ожений могут использовать информацию из заголовка пакета, а также содержимого данных и информации о пользователе. Администраторы могут использовать фильтрацию уровня приложений для контроля доступа на основе идентичности пользователя и/или на основе конкретной задачи, которую пытается осуществить пользователь. В фильтрах уровня приложений можно установить правила на основе отдаваемых приложением команд. Например, администратор может запретить конкретному пользователю скачивать файлы на конкретный компьютер с помощью FTP или разрешить пользователю размещать файлы через FTP на том же самом компьютере.

    К преимуществам такой фильтрации относится:

      простые правила фильтрации;

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

      способность анализировать данные приложений.

    Недостатки:

      относительно низкая производительность по сравнению с фильтрацией пакетов;

      proxy должен понимать свой протокол (невозможность использования с неизвестными протоколами)?;

      как правило, работает под управлением сложных ОС.

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

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

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

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

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

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

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

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

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

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


    Рис. 10.1.

    Примечание

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

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

    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, поскольку именно они отражают все атаки, в то время как компьютеры внутренней сети даже не знают об их проведении.