ntced

18
NTCE NDM Traffic Classification Engine

Upload: dmitry-zuikov

Post on 17-Jan-2017

400 views

Category:

Software


0 download

TRANSCRIPT

Page 1: NTCED

NTCENDM Traffic Classification Engine

Page 2: NTCED

NTCENDM Traffic Classification Engine

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

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

Page 3: NTCED

NTCENDM Traffic Classification Engine

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

QoS

Database

Page 4: NTCED

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

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

· PISA· SPID

Page 5: NTCED

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

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

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

Page 6: NTCED

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

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

Page 7: NTCED

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

{xi}

p2p

video

skype

DNS

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

Page 8: NTCED

PISAProtocol Identification via Statistical Analysis

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

i(xai − xbi)2

- Атрибуты:

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

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

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

Page 9: NTCED

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

Page 10: NTCED

SPID

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

Page 11: NTCED

SPID

detector1

detector2

. . .

detectorn

⊕ {x11 . . . x1K}

⊕ {x21 . . . x2L}

⊕ {xn1 . . . xnM}

Pkt. payload

Хэшфункции

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

P = { xi∑jxj}

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

Page 12: NTCED

SPIDна практике

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

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

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

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

Page 13: NTCED

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

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

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

Page 14: NTCED

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

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

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

Page 15: NTCED

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

Page 16: NTCED

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

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

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

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

Page 17: NTCED

NTCE

mgenspid_tool.pcap дампы

samples mgen.db Fingerbank

Fingerbank data

detectors.conf

spid_db_test ntced

Page 18: NTCED

NTCED

Linux Kernel

NTCED

PF_RING

SPID detector DNS detector

mgen

DHCP detector

Fingerbankflow hash

ntce_sink

Subscriber

(NDM)

Пакеты

MsgPack (pipe)

Blob (UDP)