2. О чем?
В общем
●
Что такое DPI и что оно умеет?
●
Поведенческое таргетирование
●
Расширение возможностей RTB-систем
●
Interstitial Web-pages
Технологии
●
Из чего делают DPI?
●
Режимы работы: sniffer, active DPI и TCP hijacking
●
Сниффер из TCP сервера
●
Flow control модули ядра Linux.
3. Deep Packet Inspection
Анализирует содержимое сетевых пакетов
Собирает IP фрагменты и TCP поток
Если работает «вразрез» (inline), то может
модифицировать трафик
Генерирует статистику и/или clickstream (flow)
...делает все это на очень высоких скоростях
Может использовать специальное оборудование или
работать на обычном Linux/x86-64
Используется для поведенческого
таргетирования, контроля потоков трафика,
фильтрации контента, предотвращения сетевых
атак, DLP, SDN...
4. Таргетирование
Выделяет целевую аудиторию из всего трафика
●
Реклама: показ объявлений по интересам
●
Маркетинг: статистика по группам
пользователей
●
Магазин: показать товар потенциальному
покупателю
●
Контент провайдер: динамический контент
сайта
Поведенческий, гео, временной, по профилям и
т.д.
6. Данные о пользователе
Посещаемые ресурсы и страницы
История переходов
Поисковые запросы
Место нахождения
Время и продолжительность активности
Используемые браузер, ОС, устройство
Актуальность данных: если пользователь покупал
месяц назад книги о еде - не значит, что он хочет их
купить сейчас
8. RTB: персонализация
SSP (Sell Side Platform): предоставляет данные о
пользователе (идентификатор)
DSP (Demand Side Platform): сравнивает
информацию о пользователе с параметрами
рекламной кампании
DMP (Data Management Platform): аккумулирует в
себе знания о пользователях
С кликами пользователей можно передавать их
профиль на последние Т минут (и они не получат
рекламу книг, которые покупал месяц назад)
9. Серверные логи
Локальны (не везде можно собрать)
Ограничены (не дают полной картины)
Полный профиль можно собрать на последней
миле
Агрегация и обработка логов на всех серверах всех
датацентров очень ресурсоемка
DPI может извлечь любую информацию из всего
трафика пользователей, обработать и передать в
режиме реального времени
10. Interstitial Web-page
Показываются до или после запрашиваемой
страницы
Ошибки HTTP, DNS, авторизации и т.д.
Вместо Internal Server Error может быть показана
красивая реклама
11. Приватность
Данные анонимизируются (везде обезличенные ID)
Big Data (grep не работает)
С точки зрения пользователя аналогично обычной
контекстной рекламе (рекламная сеть, почта
Gmail и пр.)
12. Технологии
Libpcap — очень медленная из-за копирований
(sk_buff в shared buffer для mmap-mapped)
PF_RING, Netmap, DPDK — забирают пакеты
напрямую с адаптера (сборка IP и TCP,
маршрутизация и пр. - все руками)
●
mTCP - User-level TCP Stack
Kernel module — позволяет использовать API ядра,
работает в нулевом кольце защиты (правильные
spinlock'и)
●
нужно патчить ядро для исключения «лишнего»
13. Режимы работы
Inline = Linux маршрутизатор: QoS, фильтрация и
пр. - произвольная модификация трафика
Sniffer (SPAN port): статистика, clickstream, TCP
Hijacking (active sniffer)
16. Sniffer из TCP сервера
Дело техники:
Запросы клиента отправляются как есть
Ответы оригинального сервера игнорируются
ACK клиента подделывается под seqno сервера
Обрабатываются сессии только, для которых был
TCP handshake
Весь исходящий трафик сервера удаляется
Принудительное удаление «подвисших»
(потерянных) соединений
Promiscuous интерфейс должен быть
маршрутизируемым....
17. ...более сложной техники
VLAN тэги:
●
нет общего правила для перезаписи (ebtables)
●
Netfilter PREROUTE зовется после VLAN тэга
●
=> нужно регистрировать свой протокольный
обработчи, переписывать sk_buff
●
модифицировать можно только неразделяемые
sk_buff, а у нас 2 протокола...
Управление TCP (нужно вбрасывать пакеты в
стек):
●
tcp_v{4,6}_rcv() зовутся из softirq, а нам нужно
«вбрасывать» пакеты при отправке => deadlock...
18. Flow control
Queuing Discipline (Qdisc) Interface:
struct Qdisc — дескриптор дисциплины
struct Qdisc_ops — набор виртуальных функций
управления очередями
struct Qdisc_class_ops — функции управления
классами очередей
Кастомный модуль flow control:
QoS для IPv4/IPv6, загруженных извне (БД) или
вычисленных другими подсистемами DPI
QoS для подсетей и адресов и/или TCP/UDP портов
(лучшее качество для VoIP, чем для torrent)