Министерство образования и науки Российской Федерации Санкт-Петербургский государственный университет информационных технологий, механики и оптики Факультет информационных технологий и программирования Кафедра компьютерных технологий Отчет «Разработка методики оценки демаскирующей возможности трафика в задачах технической разведки» Дисциплины: «Технологии телекоммуникаций», «Защита информации» Авторы: Дмитрий Паращенко, гр. 5538 Федор Царев, гр. 5538 Санкт-Петербург 2008 Содержание Содержание ................................................................................................ 2 Введение..................................................................................................... 3 1. Состав функция программного комплекса ..................................... 3 1.1. Модель взаимодействия компьютеров ..................................... 3 1.2. Параметры трафика..................................................................... 4 1.3. Некоторые способы противодействия описанным методам .. 5 2. Критерии оптимальности разработки .............................................. 5 3. Анализ предварительных проектных решений .............................. 6 4. Обоснование выбора метода решения задачи ................................ 7 5. Алгоритм функционирования........................................................... 7 5.1. Архитектура разрабатываемой программы................................. 8 5.2. Предлагаемый метод...................................................................... 8 6. Интерфейсы и протоколы взаимодействия ................................... 11 7. Технологий разработки ПО ............................................................ 11 8. Порядок использования................................................................... 11 9. Методика тестирования функциональности ................................. 11 Источники ................................................................................................ 12 2 Введение Настоящий документ является отчетом по заданию «Разработка методики оценки демаскирующей возможности трафика в задачах технической разведки». Описываемый проект выполняется в рамках дисциплин «Технологии телекоммуникаций» и «Защита информации». Параметры трафика приложений характеризуются индивидуальными особенностями, позволяющими в той или иной степени делать предположения о функциональных задачах ЛС - объектов разведки. В задании требуется разработать: - модель ложного трафика в канале связи на основе адаптивного алгоритма с заданными ограничениями на пропускную способность технического канала - модель трафика приложений, оптимальную с точки зрения технической разведки (при заданных предположениях на допустимую загрузку каналов связи). - методику определения вероятности правильной идентификации приложения по наблюдаемым параметрам трафика на заданном временном интервале. - интерактивную программу, выполняющую необходимые расчеты. 1. Состав функция программного комплекса 1.1. В Модель взаимодействия компьютеров настоящей работе рассматривается клиент-серверное взаимодействие компьютеров. Этот выбор обусловлен тем, что системы «клиент-сервер» наиболее часто используется, что делает их наиболее частым объектом технической разведки. При этом предполагается, что трафик защищен шифратором. В наиболее простом случае 3 рассматривается сеть, состоящая из одного сервера и одного клиента (рис. 1). Сервер Технический канал Клиент Рис. 1. Взаимодействие клиент-сервер Таким образом, первой задачи работы является разработка указанной выше методики для случая одного клиента и одного сервера. В более сложном случае в сети присутствуют несколько клиентов. В этом случае предлагается анализировать трафик между сервером и каждым из клиентов отдельно, а затем комбинировать результаты. В этом случае необходимо применять методы теории вероятностей для оценки правдоподобности результатов. 1.2. Параметры трафика Перечислим параметры трафика, которые будут подвергаться анализу: длины пакетов; длительности межпакетных интервалов; код приоритета трафика (в IP протоколе он кодируется в поле ToS). В силу того, что трафик зашифрован, единственным методом его анализа является статистический анализ. Для этого предлагается применять методы распознавания образов и кластеризации [1, 2]. Для этого на некоторых временных отрезках записывается зависимость интенсивности и направления передачи трафика от времени. Эти функции 4 далее преобразуются к виду, удобному для применения указанных методов. Далее возможны два сценария их применения. В первом из них функции на разных временных отрезках сравниваются между собой и подвергаются кластеризации. Это позволяет выделить группы (кластеры) отрезков таким образом, что на протяжении всех отрезков из одной группы с большой вероятностью трафик порождало одно и то же приложение. Во втором из них функции зависимости трафика от времени сравниваются с некоторыми известными заранее образцами. Методы распознавания образов, как правило, позволяют получить оценку вероятности того, что функция соответствует образцу. Таким образом, имеется возможность оценить достоверность полученных данных. 1.3. Некоторые способы противодействия описанным методам Для защиты от статистического анализа трафика необходимо постоянно поддерживать параметры трафика (например, уровень загруженности канала) на одном и том же уровне. Один из способов реализовать эту идею – использовать специальную программу, которая будет в реальном времени анализировать трафик и при необходимости генерировать ложный трафик. При этом пакеты, относящиеся к ложному трафику не должны быть одинаковыми, так как большое количество одинаковых пакетов не является типичным. Главный недостаток этого метода состоит в том, что канал постоянно загружен, и большая часть его пропускной способности тратиться на не несущий полезной информации ложный трафик. 2. Критерии оптимальности разработки К критериям оптимальности разработки можно отнести следующие: 5 Трудоемкость реализации того или иного проектного решения. Для создания конкретного проектного решения требуется определенное количество человеко-часов, которое в свою очередь зависит от: навыков работы и знаний программиста в данной области; документированности методов разработки; алгоритмов реализации. Трудоемкость процесса «обучения» модели, используемой для распознавания трафика. Различным моделям требуются различные объемы «тренировочных» данных для обучения. Точность и корректность распознавания трафика. Эти критерии напрямую связаны с вероятностями ошибок первого и второго рода, совершаемыми при распознавании трафика. 3. Анализ предварительных проектных решений На этапе анализа предварительных проектных решений рассматривались следующие варианты: 1) использование некоторого алгоритма классификации, не основанного на скрытых Марковских моделях (СММ); 2) использование скрытых Марковских моделей с непрерывными наблюдаемыми величинами; 3) использование скрытых Марковских моделей с дискретными наблюдаемыми величинами совместно с некоторым алгоритмом классификации. Из указанных трех решений было выбрано третье, так как оно обладает большей универсальностью, чем первое и проще в реализации, чем второе. 6 4. Обоснование выбора метода решения задачи Приведем таблицу (табл. 1) сравнительного анализа указанных выше трех подходов. Таблица 1. Сравнение подходов к решению задачи Трудоемкость Трудоемкость Ожидаемая реализации обучения точность Вывод распознавания трафика Не Алгоритм классификации низкая средняя низкая рекомендуется, из-за низкой точности СММ с непрерывными Слишком высокая наблюдаемыми высокая высокая реализации величинами СММ сложна в с дискретными наблюдаемыми средняя средняя высокая Рекомендуется величинами Оценка ожидаемой точности распознавания трафика связана с описанными в [1] исследованиями по распознаванию речи (задача распознавания речи весьма схожа с задачей, рассматриваемой в настоящей работе), в которых скрытые Марковские модели показали себя лучше традиционных алгоритмов классификации. 5. Алгоритм функционирования В настоящем разделе описан алгоритм функционирования разрабатываемой системы. 7 5.1. Архитектура разрабатываемой программы Разрабатываемая программа должна состоять из двух частей: модуля, имитирующего канал передачи данных с сервером и клиентом, и анализатора, реализующего алгоритм распознавания трафика. Во втором модуле должны быть реализован предлагаемый алгоритм (описан далее). Модуль, соответствующий каналу передачи данных, должен поддерживать несколько режимов генерации трафика, соответствующих моделированию работы различных приложений. 5.2. Предлагаемый метод Основной идеей предлагаемого метода является использование скрытых Марковских моделей [3, 4]. Как и любой метод, связанный с распознаванием образов, предлагаемый подход состоит из двух этапов: обучения модели и классификации трафика с использованием обученной модели. Скрытая Марковская модель – это статистическая модель, в которой предполагается, что система является Марковским процессом, параметры которого неизвестны. При этом измерению подвергаются так называемые наблюдаемые параметры (рис. 1). Рис. 2. Скрытая Марковская модель 8 На рис. 2 как X1, X2, X3 обозначены состояния Марковской цепи, как aij – вероятности переходов между состояниями, как y1, y2, y3, y4 – наблюдаемые параметры, как bij – вероятности наблюдения параметров в зависимости от состояния. В качестве наблюдаемых параметров будут выступать длины пакетов и длительности межпакетных интервалов. Выбор Марковской цепи как модели программы, осуществляющей прием и передачу пакетов, обоснован тем, что скрытые Марковские модели успешно применяются в задачах распознавания речи, а также тем, что Марковская цепь содержит состояния, а понятие состояния часто является удобным для описания взаимодействий по сети. Например, на основе состояний описывают поведение некоторых сетевых протоколов. Так длины пакетов и длительности межпакетных интервалов могут принимать практически произвольные числовые значения, то их использование напрямую в качестве наблюдаемых параметров скрытой Марковской модели затруднительно. Поэтому предлагается предварительно выполнять их кластеризацию. Поясним более формально. Пусть обучение модели производится с помощью последовательности пакетов, имеющих длины L1, L2, …, Ln, а длительности межпакетных интервалов между ними равны T1, T2, …, Tn-1. В начале производится кластеризация длин пакетов и длительностей межпакетных интервалов, то есть каждое из множеств L1, L2, …, Ln и T1, T2, …, Tn-1 разбивается на группы (кластеры), внутри которых числа достаточно близки друг к другу. Для этого используется любой алгоритм кластеризации [1, 2]. При использовании некоторых алгоритмов количество кластеров необходимо задавать заранее, другие же сами его определяют. Обозначим количество кластеров в множестве длин как пакетов k, а в множестве длительностей межпакетных интервалов – как m. Будем считать, что кластеры множества длин пакетов пронумерованы натуральными числами от 0 до k-1, а кластеры в множестве длительностей – числами от k до k+m-1. 9 После кластеризации вместо чередующейся последовательности L1, T1, L2, T2, …, Ln-1, Tn-1, Ln мы имеем чередующуюся последовательность номеров кластеров y1, y2, …, y2n-1, в которой элементы, стоящие на нечетных позициях соответствуют длинам пакетов, а на четных – длительностям межпакетных интервалов. Далее, с помощью последовательности алгоритма наблюдаемых Баума-Велча параметров [4] обучается по этой скрытая Марковская модель. Итого, модель трафика состоит из Марковской цепи, полученной с помощью алгоритма Баума-Велча, и набора кластеров для длин пакетов и длительностей межпакетных интервалов. Кластеры задаются по-разному в зависимости от используемого алгоритма кластеризации. На этапе классификации трафика у нас имеется несколько обученных моделей, соответствующих работе различных приложений. На вход поступает чередующаяся последовательность длин пакетов и длительностей межпакетных интервалов L1, T1, L2, T2, …, Ln-1, Tn-1, Ln. Для определения того, каким приложением (то есть, какой моделью) был сгенерирован трафик, для каждой модели вычисляется вероятность того, что она сгенерировала этот трафик. После этого выбирается модель, для которой эта вероятность наибольшая. Для вычисления последовательность интервалов длин сначала указанной вероятности чередующаяся пакетов и длительностей межпакетных преобразуется в последовательность номеров кластеров, входящих в рассматриваемую модель. Если на этом этапе выясняется, что длина пакета или длительность интервала не соответствует ни одному из кластеров, то указанная вероятность принимается равной нулю. В противном случае эта вероятность вычисляется с помощью алгоритма, основанного на динамическом программировании и описанном в [5]. 10 6. Интерфейсы и протоколы взаимодействия 7. Технология разработки ПО В качестве языка программирования при разработке использовался язык Java. При разработке использовались следующие программные продукты: Sun Java 6.0; Eclipse SDK 3.2.1. Eclipse использовался в качестве интегрированной среды разработки, а Java 6.0 – в качестве компилятора. При этом разработка проводилась с использованием методологии TDD (Test Driven Development – разработка на основе тестов), для автоматизации тестирования использовалось инструментальное средство JUnit 4. 8. Порядок использования 9. Методика тестирования функциональности 11 Источники 1. Рассел С., Норвиг П. Искусственный интеллект. Современный подход. М.: Вильямс. 2006. 2. Николенко С. Слайды лекции «Clustering. Graph algorithms, hierarchical clustering, FOREL» http://logic.pdmi.ras.ru/~sergey/teaching/ml/11-cluster.pdf 3. Николенко С. Слайды лекции «Clustering II. EM for clustering, k-means, fuzzy c-means» http://logic.pdmi.ras.ru/~sergey/teaching/ml/12-cluster2.pdf 4. Wikipedia. Hidden Markov Models. http://en.wikipedia.org/wiki/Hidden_Markov_model 5. Николенко С. Слайды лекции «Скрытые Марковские модели» http://logic.pdmi.ras.ru/~sergey/teaching/mlbayes/06-hmm.pdf 12