SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
Deep Packet Inspection (DPI)
для online-маркетинга, RTB
и рекламы
Александр
Крижановский
О чем?
В общем
●
Что такое DPI и что оно умеет?
●
Поведенческое таргетирование
●
Расширение возможностей RTB-систем
●
Interstitial Web-pages
Технологии
●
Из чего делают DPI?
●
Режимы работы: sniffer, active DPI и TCP hijacking
●
Сниффер из TCP сервера
●
Flow control модули ядра Linux.
Deep Packet Inspection
Анализирует содержимое сетевых пакетов
Собирает IP фрагменты и TCP поток
Если работает «вразрез» (inline), то может
модифицировать трафик
Генерирует статистику и/или clickstream (flow)
...делает все это на очень высоких скоростях
Может использовать специальное оборудование или
работать на обычном Linux/x86-64
Используется для поведенческого
таргетирования, контроля потоков трафика,
фильтрации контента, предотвращения сетевых
атак, DLP, SDN...
Таргетирование
Выделяет целевую аудиторию из всего трафика
●
Реклама: показ объявлений по интересам
●
Маркетинг: статистика по группам
пользователей
●
Магазин: показать товар потенциальному
покупателю
●
Контент провайдер: динамический контент
сайта
Поведенческий, гео, временной, по профилям и
т.д.
Поведенческий таргетинг
Данные о пользователе
Посещаемые ресурсы и страницы
История переходов
Поисковые запросы
Место нахождения
Время и продолжительность активности
Используемые браузер, ОС, устройство
Актуальность данных: если пользователь покупал
месяц назад книги о еде - не значит, что он хочет их
купить сейчас
Real Time Bidding (RTB)
RTB: персонализация
SSP (Sell Side Platform): предоставляет данные о
пользователе (идентификатор)
DSP (Demand Side Platform): сравнивает
информацию о пользователе с параметрами
рекламной кампании
DMP (Data Management Platform): аккумулирует в
себе знания о пользователях
С кликами пользователей можно передавать их
профиль на последние Т минут (и они не получат
рекламу книг, которые покупал месяц назад)
Серверные логи
Локальны (не везде можно собрать)
Ограничены (не дают полной картины)
Полный профиль можно собрать на последней
миле
Агрегация и обработка логов на всех серверах всех
датацентров очень ресурсоемка
DPI может извлечь любую информацию из всего
трафика пользователей, обработать и передать в
режиме реального времени
Interstitial Web-page
Показываются до или после запрашиваемой
страницы
Ошибки HTTP, DNS, авторизации и т.д.
Вместо Internal Server Error может быть показана
красивая реклама
Приватность
Данные анонимизируются (везде обезличенные ID)
Big Data (grep не работает)
С точки зрения пользователя аналогично обычной
контекстной рекламе (рекламная сеть, почта
Gmail и пр.)
Технологии
Libpcap — очень медленная из-за копирований
(sk_buff в shared buffer для mmap-mapped)
PF_RING, Netmap, DPDK — забирают пакеты
напрямую с адаптера (сборка IP и TCP,
маршрутизация и пр. - все руками)
●
mTCP - User-level TCP Stack
Kernel module — позволяет использовать API ядра,
работает в нулевом кольце защиты (правильные
spinlock'и)
●
нужно патчить ядро для исключения «лишнего»
Режимы работы
Inline = Linux маршрутизатор: QoS, фильтрация и
пр. - произвольная модификация трафика
Sniffer (SPAN port): статистика, clickstream, TCP
Hijacking (active sniffer)
Inline
Active Sniffer: TCP hijacking
Sniffer из TCP сервера
Дело техники:
Запросы клиента отправляются как есть
Ответы оригинального сервера игнорируются
ACK клиента подделывается под seqno сервера
Обрабатываются сессии только, для которых был
TCP handshake
Весь исходящий трафик сервера удаляется
Принудительное удаление «подвисших»
(потерянных) соединений
Promiscuous интерфейс должен быть
маршрутизируемым....
...более сложной техники
VLAN тэги:
●
нет общего правила для перезаписи (ebtables)
●
Netfilter PREROUTE зовется после VLAN тэга
●
=> нужно регистрировать свой протокольный
обработчи, переписывать sk_buff
●
модифицировать можно только неразделяемые
sk_buff, а у нас 2 протокола...
Управление TCP (нужно вбрасывать пакеты в
стек):
●
tcp_v{4,6}_rcv() зовутся из softirq, а нам нужно
«вбрасывать» пакеты при отправке => deadlock...
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)
Спасибо!
ak@natsys-lab.com
http://natsys-lab.com/cgi-bin/show.pl?entry=dpi

Mais conteúdo relacionado

Semelhante a Александр Крижановский (NatSys Lab)

Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Igor Miniailo
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрsportgid
 
CleverDATA_Oracle Cloud BI Day 2015
CleverDATA_Oracle Cloud BI Day 2015CleverDATA_Oracle Cloud BI Day 2015
CleverDATA_Oracle Cloud BI Day 2015CleverDATA
 
Brainkeeper. vizualizacia trafika i analiz riskov
Brainkeeper. vizualizacia trafika i analiz riskovBrainkeeper. vizualizacia trafika i analiz riskov
Brainkeeper. vizualizacia trafika i analiz riskovOlya Borschova
 
Линейка продуктов TREC
Линейка продуктов TRECЛинейка продуктов TREC
Линейка продуктов TRECPeter-Service
 
Сервер Flash-вещаний (RTMP) на Python или создание высоконагруженных сетевых ...
Сервер Flash-вещаний (RTMP) на Python или создание высоконагруженных сетевых ...Сервер Flash-вещаний (RTMP) на Python или создание высоконагруженных сетевых ...
Сервер Flash-вещаний (RTMP) на Python или создание высоконагруженных сетевых ...Media Gorod
 
RTB для издателей Sell-Side Platform (SSP)
RTB для издателей Sell-Side Platform (SSP)RTB для издателей Sell-Side Platform (SSP)
RTB для издателей Sell-Side Platform (SSP)ADFOX
 
Treatface Solutions for Information Security
Treatface Solutions for Information SecurityTreatface Solutions for Information Security
Treatface Solutions for Information SecurityArthur Voslaev
 
Gnevshev мониторинг
Gnevshev   мониторингGnevshev   мониторинг
Gnevshev мониторингkuchinskaya
 
Автоматизация таргетированной рекламы(Никита Пасынков)
Автоматизация таргетированной рекламы(Никита Пасынков)Автоматизация таргетированной рекламы(Никита Пасынков)
Автоматизация таргетированной рекламы(Никита Пасынков)Валя Акула
 
PUG #9 at OWOX: Поиск узких мест в приложении на PHP
PUG #9 at OWOX: Поиск узких мест в приложении на PHP                PUG #9 at OWOX: Поиск узких мест в приложении на PHP
PUG #9 at OWOX: Поиск узких мест в приложении на PHP Анна Магас
 
Потоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеПотоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеVoximplant
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusCisco Russia
 
Клуб Юных Программатиков. Лекция 1. Артём Цыплаков.
Клуб Юных Программатиков. Лекция 1. Артём Цыплаков.Клуб Юных Программатиков. Лекция 1. Артём Цыплаков.
Клуб Юных Программатиков. Лекция 1. Артём Цыплаков.YoungProgrammatic
 
Визуализация взломов в собственной сети
Визуализация взломов в собственной сетиВизуализация взломов в собственной сети
Визуализация взломов в собственной сетиDenis Batrankov, CISSP
 
еще один недостаток современных клиент серверных приложений
еще один недостаток современных клиент серверных приложенийеще один недостаток современных клиент серверных приложений
еще один недостаток современных клиент серверных приложенийsnowytoxa
 

Semelhante a Александр Крижановский (NatSys Lab) (20)

Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
 
CleverDATA_Oracle Cloud BI Day 2015
CleverDATA_Oracle Cloud BI Day 2015CleverDATA_Oracle Cloud BI Day 2015
CleverDATA_Oracle Cloud BI Day 2015
 
Brainkeeper. vizualizacia trafika i analiz riskov
Brainkeeper. vizualizacia trafika i analiz riskovBrainkeeper. vizualizacia trafika i analiz riskov
Brainkeeper. vizualizacia trafika i analiz riskov
 
Линейка продуктов TREC
Линейка продуктов TRECЛинейка продуктов TREC
Линейка продуктов TREC
 
Rtb
RtbRtb
Rtb
 
Сервер Flash-вещаний (RTMP) на Python или создание высоконагруженных сетевых ...
Сервер Flash-вещаний (RTMP) на Python или создание высоконагруженных сетевых ...Сервер Flash-вещаний (RTMP) на Python или создание высоконагруженных сетевых ...
Сервер Flash-вещаний (RTMP) на Python или создание высоконагруженных сетевых ...
 
RTB для издателей Sell-Side Platform (SSP)
RTB для издателей Sell-Side Platform (SSP)RTB для издателей Sell-Side Platform (SSP)
RTB для издателей Sell-Side Platform (SSP)
 
Treatface Solutions for Information Security
Treatface Solutions for Information SecurityTreatface Solutions for Information Security
Treatface Solutions for Information Security
 
pyFMS
pyFMSpyFMS
pyFMS
 
pyFMS
pyFMSpyFMS
pyFMS
 
Gnevshev мониторинг
Gnevshev   мониторингGnevshev   мониторинг
Gnevshev мониторинг
 
Автоматизация таргетированной рекламы(Никита Пасынков)
Автоматизация таргетированной рекламы(Никита Пасынков)Автоматизация таргетированной рекламы(Никита Пасынков)
Автоматизация таргетированной рекламы(Никита Пасынков)
 
PUG #9 at OWOX: Поиск узких мест в приложении на PHP
PUG #9 at OWOX: Поиск узких мест в приложении на PHP                PUG #9 at OWOX: Поиск узких мест в приложении на PHP
PUG #9 at OWOX: Поиск узких мест в приложении на PHP
 
Потоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеПотоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной карте
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
 
Клуб Юных Программатиков. Лекция 1. Артём Цыплаков.
Клуб Юных Программатиков. Лекция 1. Артём Цыплаков.Клуб Юных Программатиков. Лекция 1. Артём Цыплаков.
Клуб Юных Программатиков. Лекция 1. Артём Цыплаков.
 
Визуализация взломов в собственной сети
Визуализация взломов в собственной сетиВизуализация взломов в собственной сети
Визуализация взломов в собственной сети
 
еще один недостаток современных клиент серверных приложений
еще один недостаток современных клиент серверных приложенийеще один недостаток современных клиент серверных приложений
еще один недостаток современных клиент серверных приложений
 
Real time bidding
Real time biddingReal time bidding
Real time bidding
 

Mais de Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

Mais de Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Александр Крижановский (NatSys Lab)

  • 1. Deep Packet Inspection (DPI) для online-маркетинга, RTB и рекламы Александр Крижановский
  • 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)
  • 15. Active Sniffer: TCP hijacking
  • 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)