Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Как подготовиться к гигабитной DDoS-атаке
при помощи машинного обучения
Константин Игнатов
Qrator Labs
3.11.2015
@podshumok Qrator
Machine learning for DDoS mitigation
Как вы узнаете, что ваш сайт атакуют?
Как подготовиться к гигабитной DDoS-атаке при помощи машинного обучения / Игнатов Константин (Qrator Labs)
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
План
Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Информационная безопасность
План
Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Информационная безопасность
Обеспечение доступности
Процесс противодействия злоумышленнику
наша цель — 100% доступность
цель злоумышленника — наш даунтайм
Основные принципы:
"мыслить как преступник"
спрашивать (не только) себя: "что здесь может пойти
не так?"
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Информационная безопасность
Обеспечение доступности
Процесс противодействия злоумышленнику
наша цель — 100% доступность
цель злоумышленника — наш даунтайм
Основные принципы:
"мыслить как преступник"
спрашивать (не только) себя: "что здесь может пойти
не так?"
@podshumok Qrator
Machine learning for DDoS mitigation
Если что-то плохое может произойти, оно произойдёт...
по чьей-то злой воле
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Процесс DDoS mitigation
План
Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Процесс DDoS mitigation
Защищаем ограниченные ресурсы
DDoS атака, как правило, направлена на их исчерпывание
Требуется совместная работа многих отделов
сетевые инженеры, архитекторы: канал
разработчики приложения: память, CPU, IOPS
специалисты по ИБ: защищаемый IP
@podshumok Qrator
Machine learning for DDoS mitigation
source: https://www.flickr.com/photos/marvin_lee/
license: https://creativecommons.org/licenses/by/2.0/
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Объяснимость и устойчивость к манипуляциям
План
Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Объяснимость и устойчивость к манипуляциям
Machine learning для автоматизации
Machine learning — это просто набор алгоритмов
Два этапа работы алгоритмов:
подготовка (настройка, выбор модели, обучение)
предсказание
Три типа алгоритмов:
с обратной связью от среды
теория управления (control systems)
с обратной связью от человека
обучение с учителем (supervised learning)
с обратной связью от данных
обучение без учителя (unsupervised learning)
@podshumok Qrator
Machine learning for DDoS mitigation
Как подготовиться к гигабитной DDoS-атаке при помощи машинного обучения / Игнатов Константин (Qrator Labs)
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Объяснимость и устойчивость к манипуляциям
Требования к алгоритмам
Алгоритмы дают оценку, например, матожидания E [ω|X]
ω — случайная величина (что мы хотим «предсказать»)
X — известные данные
Мы хотим:
На первом этапе работы: игнорировать аномалии при
обучении (в обратной связи)
На втором: иметь возможность понять, почему было принято
именно такое решение
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Что захочет сделать злоумышленник
План
Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Что захочет сделать злоумышленник
Кто учит машину?
Данные для
обучения = поведение
пользователей
То есть частично
контролируемы
злоумышленником
И тут у злоумышленника появляется одна идея...
научить наш алгоритм «вместо нас»
Это плохо. И может случиться. Что делать?
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Что захочет сделать злоумышленник
Кто учит машину?
Данные для
обучения = поведение
пользователей
То есть частично
контролируемы
злоумышленником
И тут у злоумышленника появляется одна идея...
научить наш алгоритм «вместо нас»
Это плохо. И может случиться. Что делать?
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Что захочет сделать злоумышленник
Кто учит машину?
Данные для
обучения = поведение
пользователей
То есть частично
контролируемы
злоумышленником
И тут у злоумышленника появляется одна идея...
научить наш алгоритм «вместо нас»
Это плохо. И может случиться. Что делать?
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Что захочет сделать злоумышленник
Кто учит машину?
Данные для
обучения = поведение
пользователей
То есть частично
контролируемы
злоумышленником
И тут у злоумышленника появляется одна идея...
научить наш алгоритм «вместо нас»
Это плохо. И может случиться. Что делать?
@podshumok Qrator
Machine learning for DDoS mitigation
1.5
2.0
2.5
3.0
3.5
4.0
lg1p(PSend)
Oct 23 2015
Oct 24 2015
Oct 25 2015
Oct 26 2015
Oct 27 2015
Oct 28 2015
Oct 29 2015
time
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Что захочет сделать злоумышленник
Робастная оценка
Робастность — мера того, насколько просто повлиять на
предсказываемую оценку
Breaking point — количество образцов в обучающей выборке,
достаточное для того, чтобы исказить оценку
Чем выше Breaking Point, тем сложнее злоумышленнику
повлиять на работу алгоритма ML
Что означает «сложнее»?
@podshumok Qrator
Machine learning for DDoS mitigation
Деталь, которая не ломается, отличается от детали,
которая ломается, тем, что, если деталь, которая не
ломается, сломается, то её нельзя будет починить.
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Что захочет сделать злоумышленник
Объяснимость
Помогает «приглядывать» за автоматизированным
процессом.
Как иначе понять, что что-то пошло не так?
Помогает при тестировании и отладке.
Помогает при расследовании инцидентов.
@podshumok Qrator
Machine learning for DDoS mitigation
Вопрос...
Откуда взять данные для обучения?
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Откуда брать данные для обучения?
План
Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Откуда брать данные для обучения?
Что хранить
Необходимо (и легко)
Данные о состояния
сервера
(«телеметрию»):
статистика
соединений
объём трафика
свободная память
загрузка ЦПУ
прочие замеры
исчерпываемых
ресурсов
Полезно (но тяжело)
Логи
желательно,
подробные
в основном, access.log
в более-менее
удобном для машины
формате
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Откуда брать данные для обучения?
Что хранить
Необходимо (и легко)
Данные о состояния
сервера
(«телеметрию»):
статистика
соединений
объём трафика
свободная память
загрузка ЦПУ
прочие замеры
исчерпываемых
ресурсов
Полезно (но тяжело)
Логи
желательно,
подробные
в основном, access.log
в более-менее
удобном для машины
формате
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Откуда брать данные для обучения?
Логи
Нужен хотя бы небольшой образец логов «чистого
поведения»
Нужно иметь возможность сохранить хотя бы часть логов
за время атаки
Что здесь может пойти не так?
Можно хранить только подмножество логов
Важно: правильно организовать выборку
например, можно хранить только запросы с
MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Откуда брать данные для обучения?
Логи
Нужен хотя бы небольшой образец логов «чистого
поведения»
Нужно иметь возможность сохранить хотя бы часть логов
за время атаки
Что здесь может пойти не так?
Можно хранить только подмножество логов
Важно: правильно организовать выборку
например, можно хранить только запросы с
MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Откуда брать данные для обучения?
Логи
Нужен хотя бы небольшой образец логов «чистого
поведения»
Нужно иметь возможность сохранить хотя бы часть логов
за время атаки
Что здесь может пойти не так?
Можно хранить только подмножество логов
Важно: правильно организовать выборку
например, можно хранить только запросы с
MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Откуда брать данные для обучения?
Логи
Нужен хотя бы небольшой образец логов «чистого
поведения»
Нужно иметь возможность сохранить хотя бы часть логов
за время атаки
Что здесь может пойти не так?
Можно хранить только подмножество логов
Важно: правильно организовать выборку
например, можно хранить только запросы с
MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Чему учиться, что искать?
План
Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Чему учиться, что искать?
Что даёт сбор данных?
«Телеметрия»
Фиксируем, когда
серверу «плохо»
Прогнозируем
проблемы
Логи
Чем отличается
зловредное поведение,
от
«доброкачественного»?
Какая группа
пользователей вызывает
основную нагрузку?
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Чему учиться, что искать?
Что даёт сбор данных?
«Телеметрия»
Фиксируем, когда
серверу «плохо»
Прогнозируем
проблемы
Логи
Чем отличается
зловредное поведение,
от
«доброкачественного»?
Какая группа
пользователей вызывает
основную нагрузку?
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Предсказание нагрузки
План
Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Предсказание нагрузки
Цепочки задач
1. Какая ожидается нагрузка?
1.1 А какая бывает?
1.2 На что похоже то, что наблюдаем сейчас?
2. Нужно ли что-то делать?
2.1 Какое количество запросов приводит к сбоям сервера?
2.2 Сколько нужно «зарезать» запросов, чтобы стало легче
жить?
2.3 Нужно ли заблокировать часть легитимных запросов?
3. Какие запросы более важны?
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Предсказание нагрузки
Исходные данные
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Предсказание нагрузки
Общие замечания
Использование абсолютных отклонений (L1)
Робастная нормализация
Нелинейные обратимые преобразования (sigmoid)
"Тяжёлые хвосты", когда нужно предположение о
распределении
Сэмплирование уменьшает вероятность попадания
Как правило, можно принять:
В алгоритмах, основанных на деревьях,
breaking point<минимальный размер листка
При кластеризации breaking point<минимальный размер
кластера
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Предсказание нагрузки
Подготовка
@podshumok Qrator
Machine learning for DDoS mitigation
Как подготовиться к гигабитной DDoS-атаке при помощи машинного обучения / Игнатов Константин (Qrator Labs)
Как подготовиться к гигабитной DDoS-атаке при помощи машинного обучения / Игнатов Константин (Qrator Labs)
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Предсказание нагрузки
Кластеризация
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Предсказание нагрузки
Классификация + регрессия
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Поиск групп запросов
План
Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Поиск групп запросов
Примеры признаков запросов/сессий
Пользуется ли посетитель последней версией браузера?
Читает ли на там же языке, который используется в его
системной локали?
Загружает ли статику? Сколько раз запросил
favicon.ico?
Заходил ли на страницу /buy?
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Поиск групп запросов
Pattern discovery
Как выделить признаки запросов/сессий
Дано: всплеск на 50k запросов.
Преобразуем запрос в набор элементарных признаков
@podshumok Qrator
Machine learning for DDoS mitigation
in_agent:Mozilla/,in_ref:http:/,in_agent: AppleWebKit/,in_agent: like
,in_ref:/www.example.com/,num_agents:1,method:GET,in_agent:Gecko),in_agent:Safari/,in_agent: Chrome/,in_agent:NT
,in_agent:5.0 ,in_agent:537.36 ,in_agent:(KHTML,,code:200
55118
in_agent:Mozilla/,in_ref:http:/,in_agent: AppleWebKit/,in_agent: like ,in_agent:(Windows
,method:GET,in_agent:Gecko),in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0 ,in_agent:537.36 ,in_agent:
(KHTML,,in_agent:WOW64),in_agent:537.36
54964
in_agent:Mozilla/,in_agent: AppleWebKit/,in_agent: like ,in_agent:(Windows
,num_agents:1,in_agent:Gecko),seen_ref:False,in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0 ,in_agent:537.36
,in_agent:(KHTML,,code:200,in_agent:537.36
54841
in_agent:Mozilla/,in_agent: AppleWebKit/,in_agent: like ,in_agent:(Windows ,in_agent:39.0.2171.99
,method:GET,in_agent:Gecko),in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0 ,in_agent:537.36 ,in_agent:
(KHTML,,code:200,in_agent:537.36
54188
in_agent:Mozilla/,in_ref:http:/,in_agent: AppleWebKit/,in_agent: like ,in_agent:(Windows ,in_agent:39.0.2171.99
,in_agent:Gecko),in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0 ,in_agent:537.36 ,in_agent:
(KHTML,,code:200,in_agent:537.36
53990
in_agent:Mozilla/,in_ref:http:/,in_agent: AppleWebKit/,in_agent: like
,in_ref:/www.example.com/,num_agents:1,method:GET,in_agent:Gecko),in_agent:Safari/,in_agent: Chrome/,in_agent:5.0
,in_agent:537.36 ,in_agent:(KHTML,,code:200,in_agent:537.36
53949
in_agent:Mozilla/,in_agent:6.1; ,in_agent: AppleWebKit/,in_agent: like ,in_agent:(Windows
,num_agents:1,in_agent:Gecko),in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0 ,in_agent:537.36 ,in_agent:
(KHTML,,code:200,in_agent:WOW64)
53896
in_agent:Mozilla/,in_ref:http:/,in_agent: AppleWebKit/,in_agent: like ,in_agent:(Windows
,method:GET,in_agent:Gecko),seen_ref:True,in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0 ,in_agent:537.36
,in_agent:(KHTML,,in_agent:537.36
53771
in_agent:Mozilla/,in_ref:http:/,in_agent: AppleWebKit/,in_agent: like ,in_agent:(Windows
,in_ref:/www.example.com/,in_agent:Gecko),seen_ref:True,in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0
,in_agent:537.36 ,in_agent:(KHTML,,code:200
53297
in_agent:Mozilla/,in_agent: AppleWebKit/,in_agent: like ,in_agent:(Windows
,method:GET,in_agent:Gecko),seen_ref:True,in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0 ,in_agent:537.36
,in_agent:(KHTML,,code:200,in_agent:537.36
53193
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Поиск групп запросов
Pattern discovery
Наиболее популярные:
подмножества (элементарных признаков)
подпоследовательности (запросов)
подграфы (переходов)
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Итого: готовиться нужно заранее
Защита как процесс
Нужно время на поиск и/или подготовку специалистов
Нужно время на сбор данных
Нужно время на ручной анализ, выбор и настройку
алгоритмов
Нужно время на обучение алгоритмов
К размышлению:
Документирование процесса защиты.
Связь с бизнес-аналитикой.
Стандартизация собираемой информации.
@podshumok Qrator
Machine learning for DDoS mitigation
Спасибо
Константин Игнатов
@podshumok
kv@qrator.net
Запасные слайды
Защита, прозрачная для пользователей
Почему нельзя просто...
Full browser stack
Completely Automated Public Turing test to tell Computers
and Humans Apart
простые — взломаны
сложные — вызывают боль у пользователей
automated humans
@podshumok Qrator
Machine learning for DDoS mitigation
Запасные слайды
Схема защиты
Availability network
Подключение по DNS
клиент получает IP, пользователи используют его,
reverse-proxy перенаправляет чистые запросы на старый
адрес
самый простой и быстрый, но конфиденциальность
защищаемого IP нужно беречь как зеницу ока
Выделенный VPN канал
BGP анонс
@podshumok Qrator
Machine learning for DDoS mitigation
Запасные слайды
Робастность
Define: робастный
Медиана
MAD (медиана абсолютного отклонения от медианы)
Квантиль
QR (размах квантилей)
Распределение Стьюдента
@podshumok Qrator
Machine learning for DDoS mitigation
Запасные слайды
Робастность
@podshumok Qrator
Machine learning for DDoS mitigation

More Related Content

Как подготовиться к гигабитной DDoS-атаке при помощи машинного обучения / Игнатов Константин (Qrator Labs)

  • 1. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Как подготовиться к гигабитной DDoS-атаке при помощи машинного обучения Константин Игнатов Qrator Labs 3.11.2015 @podshumok Qrator Machine learning for DDoS mitigation
  • 2. Как вы узнаете, что ваш сайт атакуют?
  • 4. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное План Процессы информационной безопасности Информационная безопасность Процесс DDoS mitigation Machine learning Объяснимость и устойчивость к манипуляциям Что захочет сделать злоумышленник Сбор данных Откуда брать данные для обучения? Чему учиться, что искать? Примеры задач Предсказание нагрузки Поиск групп запросов @podshumok Qrator Machine learning for DDoS mitigation
  • 5. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Информационная безопасность План Процессы информационной безопасности Информационная безопасность Процесс DDoS mitigation Machine learning Объяснимость и устойчивость к манипуляциям Что захочет сделать злоумышленник Сбор данных Откуда брать данные для обучения? Чему учиться, что искать? Примеры задач Предсказание нагрузки Поиск групп запросов @podshumok Qrator Machine learning for DDoS mitigation
  • 6. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Информационная безопасность Обеспечение доступности Процесс противодействия злоумышленнику наша цель — 100% доступность цель злоумышленника — наш даунтайм Основные принципы: "мыслить как преступник" спрашивать (не только) себя: "что здесь может пойти не так?" @podshumok Qrator Machine learning for DDoS mitigation
  • 7. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Информационная безопасность Обеспечение доступности Процесс противодействия злоумышленнику наша цель — 100% доступность цель злоумышленника — наш даунтайм Основные принципы: "мыслить как преступник" спрашивать (не только) себя: "что здесь может пойти не так?" @podshumok Qrator Machine learning for DDoS mitigation
  • 8. Если что-то плохое может произойти, оно произойдёт... по чьей-то злой воле
  • 9. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Процесс DDoS mitigation План Процессы информационной безопасности Информационная безопасность Процесс DDoS mitigation Machine learning Объяснимость и устойчивость к манипуляциям Что захочет сделать злоумышленник Сбор данных Откуда брать данные для обучения? Чему учиться, что искать? Примеры задач Предсказание нагрузки Поиск групп запросов @podshumok Qrator Machine learning for DDoS mitigation
  • 10. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Процесс DDoS mitigation Защищаем ограниченные ресурсы DDoS атака, как правило, направлена на их исчерпывание Требуется совместная работа многих отделов сетевые инженеры, архитекторы: канал разработчики приложения: память, CPU, IOPS специалисты по ИБ: защищаемый IP @podshumok Qrator Machine learning for DDoS mitigation
  • 12. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Объяснимость и устойчивость к манипуляциям План Процессы информационной безопасности Информационная безопасность Процесс DDoS mitigation Machine learning Объяснимость и устойчивость к манипуляциям Что захочет сделать злоумышленник Сбор данных Откуда брать данные для обучения? Чему учиться, что искать? Примеры задач Предсказание нагрузки Поиск групп запросов @podshumok Qrator Machine learning for DDoS mitigation
  • 13. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Объяснимость и устойчивость к манипуляциям Machine learning для автоматизации Machine learning — это просто набор алгоритмов Два этапа работы алгоритмов: подготовка (настройка, выбор модели, обучение) предсказание Три типа алгоритмов: с обратной связью от среды теория управления (control systems) с обратной связью от человека обучение с учителем (supervised learning) с обратной связью от данных обучение без учителя (unsupervised learning) @podshumok Qrator Machine learning for DDoS mitigation
  • 15. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Объяснимость и устойчивость к манипуляциям Требования к алгоритмам Алгоритмы дают оценку, например, матожидания E [ω|X] ω — случайная величина (что мы хотим «предсказать») X — известные данные Мы хотим: На первом этапе работы: игнорировать аномалии при обучении (в обратной связи) На втором: иметь возможность понять, почему было принято именно такое решение @podshumok Qrator Machine learning for DDoS mitigation
  • 16. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Что захочет сделать злоумышленник План Процессы информационной безопасности Информационная безопасность Процесс DDoS mitigation Machine learning Объяснимость и устойчивость к манипуляциям Что захочет сделать злоумышленник Сбор данных Откуда брать данные для обучения? Чему учиться, что искать? Примеры задач Предсказание нагрузки Поиск групп запросов @podshumok Qrator Machine learning for DDoS mitigation
  • 17. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Что захочет сделать злоумышленник Кто учит машину? Данные для обучения = поведение пользователей То есть частично контролируемы злоумышленником И тут у злоумышленника появляется одна идея... научить наш алгоритм «вместо нас» Это плохо. И может случиться. Что делать? @podshumok Qrator Machine learning for DDoS mitigation
  • 18. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Что захочет сделать злоумышленник Кто учит машину? Данные для обучения = поведение пользователей То есть частично контролируемы злоумышленником И тут у злоумышленника появляется одна идея... научить наш алгоритм «вместо нас» Это плохо. И может случиться. Что делать? @podshumok Qrator Machine learning for DDoS mitigation
  • 19. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Что захочет сделать злоумышленник Кто учит машину? Данные для обучения = поведение пользователей То есть частично контролируемы злоумышленником И тут у злоумышленника появляется одна идея... научить наш алгоритм «вместо нас» Это плохо. И может случиться. Что делать? @podshumok Qrator Machine learning for DDoS mitigation
  • 20. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Что захочет сделать злоумышленник Кто учит машину? Данные для обучения = поведение пользователей То есть частично контролируемы злоумышленником И тут у злоумышленника появляется одна идея... научить наш алгоритм «вместо нас» Это плохо. И может случиться. Что делать? @podshumok Qrator Machine learning for DDoS mitigation
  • 21. 1.5 2.0 2.5 3.0 3.5 4.0 lg1p(PSend) Oct 23 2015 Oct 24 2015 Oct 25 2015 Oct 26 2015 Oct 27 2015 Oct 28 2015 Oct 29 2015 time
  • 22. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Что захочет сделать злоумышленник Робастная оценка Робастность — мера того, насколько просто повлиять на предсказываемую оценку Breaking point — количество образцов в обучающей выборке, достаточное для того, чтобы исказить оценку Чем выше Breaking Point, тем сложнее злоумышленнику повлиять на работу алгоритма ML Что означает «сложнее»? @podshumok Qrator Machine learning for DDoS mitigation
  • 23. Деталь, которая не ломается, отличается от детали, которая ломается, тем, что, если деталь, которая не ломается, сломается, то её нельзя будет починить.
  • 24. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Что захочет сделать злоумышленник Объяснимость Помогает «приглядывать» за автоматизированным процессом. Как иначе понять, что что-то пошло не так? Помогает при тестировании и отладке. Помогает при расследовании инцидентов. @podshumok Qrator Machine learning for DDoS mitigation
  • 26. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Откуда брать данные для обучения? План Процессы информационной безопасности Информационная безопасность Процесс DDoS mitigation Machine learning Объяснимость и устойчивость к манипуляциям Что захочет сделать злоумышленник Сбор данных Откуда брать данные для обучения? Чему учиться, что искать? Примеры задач Предсказание нагрузки Поиск групп запросов @podshumok Qrator Machine learning for DDoS mitigation
  • 27. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Откуда брать данные для обучения? Что хранить Необходимо (и легко) Данные о состояния сервера («телеметрию»): статистика соединений объём трафика свободная память загрузка ЦПУ прочие замеры исчерпываемых ресурсов Полезно (но тяжело) Логи желательно, подробные в основном, access.log в более-менее удобном для машины формате @podshumok Qrator Machine learning for DDoS mitigation
  • 28. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Откуда брать данные для обучения? Что хранить Необходимо (и легко) Данные о состояния сервера («телеметрию»): статистика соединений объём трафика свободная память загрузка ЦПУ прочие замеры исчерпываемых ресурсов Полезно (но тяжело) Логи желательно, подробные в основном, access.log в более-менее удобном для машины формате @podshumok Qrator Machine learning for DDoS mitigation
  • 29. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Откуда брать данные для обучения? Логи Нужен хотя бы небольшой образец логов «чистого поведения» Нужно иметь возможность сохранить хотя бы часть логов за время атаки Что здесь может пойти не так? Можно хранить только подмножество логов Важно: правильно организовать выборку например, можно хранить только запросы с MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023 @podshumok Qrator Machine learning for DDoS mitigation
  • 30. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Откуда брать данные для обучения? Логи Нужен хотя бы небольшой образец логов «чистого поведения» Нужно иметь возможность сохранить хотя бы часть логов за время атаки Что здесь может пойти не так? Можно хранить только подмножество логов Важно: правильно организовать выборку например, можно хранить только запросы с MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023 @podshumok Qrator Machine learning for DDoS mitigation
  • 31. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Откуда брать данные для обучения? Логи Нужен хотя бы небольшой образец логов «чистого поведения» Нужно иметь возможность сохранить хотя бы часть логов за время атаки Что здесь может пойти не так? Можно хранить только подмножество логов Важно: правильно организовать выборку например, можно хранить только запросы с MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023 @podshumok Qrator Machine learning for DDoS mitigation
  • 32. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Откуда брать данные для обучения? Логи Нужен хотя бы небольшой образец логов «чистого поведения» Нужно иметь возможность сохранить хотя бы часть логов за время атаки Что здесь может пойти не так? Можно хранить только подмножество логов Важно: правильно организовать выборку например, можно хранить только запросы с MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023 @podshumok Qrator Machine learning for DDoS mitigation
  • 33. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Чему учиться, что искать? План Процессы информационной безопасности Информационная безопасность Процесс DDoS mitigation Machine learning Объяснимость и устойчивость к манипуляциям Что захочет сделать злоумышленник Сбор данных Откуда брать данные для обучения? Чему учиться, что искать? Примеры задач Предсказание нагрузки Поиск групп запросов @podshumok Qrator Machine learning for DDoS mitigation
  • 34. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Чему учиться, что искать? Что даёт сбор данных? «Телеметрия» Фиксируем, когда серверу «плохо» Прогнозируем проблемы Логи Чем отличается зловредное поведение, от «доброкачественного»? Какая группа пользователей вызывает основную нагрузку? @podshumok Qrator Machine learning for DDoS mitigation
  • 35. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Чему учиться, что искать? Что даёт сбор данных? «Телеметрия» Фиксируем, когда серверу «плохо» Прогнозируем проблемы Логи Чем отличается зловредное поведение, от «доброкачественного»? Какая группа пользователей вызывает основную нагрузку? @podshumok Qrator Machine learning for DDoS mitigation
  • 36. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Предсказание нагрузки План Процессы информационной безопасности Информационная безопасность Процесс DDoS mitigation Machine learning Объяснимость и устойчивость к манипуляциям Что захочет сделать злоумышленник Сбор данных Откуда брать данные для обучения? Чему учиться, что искать? Примеры задач Предсказание нагрузки Поиск групп запросов @podshumok Qrator Machine learning for DDoS mitigation
  • 37. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Предсказание нагрузки Цепочки задач 1. Какая ожидается нагрузка? 1.1 А какая бывает? 1.2 На что похоже то, что наблюдаем сейчас? 2. Нужно ли что-то делать? 2.1 Какое количество запросов приводит к сбоям сервера? 2.2 Сколько нужно «зарезать» запросов, чтобы стало легче жить? 2.3 Нужно ли заблокировать часть легитимных запросов? 3. Какие запросы более важны? @podshumok Qrator Machine learning for DDoS mitigation
  • 38. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Предсказание нагрузки Исходные данные @podshumok Qrator Machine learning for DDoS mitigation
  • 39. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Предсказание нагрузки Общие замечания Использование абсолютных отклонений (L1) Робастная нормализация Нелинейные обратимые преобразования (sigmoid) "Тяжёлые хвосты", когда нужно предположение о распределении Сэмплирование уменьшает вероятность попадания Как правило, можно принять: В алгоритмах, основанных на деревьях, breaking point<минимальный размер листка При кластеризации breaking point<минимальный размер кластера @podshumok Qrator Machine learning for DDoS mitigation
  • 40. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Предсказание нагрузки Подготовка @podshumok Qrator Machine learning for DDoS mitigation
  • 43. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Предсказание нагрузки Кластеризация @podshumok Qrator Machine learning for DDoS mitigation
  • 44. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Предсказание нагрузки Классификация + регрессия @podshumok Qrator Machine learning for DDoS mitigation
  • 45. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Поиск групп запросов План Процессы информационной безопасности Информационная безопасность Процесс DDoS mitigation Machine learning Объяснимость и устойчивость к манипуляциям Что захочет сделать злоумышленник Сбор данных Откуда брать данные для обучения? Чему учиться, что искать? Примеры задач Предсказание нагрузки Поиск групп запросов @podshumok Qrator Machine learning for DDoS mitigation
  • 46. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Поиск групп запросов Примеры признаков запросов/сессий Пользуется ли посетитель последней версией браузера? Читает ли на там же языке, который используется в его системной локали? Загружает ли статику? Сколько раз запросил favicon.ico? Заходил ли на страницу /buy? @podshumok Qrator Machine learning for DDoS mitigation
  • 47. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Поиск групп запросов Pattern discovery Как выделить признаки запросов/сессий Дано: всплеск на 50k запросов. Преобразуем запрос в набор элементарных признаков @podshumok Qrator Machine learning for DDoS mitigation
  • 48. in_agent:Mozilla/,in_ref:http:/,in_agent: AppleWebKit/,in_agent: like ,in_ref:/www.example.com/,num_agents:1,method:GET,in_agent:Gecko),in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0 ,in_agent:537.36 ,in_agent:(KHTML,,code:200 55118 in_agent:Mozilla/,in_ref:http:/,in_agent: AppleWebKit/,in_agent: like ,in_agent:(Windows ,method:GET,in_agent:Gecko),in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0 ,in_agent:537.36 ,in_agent: (KHTML,,in_agent:WOW64),in_agent:537.36 54964 in_agent:Mozilla/,in_agent: AppleWebKit/,in_agent: like ,in_agent:(Windows ,num_agents:1,in_agent:Gecko),seen_ref:False,in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0 ,in_agent:537.36 ,in_agent:(KHTML,,code:200,in_agent:537.36 54841 in_agent:Mozilla/,in_agent: AppleWebKit/,in_agent: like ,in_agent:(Windows ,in_agent:39.0.2171.99 ,method:GET,in_agent:Gecko),in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0 ,in_agent:537.36 ,in_agent: (KHTML,,code:200,in_agent:537.36 54188 in_agent:Mozilla/,in_ref:http:/,in_agent: AppleWebKit/,in_agent: like ,in_agent:(Windows ,in_agent:39.0.2171.99 ,in_agent:Gecko),in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0 ,in_agent:537.36 ,in_agent: (KHTML,,code:200,in_agent:537.36 53990 in_agent:Mozilla/,in_ref:http:/,in_agent: AppleWebKit/,in_agent: like ,in_ref:/www.example.com/,num_agents:1,method:GET,in_agent:Gecko),in_agent:Safari/,in_agent: Chrome/,in_agent:5.0 ,in_agent:537.36 ,in_agent:(KHTML,,code:200,in_agent:537.36 53949 in_agent:Mozilla/,in_agent:6.1; ,in_agent: AppleWebKit/,in_agent: like ,in_agent:(Windows ,num_agents:1,in_agent:Gecko),in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0 ,in_agent:537.36 ,in_agent: (KHTML,,code:200,in_agent:WOW64) 53896 in_agent:Mozilla/,in_ref:http:/,in_agent: AppleWebKit/,in_agent: like ,in_agent:(Windows ,method:GET,in_agent:Gecko),seen_ref:True,in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0 ,in_agent:537.36 ,in_agent:(KHTML,,in_agent:537.36 53771 in_agent:Mozilla/,in_ref:http:/,in_agent: AppleWebKit/,in_agent: like ,in_agent:(Windows ,in_ref:/www.example.com/,in_agent:Gecko),seen_ref:True,in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0 ,in_agent:537.36 ,in_agent:(KHTML,,code:200 53297 in_agent:Mozilla/,in_agent: AppleWebKit/,in_agent: like ,in_agent:(Windows ,method:GET,in_agent:Gecko),seen_ref:True,in_agent:Safari/,in_agent: Chrome/,in_agent:NT ,in_agent:5.0 ,in_agent:537.36 ,in_agent:(KHTML,,code:200,in_agent:537.36 53193
  • 49. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Поиск групп запросов Pattern discovery Наиболее популярные: подмножества (элементарных признаков) подпоследовательности (запросов) подграфы (переходов) @podshumok Qrator Machine learning for DDoS mitigation
  • 50. Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное Итого: готовиться нужно заранее Защита как процесс Нужно время на поиск и/или подготовку специалистов Нужно время на сбор данных Нужно время на ручной анализ, выбор и настройку алгоритмов Нужно время на обучение алгоритмов К размышлению: Документирование процесса защиты. Связь с бизнес-аналитикой. Стандартизация собираемой информации. @podshumok Qrator Machine learning for DDoS mitigation
  • 52. Запасные слайды Защита, прозрачная для пользователей Почему нельзя просто... Full browser stack Completely Automated Public Turing test to tell Computers and Humans Apart простые — взломаны сложные — вызывают боль у пользователей automated humans @podshumok Qrator Machine learning for DDoS mitigation
  • 53. Запасные слайды Схема защиты Availability network Подключение по DNS клиент получает IP, пользователи используют его, reverse-proxy перенаправляет чистые запросы на старый адрес самый простой и быстрый, но конфиденциальность защищаемого IP нужно беречь как зеницу ока Выделенный VPN канал BGP анонс @podshumok Qrator Machine learning for DDoS mitigation
  • 54. Запасные слайды Робастность Define: робастный Медиана MAD (медиана абсолютного отклонения от медианы) Квантиль QR (размах квантилей) Распределение Стьюдента @podshumok Qrator Machine learning for DDoS mitigation