Интеллектуальный сетевой сниффер Участники проекта: Виктор Гранкин ФИТ Виктор Костин ММФ Руководитель проекта: Иртегов Д.В. Постановка задачи • Сбор статистики сети(сниффер) • Анализ статистики с целью определения, какой трафик является аномальным, а какой нормальным для данной сети • Генерация правил для IPtables на основе полученных данных Пример правил для IPtables • iptables -A INPUT -p UDP -s !10.3.0.0/255.0.255.0 --d-port 2074 -j ACCEPT • iptables -A INPUT -i etho -d 224.0.0.0/8 -j DROP Компоненты программы • Сетевой сниффер • Множество для хранения и эффективного извлечения полученных данных • Генератор правил для IPtables Формат полученных данных TCP, UDP protocol source s-port destination d-port 17(UDP) 193.124.29.1 53 10.4 .16.26 32771 6(TCP) 10.4.16.26 42035 10.4.16.38 139 ICMP protocol source destination type 1(ICMP) 10.4.16.26 194.67.57.26 3(host unreachable) Математический аппарат • Логические решающие правила(ЛРП) • Алгоритм DW построения ЛРП • Выбор оптимального критерия Алгоритм DW построения ЛРП Выбор оптимального критерия max(| A1 || B 2 |, | A2 || B1 |) | A1 A2 || B1 B 2 | min(| A1 |, | A2 |) min(| B1 |, | B 2 |) 1 max(| A1 |, | A2 |) max(| B1 |, | B 2 |) 0 1 opt 1 Типы критериев • IP address netmask • Сравнение по номеру порта(для TCP/UDP) • Сравнение по типу сообщения (для ICMP) Технические подробности • Программа реализована на С++ (с использованием библиотеки libpcap-0.9.5) • Хранение данных организовано при помощи Binary Decision Diagrams (библиотека BuDDy-2.4) Binary Decision Diagrams f ( x1 ,..x8 ) x1 x2 x3 x4 x5 x6 x7 x8 Результаты • Сетевой сниффер(под Linux) реализован • Классификация трафика на нормальный и аномальный не реализована • Генерация дерева правил для IPtables реализована Спасибо за внимание