ntced

Post on 17-Jan-2017

400 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

NTCENDM Traffic Classification Engine

NTCENDM Traffic Classification Engine

- Статистическое определение протоколов (≈ 30 пакетов)- Определение платформ- Автоматическое обучение новым типам протоколов- Контроль качества распознавания- Загружаемая (бинарная) база отпечатков- Оптимизация вычислений для низкопроизводительныхплатформ

- Правила на основе DNS- Правила на основе портов- Счётчики- Минимальные зависимости (PF_RING, cmp.c)

NTCENDM Traffic Classification Engine

Классификатор(DPI)

QoS

Database

Классификация: способы реализации

- База сигнатур- Статистические методы

· PISA· SPID

База сигнатур

Поиск сигнатур из базы в каждом пакете

- Нужна база сигнатур- Высокий False Positive (строка bittorrent в письме)- Сложность высокопроизводительной реализации- Невозможность определения неизвестных протоколов

Статистические методы

- Используют те или иные техники машинного обучения· Вектор признаков (размеры пакетов, сигнатуры, частоты. . . )· База признаков известных протоколов· Поиск в базе при распознавании (метод ближайшегососеда)

Метод ближайшего соседа

{xi}

p2p

video

skype

DNS

{xi} – вектор признаков

PISAProtocol Identification via Statistical Analysis

- Эвклидово расстояние Dab =√∑

i(xai − xbi)2

- Атрибуты:

1 Средний размер пакета в каждом направлении2 Среднее время отклика в каждом направлении3 Среднее отклонение размера пакета в каждом направлении4 Среднее отклонение времени отклика в каждом

направлении5 Разность объема трафика по направлениям6 Энтропия

- ≈ 100 пакетов для уверенного распознавания- Точность: мало информации

SPIDProtocol Identification via Statistical Analysis

- Дивергенция Кульбака-Лейблера вместо расстояния1

D(P ‖ Q)KL =∑

Pilog(PiQi

)

- ≈ 30 пакетов flow для распознавания- ≈ 30 детекторов:

· Временны́е характеристики· Размеры пакетов (средние, максимальные, туда, обратно)· Частоты символов, двойных символов (TT,SS), юникода· Энтропия· Частоты сигнатур (в т.ч. запрос-ответ)

1DKL не является метрикой, D(P ‖ Q)KL 6= D(Q ‖ P )KL

SPID

- Простой в реализации- log2(x) быстро считается табличным способом- Можно обойтись целочисленной арифметикой для всего

SPID

detector1

detector2

. . .

detectorn

⊕ {x11 . . . x1K}

⊕ {x21 . . . x2L}

⊕ {xn1 . . . xnM}

Pkt. payload

Хэшфункции

X = {x11 . . . x1K , x21 . . . x2L, . . . , xn1 . . . xnM}

P = { xi∑jxj}

нормированный вектор признаков

SPIDна практике

- Плохие хэшфункции (медленные, огромное числоколлизий)

- Ошибки реализации (датчики считают неизвестно что изданных по случайным адресам)

- Некоторые датчики или их реализации только вредят(смысл считать частоты случайного контента?)

- Недостаточная точность- Огромный вектор признаков (медленно)- Плавающая точка (эмуляция)

SPIDнаша реализация

- Настоящие хэшфункции (murmur2)- Кластеризация обучающей выборки по вектору признаков- Автоматическая оценка качества распознавания- Отобраны лучшие детекторы- Улучшены и исправлены остальные- Собственные детекторы (punct_freq, hi_nibble_freq, gperf,byte_position_freq)

- Все вычисления в целых- RLE-сжатие векторов

SPIDнаша реализация

- 30 пакетов для распознавания (меньше хуже, больше тожехуже)

- 10 детекторов, 406 признаков по 16 бит- Размер текущей базы менее 5Kb- Около 1Kb в пике на сессию (при распознавании)- ≈ 30% - 60% Xeon 2.5Ghz на 1Gbit (миррор портапровайдера)

SPIDнаша реализация: кроссвалидация

Протокол Rec Prec Fmeas

vimeo 0.800 0.700 0.733ivi 0.933 1.000 0.960youtube 1.000 1.000 1.000rutube 1.000 1.000 1.000metacafe 0.800 0.800 0.800torrent 1.000 1.000 1.000skype 1.000 1.000 1.000

Recall = tptp+fn

Precision = tptp+fp

Fmeas = 2× Recall×PrecisionRecall+Precision

SPIDнаша реализация

punct_freq: Частоты символов пунктуации (текстовыепротоколы (HTML) vs. бинарный контент)

byte_position_freq: Появление определенных байт вопределенных позициях (skype)

gperf: База сигнатур- На основе perfect hash- Генерируется автоматически

NTCE

mgenspid_tool.pcap дампы

samples mgen.db Fingerbank

Fingerbank data

detectors.conf

spid_db_test ntced

NTCED

Linux Kernel

NTCED

PF_RING

SPID detector DNS detector

mgen

DHCP detector

Fingerbankflow hash

ntce_sink

Subscriber

(NDM)

Пакеты

MsgPack (pipe)

Blob (UDP)

top related