УДК 004.056
О. В. Полубелова, И. В. Котенко
ВЕРИФИКАЦИЯ ПРАВИЛ ФИЛЬТРАЦИИ ПОЛИТИКИ БЕЗОПАСНОСТИ
МЕТОДОМ ПРОВЕРКИ НА МОДЕЛИ
Предложен подход к верификации правил фильтрации, предназначенный для обнаружения и разрешения аномалий фильтрации в спецификациях политики безопасности компьютерных сетей. Подход основан на методе проверки на модели. Рассмотрены модели компьютерной системы, межсетевого экрана и аномалий фильтрации, служащие для верификации правил фильтрации данным методом, а также алгоритмы выявления таких аномалий. Предложена методика верификации правил фильтрации политик безопасности на базе этих моделей.
Ключевые слова: правила фильтрации, метод проверки на модели, верификация.
Введение. Задача верификации правил фильтрации межсетевых экранов актуальна для любой системы управления корпоративной компьютерной сетью на основе политик безопасности. Формирование набора правил фильтрации, не содержащих аномалий, позволяет обеспечить работоспособность и безопасность компьютерных сетей. Под аномалией подразумевается несоответствие в задании правил политики безопасности и(или) описании сети, из-за которого эти правила (одно или более) никогда не будут активированы. В связи с увеличением числа правил фильтрации для их верификации необходима автоматизация. Предлагаемые в настоящей работе модели, алгоритмы и методика верификации базируются на методе проверки на модели (model checking).
Метод проверки на модели основан на переборе состояний, в которые может перейти исследуемая система в зависимости от запросов пользователей и ответов компонента, принимающего решение о разрешении или отклонении такого запроса. Перебор управляется условиями, которые формулируются на языке темпоральной логики и выражают корректные состояния системы. Состояние системы определяется набором значений переменных, а изменение состояния вызывается некоторыми параллельными процессами. При этом выбор процесса, который должен осуществляться в очередной момент времени, происходит случайным образом. Рассматриваются все возможные последовательности шагов для заданных процессов, и генерируется сигнал о некорректном состоянии, если в таковое возможно прийти. Пользователю выдается трасса, т.е. последовательность шагов, приведшая к некорректному состоянию системы относительно заданных условий. Метод проверки на модели имеет существенное ограничение: рассматриваются лишь системы с конечным набором состояний (хотя сам моделируемый процесс может быть бесконечным).
В процессе решения задачи верификации правил фильтрации политики безопасности были рассмотрены опубликованные работы по обнаружению и разрешению конфликтов в политиках безопасности. В [1] предлагается использовать аргументационную логику для спецификации и анализа правил фильтрации межсетевого экрана. В статье [2] рассмотрен подход к обнаружению конфликтов авторизации в системе контроля доступа. В [3] для верификации правил авторизации применяется метод проверки на модели. В [4] описываются разработанный язык и инструмент (программное средство) Rebeca, позволяющий верифицировать параллельные и событийно управляемые системы, а также рассматриваются элементы моделирования верифицируемых систем с примерами для SPIN [5]. В статье [6] предлагается подход, основанный на SPIN, для формального моделирования и анализа реализации атак на компьютерную сеть. Авторы предлагают набор функций, типов данных и процессов для моделирования компьютерных атак. В [7] приведены требования к подходу, основанному на
использовании шаблонов. Он применяется при разработке UML-диаграмм, где каждый шаблон имеет секцию ограничений для спецификации безопасности и других неизменяемых свойств. Авторы анализируют диаграммы этих спецификаций, используемые в SPIN.
В настоящей статье предлагаются разработанные авторами модели компьютерной системы, межсетевого экрана и аномалий фильтрации, служащие для верификации правил фильтрации методом проверки на модели.
Модели компьютерной системы, межсетевого экрана и аномалий фильтрации. Метод проверки на модели подразумевает моделирование основных объектов рассматриваемой предметной области и их поведение. В процессе решения задачи верификации правил фильтрации были выделены три основных объекта, подлежащих моделированию: компьютерная сеть, межсетевой экран и аномалии фильтрации.
Предлагаемая модель компьютерной сети характеризует структуру сети, ее основные элементы и сетевые процессы. Она включает в себя два базовых компонента: топологию сети и генерируемый в сети трафик. Для верификации правил фильтрации из общей топологии выделяется расположение хостов и межсетевых экранов в сети. При генерации трафика все адресное пространство сокращается до минимума, необходимого для выявления всех возможных аномалий, при этом рассматриваются только хосты, которые специфицированы в правилах фильтрации. При решении задачи ограничения диапазона сетевых адресов используется методика сегментации правил политики безопасности, предложенная в [8].
Модель межсетевого экрана предназначена для описания межсетевого экрана и алгоритмов его работы. Основными компонентами этой модели являются сетевые идентификаторы, заданные наборы правил фильтрации, а также алгоритм обработки сетевого трафика.
Модель аномалий фильтрации задана совокупностью свойств аномалии, определяющей ее тип. Модель также определяет масштабируемость аномалии в рамках сети. Для задания аномалий была использована таксономия аномалий фильтрации, предложенная в работе [9]. Выделяются аномалии затенения, обобщения, корреляции и обобщения.
Методика верификации правил фильтрации методом проверки на модели. Основные этапы методики представлены на рис. 1.
Этап 1 Трансляция во внутренний формат
ЯОС
ЯОП
трансляция
Таксономия аномалий
трансляция
Этап 2 Построение модели
■3.
Конечный автомат
а
Свойства корректности (LTL)
Этап 3 Вычисление модели
Этап 4 Интерпретация результатов
■гТ
<2
Нарушения
свойств корректности (аномалии)
Рис. 1
Основными входными данными в предлагаемой методике являются описания правил фильтрации политики на языке описания политики (ЯОП) и конфигурации компьютерной сети на языке описания системы (ЯОС), а также выявляемые аномалии фильтрации. ЯОП и ЯОС — это хт1-подобные языки, созданные на основе С1М [10].
На первом этапе входные данные, включающие в себя описание политики, компьютерной системы и аномалий, преобразуются во внутренний формат системы верификации. Затем строится общая модель для верификации правил фильтрации, представленная в виде конечного автомата, она включает в себя модели компьютерной системы, межсетевого экрана и аномалий. Модель инициализируется входными данными во внутреннем формате, она должна обеспечивать: отображение топологии сети, генерацию необходимого набора значений сетевых адресов, позволяющего обработать все задаваемые на входе правила; передачу сетевого трафика по заданному диапазону адресов; обработку сетевого трафика межсетевыми экранами с накоплением статистики по применяемым правилам; анализ статистики работы межсетевых экранов на предмет существующих аномалий. Аномалии в модели выражены формальными утверждениями, для метода проверки на модели эти формальные утверждения будут являться свойствами, нарушение которых приводит исследуемую систему в некорректное состояние.
На третьем этапе общая модель для верификации правил фильтрации вычисляется специальными программными средствами, реализующими метод проверки на модели, например, SPIN [5, 11], SMV [12], MOCHA [13] и т.п. В процессе верификации выявляются все некорректные состояния системы (на рис. 1 одно из таких некорректных состояний помечено серым цветом).
На завершающем этапе полученные результаты верификации интерпретируются. Если были обнаружены аномалии, то пользователь получает адреса межсетевых экранов и правила, приводящие к возникновению аномалии, а также тип аномалии.
Реализация методики верификации правил фильтрации. Для реализации методики верификации в работе использовалось программное средство SPIN [5, 11]. Внутренним языком SPIN является Promela. Основные объекты, такие, как правило политики, сетевой пакет, конфликт, отображаются в виде структур данных на языке Promela.
Ниже приведен код на языке Promela для представления адреса сетевого пакета:
typedef Address { byte octet1; byte octet2; byte octet3; byte octet4;
}
typedef Port { int portNum;
}
typedef NetPacket {
Address sourceAddress; Port sourcePort; Address destinationAddress; Port destinationPort;
}
Хранилище правил представлено одной из базовых структур языка Promela — буфери-зированным каналом сообщений, представляющим собой аналог массива:
chan policyRules = [50] of {FilteringRule};
Пример схемы реализации обнаружения аномалий в правилах фильтрации представлен на рис. 2.
Первый шаг — это инициализация модели. Она осуществляется на основе загрузки входных данных и запуска основных процессов, таких как генерация трафика, межсетевой экран и обнаружение аномалий. Все процессы вычисляются параллельно, для обмена данными используются каналы сообщений. После того как будет обработан весь диапазон сетевых
адресов, верификация завершается. Информация обо всех обнаруженных аномалиях преобразуется в формат, удобный для представления пользователю.
Инициализация модели
Загрузка правил политики в хранилище
Сетевой паке'
примененные правила
Обнаружение аномалий
Завершение процессов
Обнаруженные конфл Повторение п раз
Интерпретация результатов
Рис. 2
Пример представления правила фильтрации на языке Promela представлен на рис. 3. Правило фильтрации:
1: tcp, 140.192.37.20, any, *.*.*/*, 80, deny Представление на языке Promela:
typedef FilteringRule { mtype ruleName; short prior; mtype = {tcp, udp}; chan traffType=[1] of {mtype}; Address sAdd; Port sourcePort; Address dAdd; Port destinationPort;
bool action = true; /*true - allow, false - deny*/ mtype = {Enabled, Disabled}; chan en = [1] of {mtype};}
Рис. 3
Экспериментальные данные. Результаты проведенных экспериментов представлены на рис. 4. Вычисления производились на 12 выборках, в которых изменялись число правил, Р (1 — 5, 2 — 10, 3 — 15 правил) и число аномалий, А (1 — 0, 2 — 1, 3 — 3, 4 — 8 аномалий). Число правил увеличивалось с 5 до 15, а число аномалий — с 0 до 5. По результатам экспериментов все аномалии были обнаружены.
Инициализация правила:
FilteringRule fRule1; fRule1.ruleName = fR1; fRule1.trafficType! tcp; fRule1.sAdd.octet 1=140 fRule1.sAdd.octet2=192
Согласно полученным данным, время поиска аномалий в зависимости от числа правил растет экспоненциально. Была выявлена линейная зависимость времени поиска от количества аномалий в правилах. Проведенные эксперименты показали, что предлагаемый подход позволяет выявлять все аномалии правил фильтрации межсетевых экранов, но может эффективно использоваться до определенного количества правил. В ходе дальнейших экспериментов планируется уточнить данное ограничение. Преимуществами данного подхода являются его высокий уровень абстракции при представлении данных и возможность исследовать динамическое поведение системы. К недостаткам относится вычислительная сложность подхода. и с
l5 l0 5
Р, шт
t, c l5 l0 5
Рис. 4
3 А , шт
Заключение. В настоящей статье предложены модели компьютерной сети, межсетвого экрана, аномалий фильтрации, а также методика верификации правил фильтрации методом проверки на модели. Предложена реализация методики с использованием программного средства SPIN с примерами на языке Promela. Представлены результаты проведенных экспериментов.
В предлагаемом подходе к верификации методом проверки на модели осуществляются моделирование передачи ограниченного набора адресов и обработка их межсетевым экраном. Результаты обработки правил межсетевым каналом анализируются на предмет аномалий фильтрации, заданных формальными утверждениями.
По результатам проведенных экспериментов было показано, что предлагаемый подход позволяет выявлять все аномалии в правилах фильтрации политики безопасности, однако имеет экспоненциальную вычислительную сложность в зависимости от количества верифицируемых правил. Планируется дальнейшая доработка моделей и алгоритмов обнаружения аномалий, что позволит использовать данный подход для верификации правил фильтрации существующих корпоративных компьютерных сетей.
В настоящее время продолжается реализация компонентов верификации, служащих для выявления внешних аномалий при работе сети с несколькими межсетевыми экранами.
Работа выполнена при финансовой поддержке РФФИ (проект № 07-01-00547), программы фундаментальных исследований ОИТВС РАН (контракт № 3.2/03), Фонда содействия отечественной науке и при частичной финансовой поддержке, осуществляемой в рамках проектов Евросоюза POSITIF (контракт № IST-2002-002314) и RE-TRUST (контракт № 021186-2).
3
2
0
l
2
список литературы
1. Bandar a A. K., Kakas A. S., Lupu E. C., Russo A. Using of Argumentation Logic for Firewall Policy Specification and Analysis // 17th IFIP/IEEE Int. Workshop on Distributed Systems: Operations and Management. DSOM-2006, 2006. P. 185—196.
2. Jajodia S., Samarati P., Sapino M. L., Subrahmanian V. S. Flexible support for multiple access control policies // ACM Transaction Database Systems. 2001. Vol. 26, N 2. P. 214—260.
3. Zhang N., Ryan M. D., Guelev D. Evaluating Access Control Policies Through Model Checking // 8th Information Security Conf. (ISC'05). Singapore: Lecture Notes in Computer Sci. Springer-Verlag. 2005. Vol. 3650. P. 446—460.
4. Sirjani M. Formal specification and verification of concurrent and reactive systems. Ph.D. Thesis. Sharif University of Technology, 2004. P. 175.
5. Holzmann G. The Spin Model Checker // IEEE Transactions on Software Engineering. 1997. Vol. 23, N 5. P. 279—295.
6. Rothmaier G., Kneiphoff T., Krumm H. Using SPIN and Eclipse for Optimized High-Level Modeling and Analysis of Computer Network Attack Models // Lecture Notes in Computer Science. Springer-Verlag, 2005. Vol. 3639. P. 236—250.
7. ConradS., Campbell L. A., Cheng B. H. C., DengM. A requirements patterns-driven approach to specify systems and check properties // Int. SPIN workshop. 2003. Vol. 2648. P. 18—33.
8. El-Atawy A., Ibrahim K., HamedH., Al-Shaer E. Policy Segmentation for Intelligent Firewall Testing // Proc. 1st Workshop on Secure Network Protocols. Boston, Massachusetts, 2005. P. 67—72.
9. HamedH., Al-Shaer E. Taxonomy of Conflicts in Network Security Policies // IEEE Communications Magazine. 2006. Vol. 44, N 3. P. 134—141.
10. Common Information Model (CIM) Standards [Электронный ресурс]: <http://www.dmtf.org/standards/cim>.
11. On-The-Fly, LTL Model Checking with SPIN [Электронный ресурс]: <http://netlib.bell-labs.com/netlib/spin/ whatispin.html>.
12. McMillan K. The SMV System [Электронный ресурс]: <http://www.cs.cmu.edu/_modelcheck/smv.html>.
13. Alur R., Anand H., Grosu R., Ivancic F., etc. Mocha User Manual. JMocha Version 2.0 [Электронный ресурс]: <http://embedded.eecs.berkeley.edu/research/mocha/doc/j-doc/>.
Игорь Витальевич Котенко
Ольга Витальевна Полубелова
Сведения об авторах Санкт-Петербургский институт информатики и автоматизации РАН, научно-исследовательская группа компьютерной безопасности; E-mail: [email protected]
Санкт-Петербургский институт информатики и автоматизации РАН, научно-исследовательская группа компьютерной безопасности; E-mail: [email protected]
Рекомендована институтом
Поступила в редакцию 14.02.08 г.