Принципы работы МЭ ССПТ-2 в режиме пакетного фильтра были рассмотрены в [1,2].
2.1 Режим управления сессиями и фильтрация прикладного уровня
ПО ССПТ-2 обеспечивает возможность выявления среди общего трафика потоков данных (сессий), в том числе виртуальных соединений, между парами адресатов (инициатор соединения – клиент, второй участник сессии - сервер) и контроль корректности последовательностей пакетов в пределах этого потока (контроль сессий). Контроль сессий поддерживается для следующих протоколов:
1) TCP, при этом осуществляется:
- контроль неизменности параметров отправителя и получателя пакетов на протяжении всей сессии;
- контроль корректности переходов между состояниями виртуального соединения TCP в соответствии с флагами управления;
- контроль корректности номеров последовательностей;
2) UDP, при этом осуществляется контроль неизменности параметров отправителя и получателя пакетов на протяжении всей сессии;
3) ICMP (только для режима утилиты ping), при этом осуществляется контроль неизменности параметров отправителя и получателя пакетов, и неизменность значения поля идентификатора на протяжении всей сессии.
Режим управления сессиями ССПТ-2 предназначен для дополнительной проверки пакетов на соответствие текущему состоянию сессии, к которой принадлежит данный пакет. Под сессией в дальнейшем понимается:
- для протокола TCP – виртуальное TCP-соединение;
- для протокола UDP – двусторонний обмен пакетами между клиентом и сервером;
- для протокола ICMP – обмен ICMP- сообщениями «Эхо-запрос» и «Эхо-ответ».
Для пакетов других протоколов управление сессиями не поддерживается. Такие пакеты передаются на выходные интерфейсы без создания сессии.
Использование режима управления сессиями дает следующие преимущества:
1) контроль хода виртуального TCP-соединения: каждый пакет проверяется на соответствие контексту данной сессии. При этом контролируются:
- флаги заголовка TCP: для различных состояний виртуального TCP-соединения определен свой возможный набор флагов;
- номера последовательностей и подтверждений заголовка TCP: для каждого пакета проверяется номер последовательности – он должен лежать в так называемом «окне приемника» TCP;
- неизменность параметров TCP-сессии (IP-адреса и номера портов);
2) контроль хода обмена пакетами по протоколу UDP: каждый пакет проверяется на соответствие контексту данной сессии. При этом контролируется неизменность параметров UDP-сессии (IP-адреса и номеров портов);
3) контроль хода обмена ICMP-сообщениями «Эхо-запрос» и «Эхо-ответ»:: каждый пакет проверяется на соответствие контексту данной сессии. При этом контролируется неизменность параметров ICMP-сессии (IP-адреса, типы сообщений и идентификаторы запросов ICMP);
4) блокировка атак, связанных с некорректной установкой флагов и номеров последовательностей протокола TCP;
5) автоматическое открытие клиентских портов, необходимых для текущей сессии;
6) создание одного правила для одного потока данных.
Сложность обработки пакетов внутри МЭ в этом режиме значительно выше чем в пакетном, однако, с точки зрения пользователя- администратора МЭ настройка экрана сильно упрощается — для обеспечения взаимодействие клиента с сервером вместо двух правил достаточно написать только одно — разрешить прохождение пакетов от клиента к серверу, второе правило создастся автоматически (в рамках сессии), при этом будет определён и открыт нужный клиентский порт, а не весь диапазон.
Рисунок 2.1. Процедура обработки пакетов в режиме управления сессиями
Подробно полный алгоритм обработки пакета описан в [1].
Следует отметить, что именно в этом режиме в ССПТ-2 определена возможность фильтрации на прикладном уровне.
Фильтрация на прикладном уровне
В ССПТ-2 определена функция фильтрации на прикладном уровне. Прикладные правила фильтрации содержатся в таблице прикладных правил (или AP-правил, от словосочетания Application Protocol). Таблица AP-правил по умолчанию пуста, глобального правила в таблице AP-правил нет. В настройках по умолчанию фильтрация на прикладном уровне отключена.
Механизм управления сессиями (рис. 2.1, блок 5) определяет, имеется ли в таблице сессия, соответствующая принятому пакету. Если такой сессии нет (данный пакет является первым пакетом в новом соединении), пакет отправляется на обработку в таблицу IP-правил. Если в таблице сессий имеется сессия, соответствующая принятому пакету, пакет отправляется на обработку в таблицу сессий.
В ходе обработки пакета в таблице сессий (рис. 2.1, блок 7) анализируются на соответствие контексту сессии следующие параметры пакета:
- для протокола TCP – порты отправителя и получателя, флаги заголовка TCP, номера последовательностей и подтверждений, размер окна;
- для протокола UDP – порты отправителя и получателя;
- для протокола ICMP – идентификатор «Эхо-запроса» и «Эхо-ответа».
В случае, если хотя бы один параметр пакета не соответствует контексту сессии – данный пакет удаляется с диагностикой, указывающей на причину удаления. В случае, если все параметры пакета соответствуют контексту сессии, данный пакет:
- отправляется на обработку в таблицу прикладных правил в случае, если включен параметр «Использование прикладных правил» и в IP-правиле, по которому создана сессия, определен набор прикладных правил для дальнейшей обработки;
- отправляется на выходные интерфейсы, если выключен параметр «Использование прикладных правил» или в IP-правиле, по которому создана сессия, не определен набор прикладных правил.
В ходе обработки в таблице прикладных правил (рис. 2.1, блок 8) к пакету последовательно применяются прикладные правила, перечисленные в IP-правиле, по которому создана сессия. В случае, если обнаруживается прикладное правило, применимое к данному пакету (т.е. все параметры прикладного правила соответствуют принятому пакету), выполняется действие, указанное в прикладном правиле. Для прикладных правил определены следующие действия:
- accept или pass – передача пакета на выходные интерфейсы;
- drop – удаление пакета и сессии, по которой обрабатывался пакет.
Если для данного пакета совпадения не произошло, пакет передается на выходные интерфейсы.
Согласно [1], в МЭ ССП-2 любой прикладной протокол может быть отфильтрован по следующим параметрам:
1) имя или номер прикладного протокола (в соответствии с RFC 1700). Для прикладных протоколов HTTP, SMTP, FTP, TELNET идентификация прикладного протокола происходит независимо от известного порта сервиса;
2) произвольная ASCII-строка длиной до 250 символов;
3) произвольные двоичные данные длиной до 16 байт по указанному смещению относительно начала прикладных данных или без указания смещения (в этом случае поиск происходит по всем прикладным данным пакета).
Кроме этого для некоторых прикладных протоколов определены дополнительные параметры, по которым возможна фильтрация:
1) для протокола HTTP:
- имя или фрагмент имени хоста (web-ресурса), к которому происходит обращение;
- метод HTTP-запроса;
- имя или фрагмент имени файла, запрашиваемого у HTTP-сервера.
2) для протокола FTP:
- имя (login) и пароль, предъявляемые пользователем при доступе на FTP-сервер;
- имя или фрагмент имени файла, запрашиваемого у FTP-сервера.
- команда протокола FTP;
3) для протокола SMTP:
- e-mail адреса или фрагменты адресов отправителя и получателя;
4) для протоколов распределенных СУБД:
- SQL-запросы или фрагменты запросов.
Внимание! В силу особенностей работы прикладных протоколов имеются ограничения на построение политики безопасности для протоколов SMTP и FTP. Для указанных протоколов невозможно построение политики типа «все, что не разрешено – запрещено».
Предоставляемые МЭ возможности достаточно широки, однако не очевидны для большого количества протоколов прикладного уровня.
Для остальных протоколов разрабатываются специальные решения на основе выявленных признаков фильтрации. Анализ протоколов на предмет определения таких признаков является сложной и трудоёмкой задачей, для каждого отдельного протокола необходимо проводить индивидуальное исследование. Соответствующие признаки фильтрации могут быть найдены самостоятельно при наличии необходимых навыков анализа трафика. Конкретные результаты исследований в этой области и возможности их практической реализации на основе типовых наборов правил приведены в приложении.
Достарыңызбен бөлісу: |