В докладе мы взглянем на проблему DDOS, с одной стороны, более широко — как на проблему обеспечения доступности ресурса, с другой стороны более конкретно — как на проблему информационной безопасности.
Поговорим о том, как автоматизировать борьбу с DDOS-атаками при помощи машинного обучения, и чем такая автоматизация может быть опасна.
Наконец, рассмотрим пару примеров и обсудим, с чего начинать строить систему защиты от DDOS.
Тренды 2015 года в области интернет-безопасности в россии и в мире
Особенности использования машинного обучения при защите от DDoS-атак
1. Особенности использования машинного обучения
при защите от DDOS-атак
Константин Игнатов
Qrator Labs
28.01.2016
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 1 / 46
4. План
1 Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
2 Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
3 Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
4 Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 4 / 46
5. План
1 Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
2 Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
3 Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
4 Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 5 / 46
6. Обеспечение доступности
Процесс противодействия злоумышленнику
наша цель — 100% доступность
цель злоумышленника — наш даунтайм
Основные принципы:
"мыслить как преступник"
спрашивать (не только) себя: "что здесь может пойти не так?"
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 6 / 46
7. Обеспечение доступности
Процесс противодействия злоумышленнику
наша цель — 100% доступность
цель злоумышленника — наш даунтайм
Основные принципы:
"мыслить как преступник"
спрашивать (не только) себя: "что здесь может пойти не так?"
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 6 / 46
8. Если что-то плохое может произойти, оно произойдёт...
по чьей-то злой воле
9. План
1 Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
2 Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
3 Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
4 Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 8 / 46
10. Защищаем ограниченные ресурсы
DDoS атака, как правило, направлена на их исчерпывание
Требуется совместная работа многих отделов
сетевые инженеры, архитекторы: канал
разработчики приложения: память, CPU, IOPS
специалисты по ИБ: защищаемый IP
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 9 / 46
12. План
1 Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
2 Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
3 Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
4 Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 11 / 46
13. Machine learning для автоматизации
Machine learning — это просто набор алгоритмов
Два этапа работы алгоритмов:
подготовка (настройка, выбор модели, обучение)
предсказание
Три типа алгоритмов:
с обратной связью от среды
теория управления (control systems)
с обратной связью от человека
обучение с учителем (supervised learning)
с обратной связью от данных
обучение без учителя (unsupervised learning)
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 12 / 46
14.
15. Требования к алгоритмам
Алгоритмы дают оценку, например, матожидания E [ω|X]
ω — случайная величина (что мы хотим «предсказать»)
X — известные данные
Мы хотим:
На первом этапе работы: игнорировать аномалии при обучении (в обратной
связи)
На втором: иметь возможность понять, почему было принято именно такое
решение
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 14 / 46
16. План
1 Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
2 Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
3 Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
4 Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 15 / 46
17. Кто учит машину?
Данные для
обучения = поведение
пользователей
То есть частично
контролируемы
злоумышленником
И тут у злоумышленника появляется одна идея...
научить наш алгоритм «вместо нас»
Это плохо. И может случиться. Что делать?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 16 / 46
18. Кто учит машину?
Данные для
обучения = поведение
пользователей
То есть частично
контролируемы
злоумышленником
И тут у злоумышленника появляется одна идея...
научить наш алгоритм «вместо нас»
Это плохо. И может случиться. Что делать?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 16 / 46
19. Кто учит машину?
Данные для
обучения = поведение
пользователей
То есть частично
контролируемы
злоумышленником
И тут у злоумышленника появляется одна идея...
научить наш алгоритм «вместо нас»
Это плохо. И может случиться. Что делать?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 16 / 46
20. Кто учит машину?
Данные для
обучения = поведение
пользователей
То есть частично
контролируемы
злоумышленником
И тут у злоумышленника появляется одна идея...
научить наш алгоритм «вместо нас»
Это плохо. И может случиться. Что делать?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 16 / 46
22. Робастная оценка
Робастность — мера того, насколько просто повлиять на предсказываемую
оценку
Breaking point — количество образцов в обучающей выборке, достаточное
для того, чтобы исказить оценку
Чем выше Breaking Point, тем сложнее злоумышленнику
повлиять на работу алгоритма ML
Что означает «сложнее»?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 18 / 46
23. Деталь, которая не ломается, отличается от детали, которая
ломается, тем, что, если деталь, которая не ломается, сломается,
то её нельзя будет починить.
24. Объяснимость
Помогает «приглядывать» за автоматизированным процессом.
Как иначе понять, что что-то пошло не так?
Помогает при тестировании и отладке.
Помогает при расследовании инцидентов.
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 20 / 46
26. План
1 Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
2 Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
3 Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
4 Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 22 / 46
27. Что хранить
Необходимо (и легко)
Данные о состояния сервера
(«телеметрию»):
статистика соединений
объём трафика
свободная память
загрузка ЦПУ
прочие замеры
исчерпываемых ресурсов
Полезно (но тяжело)
Логи
желательно,
подробные
в основном, access.log
в более-менее
удобном для машины
формате
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 23 / 46
28. Что хранить
Необходимо (и легко)
Данные о состояния сервера
(«телеметрию»):
статистика соединений
объём трафика
свободная память
загрузка ЦПУ
прочие замеры
исчерпываемых ресурсов
Полезно (но тяжело)
Логи
желательно,
подробные
в основном, access.log
в более-менее
удобном для машины
формате
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 23 / 46
29. Логи
Нужен хотя бы небольшой образец логов «чистого поведения»
Нужно иметь возможность сохранить хотя бы часть логов за время
атаки
Что здесь может пойти не так?
Можно хранить только подмножество логов
Важно: правильно организовать выборку
например, можно хранить только запросы с
MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 24 / 46
30. Логи
Нужен хотя бы небольшой образец логов «чистого поведения»
Нужно иметь возможность сохранить хотя бы часть логов за время
атаки
Что здесь может пойти не так?
Можно хранить только подмножество логов
Важно: правильно организовать выборку
например, можно хранить только запросы с
MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 24 / 46
31. Логи
Нужен хотя бы небольшой образец логов «чистого поведения»
Нужно иметь возможность сохранить хотя бы часть логов за время
атаки
Что здесь может пойти не так?
Можно хранить только подмножество логов
Важно: правильно организовать выборку
например, можно хранить только запросы с
MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 24 / 46
32. Логи
Нужен хотя бы небольшой образец логов «чистого поведения»
Нужно иметь возможность сохранить хотя бы часть логов за время
атаки
Что здесь может пойти не так?
Можно хранить только подмножество логов
Важно: правильно организовать выборку
например, можно хранить только запросы с
MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 24 / 46
33. План
1 Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
2 Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
3 Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
4 Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 25 / 46
34. Что даёт сбор данных?
«Телеметрия»
Фиксируем, когда
серверу «плохо»
Прогнозируем
проблемы
Логи
Чем отличается зловредное
поведение, от
«доброкачественного»?
Какая группа пользователей
вызывает основную
нагрузку?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 26 / 46
35. Что даёт сбор данных?
«Телеметрия»
Фиксируем, когда
серверу «плохо»
Прогнозируем
проблемы
Логи
Чем отличается зловредное
поведение, от
«доброкачественного»?
Какая группа пользователей
вызывает основную
нагрузку?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 26 / 46
36. План
1 Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
2 Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
3 Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
4 Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 27 / 46
37. Цепочки задач
1 Какая ожидается нагрузка?
1 А какая бывает?
2 На что похоже то, что наблюдаем сейчас?
2 Нужно ли что-то делать?
1 Какое количество запросов приводит к сбоям сервера?
2 Сколько нужно «зарезать» запросов, чтобы стало легче жить?
3 Нужно ли заблокировать часть легитимных запросов?
3 Какие запросы более важны?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 28 / 46
39. Общие замечания
Использование абсолютных отклонений (L1)
Робастная нормализация
Нелинейные обратимые преобразования (sigmoid)
"Тяжёлые хвосты", когда нужно предположение о распределении
Сэмплирование уменьшает вероятность попадания
Как правило, можно принять:
В алгоритмах, основанных на деревьях,
breaking point<минимальный размер листка
При кластеризации breaking point<минимальный размер кластера
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 30 / 46
45. План
1 Процессы информационной безопасности
Информационная безопасность
Процесс DDoS mitigation
2 Machine learning
Объяснимость и устойчивость к манипуляциям
Что захочет сделать злоумышленник
3 Сбор данных
Откуда брать данные для обучения?
Чему учиться, что искать?
4 Примеры задач
Предсказание нагрузки
Поиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 36 / 46
46. Примеры признаков запросов/сессий
Пользуется ли посетитель последней версией браузера?
Читает ли на там же языке, который используется в его системной
локали?
Загружает ли статику? Сколько раз запросил favicon.ico?
Заходил ли на страницу /buy?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 37 / 46
47. Pattern discovery
Как выделить признаки запросов/сессий
Дано: всплеск на 50k запросов.
Преобразуем запрос в набор элементарных признаков
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 38 / 46
49. Pattern discovery
Получаем особый тип БД, в которой можно искать:
подмножества (элементарных признаков),
подпоследовательности (запросов),
подграфы (переходов),
удовлетворяющие заданным условиям.
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 40 / 46
50. Итого: готовиться нужно заранее
Защита как процесс
Нужно время на поиск и/или подготовку специалистов
Нужно время на сбор данных
Нужно время на ручной анализ, выбор и настройку алгоритмов
Нужно время на обучение алгоритмов
К размышлению:
Документирование процесса защиты.
Связь с бизнес-аналитикой.
Стандартизация собираемой информации.
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 41 / 46
52. Почему нельзя просто...
Full browser stack
Completely Automated Public Turing test to tell Computers and Humans
Apart
простые — взломаны
сложные — вызывают боль у пользователей
automated humans
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 43 / 46
53. Availability network
Подключение по DNS
клиент получает IP, пользователи используют его, reverse-proxy перенаправляет
чистые запросы на старый адрес
самый простой и быстрый, но конфиденциальность защищаемого IP нужно
беречь как зеницу ока
Выделенный VPN канал
BGP анонс
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 44 / 46
54. Define: робастный
Медиана
MAD (медиана абсолютного отклонения от медианы)
Квантиль
QR (размах квантилей)
Распределение Стьюдента
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 45 / 46