Денис Гамаюнов / Дмитрий Казачкин, 5 курс, sec-sem

На этом форуме публикуются и уточняются постановки задач студентам, а также отслеживается ход их выполнения

Модератор: staff

Закрыто
Бычков Иван
Аспирант
Сообщения: 179
Зарегистрирован: 23 сен 2008 01:19 pm

Денис Гамаюнов / Дмитрий Казачкин, 5 курс, sec-sem

Сообщение Бычков Иван »

Тема: Создание параллельного ядра анализа системы обнаружения атак

Расшифровка темы:


Продолжение работы 4-го курса в общем направлении повышения производительности ядра анализа и базы сценариев REDSecure.

В проектах на базе СОА REDSecure используется специализированный domain-specific язык для описания алгоритмов анализа поведения объектов в сети и на узлах в терминах конечных автоматов. Единица языка - сценарий - описывает множество состояний и переходов с предикатами, причём в теле переходов могут выполняться некоторые полезные действия, а в предикатах - вычисляться логические условия на входные события.
В состав любого сенсора REDSecure входит набор сценариев на данном языке и система прогона. Задача системы прогона - формирование входного потока событий для сценариев и планирование порядка выполнения предикатов и переходов из состояния в состояние для каждого сценария. В настоящее время система прогона условно-параллельна - поток событий и выполнение сценариев выполняются независимо. Но при этом в каждый момент времени обрабатывается только одно событие, независимо от числа доступных процессоров.
Так вот, целью дипломной работы является полноценное распараллеливание системы прогона, скорее всего, по модели SIMD - на каждом доступном процессоре выполняется один и тот же набор сценариев, но со своим контекстом. Возможно, что обработка одного события на отдельном ядре (процессоре) при этом будет рассматриваться как задача реального времени (к обсуждению).

Актуальность:

Создание параллельного ядра анализа позволит увеличить реальную пропускную способность единичного сенсора системы обнаружения атак. Существующие решения часто используют следующий способ достижения пропускной способности 1Гбит/с при реальной пропускной способности одного сенсора, скажем, 100Мбит/с: берём 11 узлов, на первом входящий трафик режется на 10 каналов каждый не плотнее 100Мбит, и отдаётся на остальные 10 узлов на анализ. Нам такое решение представляется: 1) неинтересным, 2) дорогим в эксплуатации, 3) менее надёжным по сравнению с единичным сенсором плюс резервирование.

Цель работы
: Создание параллельного кросс-платформенного ядра анализа сетевого трафика для системы обнаружения атак REDSecure.

Постановка задачи:
Задачей курсовой работы является распараллеливание системы поддержки выполнения программ на языке R-lang (ядра анализа) системы REDSecure для выполнения на многоядерных процессорах архитектур IA32, IA64, SPARC, разработка автоматизированного теста (бенчмарка) для численной оценки производительности ядра анализа и экспериментальная оценка производительности параллельного ядра анализа на указанных архитектурах.

План работы:

1-й семестр:
1. Изучение открытых библиотек для создания параллельных приложений, способов синхронизации, организации планировщиков в SMP.
2. Выбор и обоснование модели параллельного выполнения ядра анализа REDSecure, выбор или разработка алгоритма планирования выполнения сценариев, организации очередей событий, способов синхронизации.
2'. Разработка real-time планировщика для сценариев при выполнении на одном ядре.
3. Разработка автоматизированного теста производительности ядра анализа с учётом особенностей существующей базы сценариев - использование регулярных выражений, алгоритма Ахо-Корасик в предикатах и т.д. (требования к тесту разрабатываются совместно со мной и Петром Шугалёвым). Оценка производительности существующей реализации с помощью данного теста.
4. Реализация параллельного ядра анализа.

2-й семестр:
1. Тестирование параллельного ядра на разработанном тесте.
2. Стресс-тестирование параллельного ядра на 1Гбит-ном канале с утилизацией близкой к 100% (стенд).
3. Тестирование на реальной сети, а также на "тяжёлых" сценариях (обнаружение шеллкода в трафике).

Ожидаемые результаты:
Параллельное ядро анализа для СОА REDSecure.

Отношение трудоёмкости теоретической и практической части 40/60.
Казачкин Дмитрий
Выпускник
Сообщения: 2
Зарегистрирован: 02 окт 2006 11:11 pm

Сообщение Казачкин Дмитрий »

Отчёт по дипломной работе за 9-й семестр
Студента 522 группы
Казачкина Дмитрия
Научный руководитель
Гамаюнов Денис

Тема: "Создание параллельного ядра анализа событий для системы обнаружения и предотвращения атак"

Постановка задачи: Задачей курсовой работы является распараллеливание системы поддержки выполнения программ на языке R-lang (ядра анализа) системы REDSecure для выполнения на многоядерных процессорах архитектур IA32, '''AMD64''', SPARC, разработка автоматизированного теста (бенчмарка) для численной оценки производительности ядра анализа и экспериментальная оценка производительности параллельного ядра анализа на указанных архитектурах.

Цель работы: Создание параллельного кросс-платформенного ядра анализа сетевого трафика для системы обнаружения атак REDSecure.
Для достижения цели дипломной работы необходимо решить следующие задачи:
1. Разработать и обосновать модель параллельного выполнения сценариев для ядра анализа REDSecure;
2. Разработать алгоритмы планирования выполнения сценариев, организации очередей событий, способов синхронизации.
3. Разработать автоматизированный тест производительности ядра анализа с учётом особенностей существующей базы сценариев - использование регулярных выражений, алгоритма Ахо-Корасик в предикатах и т.д. Оценить производительность существующей реализации с помощью данного теста.
4. Реализовать параллельное ядро анализа для операционных систем Linux, Windows 2000/XP.
5. Оценить эффективность параллельного ядра на разработанном тесте, провести стресс-тестирование на 1Гбит-ном канале с утилизацией близкой к 100% , а также провести тестирование на реальной сети и "тяжёлых" сценариях (обнаружение вредоносного исполнимого кода в трафике).

Сделано:
1. Было разработано и описано несколько различных моделей параллельного выполнения сценариев для ядра анализа REDSecure, было произведено их сравнение, для лучшей из них обоснован выбор данной модели для реализации. Данная модель предполагает как параллельную обработку одного события множеством сценариев, так и работу различных контекстов одного сценария в параллель друг другу.
2. Для выбранной модели произведено уточнение архитектурных деталей будущей системы, в том числе алгоритмы планирования выполнения сценариев, организация очередей событий, способы синхронизации.
3. Разработано и реализовано несколько автоматизированных тестов производительности:
* Тест, позволяющий оценить максимальную пропускную способность (число событий, обрабатываемых в единицу времени) ядра анализа при различных наборах загруженных сценариях.
* Тест, позволяющий оценить качество обнаружения атак, содержащихся в множестве дамп-файлов, набором сценариев. Помимо процента обнаружения, данный тест позволяет определить и время работы системы (на текущий момент, оно может отличаться от времени воспроизведения дампа).
* Тест, основанный на системе Mucus, позволяющий осуществить загрузку канала флудом из разнотипных сообщений, ориентированных на конкретные сценарии.
4. Реализована часть параллельного ядра анализа для ОС Linux.

Планы на следующий семестр:
1. Завершение реализации параллельного ядра анализа.
2. Оценить эффективность параллельного ядра на разработанном тесте, провести стресс-тестирование на 1Гбит-ном канале с утилизацией близкой к 100% , а также провести тестирование на реальной сети и "тяжёлых" сценариях (обнаружение вредоносного исполнимого кода в трафике).

Литература:
1. Кеммерер Р., Виджна Д. Обнаружение вторжений: краткая история и обзор [HTML] (http://www.osp.ru/text/302/181714.html)
2. Пировских А. Snort: инструмент выявления сетевых атак [HTML] (http://www.thg.ru/network/20051020/index.html)
3. Система обнаружения атак RealSecure [HTML] (http://citforum.ru/security/internet/real_scan.shtml)
4. Prelude User Manual [HTML] (https://trac.prelude-ids.org/wiki/ManualUser)
5. Pervasive Network Visibility, Deep Application Insight, Security and Profitable Managed Services [PDF] (http://www.arbornetworks.com/index.php? ... load&gid=6)
6. Defeating DDOS Attacks [PDF] (http://www.cisco.com/en/US/prod/collate ... 11e927.pdf)
7. Deri L. Improving Passive Packet Capture: Beyond Device Polling [PDF] (http://luca.ntop.org/Ring.pdf)
8. Rizzo L. Device Polling Support for FreeBSD [HTML] (http://info.iet.unipi.it/~luigi/polling/)
9. Deri L. nCap: Wire-speed Packet Capture and Transmission [PDF] (http://luca.ntop.org/nCap.pdf)
10. Mikolasek V. Intrusion Detection Systems - State of the Art Report [PDF] (http://www.vmars.tuwien.ac.at/php/pserv ... ileid=1524)
11. Wang H.J., Guo C., Simon D.R., Zugenmaier A. Shield: Vulnerability-Driven Network Filters for Preventing Known Vulnerability Exploits. [PDF] (http://research.microsoft.com/~helenw/p ... comm04.pdf)
12. Schear N., Albrecht D.R., Borisov N. High-Speed Matching of Vulnerability Signatures [PDF] (http://www.cs.uiuc.edu/homes/nschear2/raid-2008.pdf)
13. Vossen J.P. Snort Intrusion Detection and Prevention Guide [HTML] (http://searchsecurity.techtarget.com/ge ... 23,00.html)
14. Jacob N., Brodley C. Offloading IDS computation to the GPU [PDF] (http://www.acsac.org/2006/papers/74.pdf)
15. Vasiliadis G., Antonatos S., Polychronakis M., Markatos E.P., Ioannidis S. Gnort: High Performance Network Intrusion Detection Using Graphics Processors [PDF] (http://www.ics.forth.gr/dcs/Activities/ ... raid08.pdf)
16. Kazachkin D., Gamayunov D., Network traffic analysis optimization at signature-based intrusion detection systems. // In Proceedings of SYRCoSE 2008, Vol 1, p. 27-32
17. REDSecure: обнаружение и предотвращение атак [HTML](http://redsecure.ru/)
18. Гамаюнов Д. Ю., Обнаружение компьютерных атак на основе анализа поведения сетевых объектов. // Москва, 2007. Кандидатская диссертация.
19. Eckmann S.T., Giovanni Vigna G., Kemmerer R.A. STATL: An Attack Language for State-based Intrusion Detection [PDF] (http://www.cs.ucsb.edu/~vigna/publicati ... _statl.pdf)
20. Lattner C., Adve V. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation [PDF] (http://llvm.org/pubs/2003-09-30-Lifelon ... tionTR.pdf)
Никита Ющенко
Сотрудник
Сообщения: 155
Зарегистрирован: 25 авг 2004 01:02 pm

Сообщение Никита Ющенко »

По тексту отчёта я затрудняюсь определить объём проделанной работы и её соответствие постановке задачи.

Хотелось бы ознакомиться с описанием рассмотренных моделей, критериями выбора "лучшей", что за архитектурные детали уточнены и т.п.

На этапе постановки этой задачи мне казалось, что очень многое тут скрывается в технических деталях - как на практике обеспечить параллельную обработку на требуемых скоростях. Особенно с учётом того что тут (как мне казалось) замешана работа в режиме ядра.
А в отчёте на эту тему - лишь скромная фраза "Реализована часть параллельного ядра анализа для ОС Linux. ... Планируется завершение ..."
Значит ли это, что технических проблем нет?
Казачкин Дмитрий
Выпускник
Сообщения: 2
Зарегистрирован: 02 окт 2006 11:11 pm

Сообщение Казачкин Дмитрий »

Рассматривались модели с разделением данных на домены, разделением сценариев на домены, модель с предвычислением условий переходов (элемент очереди - <Событие, Контекст, Переход>), текущая модель, оперирующая сценариями, а не контекстами (Элемент очереди - связка <Событие, Сценарий, Итератор обхода дерева Контекстов, Финал обхода дерева Контекстов>). Модели описаны в траке (к несчастью, закрытом, но могу выслать по почте) на trac.redsecure.ru, там же производится их сопоставление, основанное на ожидаемом поведении при исполнении типовых на текущий момент сценариев и выполнении требований к параллелизму. Данное сопоставление признало лишь текущую схему жизнеспособной.

Ядерный уровень предполагается пока только на встроенной системе на базе подсистемы netgraph в ядре FreeBSD. Непараллельный рантайм в этом качестве уже реализован, я работаю над его развитием (постановка задачи дипломной работы предполагает работу в user-space, однако это делается с учетом необходимости дальнейшего переноса).
Закрыто