FIREWALL STATEFUL MODEL, AND ITS PROPERTIES
Кулиш А.В.
Аспирант, Санкт - Петербургский горный университет
МОДЕЛЬ МЕЖСЕТЕВОГО ЭКРАНА С СОХРАНЕНИЕМ СОСТОЯНИЯ И ЕГО СВОЙСТВА
Аннотация
В этой работе предлагается первая модель межсетевого экрана сохраняющего состояние. В этой модели, каждый сохраняющий состояние межсетевой экран имеет набор переменных, называемых состоянием межсетевого экрана, который используется для хранения некоторых пакетов, принятых ранее, и которые нужно помнить в ближайшем будущем. Межсетевой экран с сохранением состояния состоит из двух разделов: с учетом сохранения состояния и без сохранения состояния. При получении пакета межсетевой экран обрабатывает его в два этапа. Значимая часть этой статьи посвящена анализу свойств сохраняющих состояние межсетевых экранов.
Ключевые слова: межсетевой экран, с сохранением состояния, без сохранения состояния, сетевой интерфейс.Kulish A.V.
Postgraduate student, Saint - Petersburg Mining University
FIREWALL STATEFUL MODEL, AND ITS PROPERTIES
Abstract
In this paper we propose a model of the first firewall stateful. In this model, each stateful firewall has a set of variables, called the state of the firewall, which is used to store some packets received previously and to keep in mind in the near future. Each firewall with stateful consists of two sections: in view of the persistence and stateless. When receiving a packet firewall processes it in two stages. Much of this article is devoted to analysis of the properties of stateful firewalls.
Keywords: firewall, stateful, stateless, the network interface. ВведениеРабота в качестве первой линии защиты от несанкционированного и потенциально вредоносного трафика, межсетевые экраны были широко использованы в большинстве предприятий и учреждений для обеспечения безопасности частных сетей. Межсетевой экран помещается в точке входа между частной сетью и внешними сетями, так что все входящие и исходящие пакеты должны проходить через него.
Функцией межсетевого экрана является определение каждого входящего или исходящего пакета одним из наборов предопределенных решений, таких, как принять или отклонить. На основании того, как принято решение для каждого пакета, межсетевые экраны подразделяются на межсетевые экраны без сохранения состояния(stateless) и межсетевые экраны сохраняющие состояние (stateful). Если межсетевой экран решает судьбу каждого пакета исключительно путем изучения самого пакета, то межсетевой экран называется stateless межсетевым экраном. Если межсетевой экран принимает решения для некоторых пакетов не только путем изучения самого пакета, но и путем анализа пакетов, которые межсетевой экран принял ранее, то он называется stateful межсетевым экраном. Используя stateful межсетевые экраны для защиты частной сети, можно добиться более точного контроля доступа путем отслеживания состояния связи между частной сетью и внешними сетями. Например, stateful межсетевой экран может отказаться принимать любой пакет с удаленного хоста на локальный хост, если локальный хост ранее не отправил пакет на этот удаленный хост.
Несмотря на разнообразие продуктов stateful межсетевых экранов в Интернете были доступны и размещены в течение некоторого времени, такие как Cisco PIX Firewalls, Cisco Reflexive ACLs , CheckPoint FireWall-1 и Netfilter / IPTables, но модели для описания подобных межсетевых экранов не существует. Отсутствие такой модели является существенным препятствием для дальнейшего развития технологии stateful межсетевого экрана. Во-первых, без модели, трудно провести исследование stateful межсетевых экранов. Это объясняет, почему так мало исследований по stateful межсетевым экранам, было сделано до сих пор. В отличие от этого, существуют многочисленные исследования stateless межсетевых экранов и на основе этих исследований можно выгодно использовать хорошо налаженные правила для подобных межсетевых экранов, отраженные в результатах подобных исследований. Вопрос о том, как разрабатывать и анализировать stateful межсетевые экраны, остается без ответа. Во-вторых, из–за того, что нет модели описывающей stateful межсетевые экраны, в существующих продуктах межсетевых экранах функциональные возможности отслеживания были жестко закодированы. Например, Cisco PIX Firewalls не отслеживают состояние для пакетов ICMP. Следовательно, это создает трудности для администратора такого межсетевого экрана при отслеживании Ping-пакетов. Без определения модели, трудно проанализировать свойства stateful межсетевых экранов. Например, трудно проанализировать свойства существующих межсетевых экранов, так как некоторые из функций этих межсетевых экранов жестко закодированы, в то время как другие определяются их администраторами. В целом, существует необходимость в модели, описывающей межсетевые экраны с сохранением состояния.
В этой статье предлагается модель stateful межсетевого экрана. В этой модели межсетевого экрана, каждый межсетевой экран имеет переменный набор правил, называемый состоянием межсетевого экрана, который используется для хранения некоторых пакетов, которые межсетевой экран, принял ранее, и которые нужно помнить в ближайшем будущем. Каждый межсетевой экран состоит из двух разделов: раздел stateful и stateless. Каждая секция состоит из последовательности правил. Для каждого пакета, раздел с сохранением состояния используется, чтобы проверить, влияет ли состояние предыдущего пакета, на то, что произойдет с текущим пакетом. Предполагается, что каждый пакет имеет дополнительное поле под названием тег, для сохранения результата проверки. В секции без сохранения состояния решения о судьбе пакета принимаются на основе информации, содержащейся в самом пакете и его значение тега.
Модель межсетевого экрана
В этом разделе представлена модель межсетевого экрана на примере простого межсетевого экрана, который находится на маршрутизаторе шлюза, изображенного на рис. 1. Этот маршрутизатор имеет два интерфейса: интерфейс 0, который соединяет маршрутизатор с Интернетом, а также интерфейс 1, который соединяет маршрутизатор с частной сетью.
Рис.1 - Межсетевой экран для частной сети
Этот межсетевой экран отслеживает протокол Ping (Packet Internet Protocol Groper) , чтобы противостоять "Smurf" атакам. Протокол Ping используется хостом, чтобы определить, является ли другой хост верхним. Когда хост А хочет проверить, является ли хост B верхним, A посылает B серию ICMP (протокол Internet Control Message) пинг (т.е. эхо-запроса) пакетов. Все эти пинг-пакеты имеют один и тот же идентификатор, но разные порядковые номера. Когда B получает от пинг-пакета с идентификатором х и порядковым номером y, B посылает обратно понг (т.е. эхо-ответ) пакет с такой же идентификатор х и тем же номером последовательности у. "Smurf" атака, типа отказа в обслуживании, работает следующим образом: злоумышленник отправляет пинг-пакет, чей IP-адрес источника изменен на IP-адрес хоста жертвы, на широковещательный адрес подсети. Впоследствии, каждый хост в подсети будет посылать пакет понг на хост-жертву.
Один из способов борьбы с "Smurf" атаками для частной сети является использование межсетевого экрана для того, чтобы отменить каждый входящий пакет понг если он не соответствует предыдущему пинг-пакету, отправленному из частной сети. Предположим, что мы хотим настроить межсетевой экран на рисунке 1 таким образом, что когда пакет понг прибывает, межсетевой экран должен проверить, видел ли он соответствующий пакет пинг.
Рис.2 - Отслеживание протокола Ping
Это требует от межсетевого экрана запоминания пакетов пинг, которые были отправлены из частной сети во внешнюю. В этой модели межсетевого экрана, каждый межсетевой экран имеет набор переменных, который называется состоянием. Состояние межсетевого экрана содержит пакеты, которые межсетевой экран принял ранее, и которые нужно учитывать в ближайшем будущем. В этом примере межсетевого экрана, пинг-пакеты, которые посылаются из частной сети к внешним сетям хранятся в состоянии межсетевого экрана.
В данной модели межсетевого экрана, каждый межсетевой экран состоит из двух разделов: раздел Stateful и Stateless. Stateful секция используется для проверки каждого пакета до попадания в систему. Stateless секция используется, чтобы произвести действия с пакетом после того, как пакет прошел первичную проверку. Для того чтобы сохранить результат проверки в секции с учетом состояния для каждого пакета, предполагается, что каждый пакет имеет дополнительное поле под названием тег. Значение поля тега пакета представляет собой целое число, начальное значение которого равно нулю. Область поля тега зависит от того, сколько возможных значений тегов потребуется межсетевому экрану. В приведенном выше примере межсетевого экрана, когда пакет прибывает, если это пакет понг и соответствующий пакет пинг находится в состоянии, то тегу поля пакета присваивается 1; в противном случае тег поля пакета сохраняет начальное значение 0. Таким образом, область поля тега в этом примере [0, 1].
Пакет над полями F1,···,Fd должен быть d-tuple (p1,···,pd), где каждый из pi в области D (Fi) из поля Fi, и каждый D (Fi) является интервалом неотрицательных целых чисел. Например, область адреса источника в пакете I является [0, 232).
Stateful секция межсетевого экрана состоит из последовательности правил, где каждое правило называется Stateful правилом. Stateful состояние правило имеет вид
P(F1,···,Fd,F '1,···, F 'd,tag') → tag := x
где P(F1,···,Fd,F '1,···, F 'd,tag') предикат над F1,···,Fd, F '1,···, F 'd,tag'. Пакет (p1,···,pd) соответствует указанному выше правилу iff (если и только если) существует пакет (p'1,···,p'd) со значением тега t' в состоянии межсетевого экрана таким образом, что P (p1,···,pd, p'1,···,p'd, t') верно. Смысл этого правила с учетом состояния выглядит следующим образом. Учитывая, что пакет р соответствует этому правилу с учетом состояния (но не соответствует другим динамическим правилам, перечисленным до этого правила), значение тега этого пакета р изменяется от начального значения от 0 до нового значения х.
Секция stateless межсетевого экрана также включает последовательность правил, где каждое правило называется правилом stateless. Stateless правило имеет вид
F1 ∈ S1 ∧ ··· ∧ Fd ∈ Sd ∧ tag ∈ St → (decision)где каждый Si непустое подмножество области Fi для 0 ≤ i ≤ d и St непустое подмножество области поля тегов, и (решение) будет "принимать", или "принять; вставить ", или" отменить ". Для каждого i (1 ≤i ≤ D),если Si = D (Fi), можно заменить Fi ∈ Si на Fi ∈ all, или удалить конъюнкт Fi ∈ D (Fi) из правила. Пакет (p1,···,pd) со значением тега t соответствует указанным выше правилу тогда и только тогда условия p1 ∈ S1 ∧···∧pd ∈ Sd ∧t ∈ St выполнено. Смысл правила stateless заключается в следующем: пакет р соответствует этому правилу stateless (но р не соответствует другим правилам stateless, перечисленным до этого правила), решение для этого пакета выполняется. Если решение будет "принять", то пакету р будет разрешено перейти к месту назначения. Если решение "принять; вставить ", то пакету р будет разрешено перейти к месту назначения и дополнительно пакет р (вместе с его значением тега) вставляется в состояние межсетевого экрана. Если решение будет "отбросить", то пакет р отбрасывается межсетевым экраном.
В примере межсетевого экрана на рисунке 1, предполагается, что каждый пакет имеет следующие семь полей. Для простоты, считается, что каждый пакет имеет поле, содержащее идентификатор сетевого интерфейса, на который пакет прибывает.
Имя | Значение | Область |
I | Интерфейс | [0, 1] |
S | IP-адрес источника | [0, 232) |
D | IP-адрес получателя | [0, 232) |
P | Тип протокола | {tcp, udp, icmp} |
T | echo packet type | {ping, pong} |
ID | echo packet ID | [0, 216) |
SN | echo packet sequence number | [0, 216) |
- адрес источника р равен адресу назначения р' (обозначается S = D'),
- адрес получателя р равен адрес источника р' (обозначается D = S'),
- идентификатор р равен идентификатору р' (обозначаемые ID = ID'),
- порядковый номер р равно числу последовательностей р' (обозначаемой SN = SN'),
после тегу поля пакета р присваивается 1; в противном случае тег поля пакета р сохраняет свое первоначальное значение 0. В этом примере межсетевой экран, состояния stateless состоит из пяти правил, функция которых состоит в соотнесении каждого пакета с определенным значением тега к одному из предопределенных решений. Смысл правила r1 выглядит следующим образом: если пакет из семи полей (а именно I, S, D, P, T, ID, SN) соответствует правилу r1, то межсетевой экран позволяет пакету перейти к месту назначения и дополнительно пакет (который является кортежем из семи полей) вместе со своим значением тега вставляется в состояние межсетевого экрана.
Когда межсетевой экран включает пакет (p1,···,pd) со значением тега в состояние межсетевого экрана, то ему не нужно вставлять все d поля пакета. Например, с учетом приведенного выше примера межсетевого экрана на рисунке 2, его stateful секция состоит из одного правила I ∈ {0} ∧ P ∈ {icmp} ∧ T ∈ {pong} ∧ S = D' ∧ D = S' ∧ ID = ID' ∧SN = SN' → tag:= 1. Это правило рассматривает только четыре поля пакетов в состоянии: S, D, ID и SN. Поэтому, вместо того, чтобы включить пакет всех семи полей (а именно I, S, D, P, T, ID, SN) вместе со значением тега пакета в состояние, нужно только включить кортеж четыре поля (S, D, ID и SN).
Два правила stateless конфликтуют тогда и только тогда если существует, по крайней мере, один пакет, соответствует обоим правилам и если два правила имеют разные решения. Например, правило r1 и правило r2 в разделе stateless межсетевого экрана на рисунке 2 конфликтуют. Два stateful правила конфликтуют тогда и только тогда, когда в доступном состоянии межсетевого экрана существует по крайней мере один пакет, который соответствует обоим правилам и два правила имеют разные решения. В этой модели межсетевого экрана, и для stateful секции и секции stateless, мы следуем соглашению, что stateless межсетевые экраны используются для разрешения конфликтов: пакет направляется на решение первого правила, которому соответствует пакет.
Набор правил является всеобъемлющим, для любого пакета, есть, по крайней мере, одно правило в наборе, которому соответствует пакет. Набор всех правил в разделе stateless межсетевого экрана должен быть комплексным, так как каждый пакет должен быть отображен в решении. Множество всех правил в разделе stateful межсетевого экрана не должно быть исчерпывающим. Это происходит потому, что функцией секции stateful является присвоение значения отличного от нуля тегу полей некоторых пакетов, но не для всех пакетов.
Полученный межсетевым экраном пакет задается с помощью этой модели. Следующие шаги описывают, как межсетевой экран обрабатывает этот пакет.
Рис. 3 - Обработка данного пакета
Разделив межсетевой экран на секции stateful и stateless, можно применить существующие результаты исследования stateless межсетевых экранов, поскольку в одиночку раздел stateless фактически полноценный stateless межсетевой экран. Кроме того, существующие алгоритмы классификации пакетов stateless межсетевых экранов до сих пор могут быть использованы для сопоставления пакета с определенным значением тега к первому правилу, значит пакет соответствует секции stateless.
Заключение Эта работа является первым шагом в проектировании и анализе stateful межсетевых экранов. Эта модель открывает двери для новых исследований stateful межсетевых экранов Она простая, но может выражать различные состояния функциональных возможностей отслеживания. Это позволяет наследовать результаты в проектировании и анализе stateless межсетевых экранов. Некоторые вопросы, связанные данной моделью stateful межсетевого экрана оставлены для дальнейшей работы, например, как эффективно реализовать эту модель и как использовать ее для анализа других свойств сохраняющих stateful межсетевых экранов.Литература
- E. Al-Shaer and H. Hamed. Discovery of policy anomalies in distributed firewalls. In IEEE INFOCOM’04, pages 2605–2616, March 2004.
- M. G. Gouda and A. X. Liu. Firewall design: consistency, completeness and compactness. In Proc. of the 24th IEEE International Conference on Distributed Computing Systems (ICDCS’04), pages 320–327.
- Y . Bartal, A. J. Mayer, K. Nissim, and A. Wool. Firmato: A novel firewall management toolkit. Technical Report EES2003-1, Dept. of Electrical Engineering Systems, Tel Aviv University, 2003.
- CheckPoint FireWall-1. http://www.checkpoint.com/. Date of access: March 25, 2005.
- Netfilter/IPTables. http://www.netfilter.org/. Date of access: March 25, 2005.