Upload
ontico
View
559
Download
0
Embed Size (px)
Citation preview
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Как подготовиться к гигабитной DDoS-атакепри помощи машинного обучения
Константин Игнатов
Qrator Labs
3.11.2015
@podshumok Qrator
Machine learning for DDoS mitigation
Как вы узнаете, что ваш сайт атакуют?
Процессы ИБ 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 Сбор данных Примеры задач Самое важное
Информационная безопасность
Обеспечение доступности
I Процесс противодействия злоумышленникуI наша цель — 100% доступностьI цель злоумышленника — наш даунтайм
I Основные принципы:I "мыслить как преступник"I спрашивать (не только) себя: "что здесь может пойти
не так?"
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Информационная безопасность
Обеспечение доступности
I Процесс противодействия злоумышленникуI наша цель — 100% доступностьI цель злоумышленника — наш даунтайм
I Основные принципы:I "мыслить как преступник"I спрашивать (не только) себя: "что здесь может пойти
не так?"
@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 — это просто набор алгоритмов
Два этапа работы алгоритмов:I подготовка (настройка, выбор модели, обучение)I предсказание
Три типа алгоритмов:I с обратной связью от среды
теория управления (control systems)I с обратной связью от человека
обучение с учителем (supervised learning)I с обратной связью от данных
обучение без учителя (unsupervised learning)
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ 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 Сбор данных Примеры задач Самое важное
Что захочет сделать злоумышленник
Объяснимость
I Помогает «приглядывать» за автоматизированнымпроцессом.
I Как иначе понять, что что-то пошло не так?
I Помогает при тестировании и отладке.I Помогает при расследовании инцидентов.
@podshumok Qrator
Machine learning for DDoS mitigation
Вопрос...
Откуда взять данные для обучения?
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Откуда брать данные для обучения?
План
Процессы информационной безопасностиИнформационная безопасностьПроцесс DDoS mitigation
Machine learningОбъяснимость и устойчивость к манипуляциямЧто захочет сделать злоумышленник
Сбор данныхОткуда брать данные для обучения?Чему учиться, что искать?
Примеры задачПредсказание нагрузкиПоиск групп запросов
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Откуда брать данные для обучения?
Что хранить
Необходимо (и легко)
I Данные о состояниясервера(«телеметрию»):
I статистикасоединений
I объём трафикаI свободная памятьI загрузка ЦПУI прочие замеры
исчерпываемыхресурсов
Полезно (но тяжело)
I ЛогиI желательно,
подробныеI в основном, access.logI в более-менее
удобном для машиныформате
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Откуда брать данные для обучения?
Что хранить
Необходимо (и легко)
I Данные о состояниясервера(«телеметрию»):
I статистикасоединений
I объём трафикаI свободная памятьI загрузка ЦПУI прочие замеры
исчерпываемыхресурсов
Полезно (но тяжело)
I ЛогиI желательно,
подробныеI в основном, access.logI в более-менее
удобном для машиныформате
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Откуда брать данные для обучения?
Логи
I Нужен хотя бы небольшой образец логов «чистогоповедения»
I Нужно иметь возможность сохранить хотя бы часть логовза время атаки
I Что здесь может пойти не так?
I Можно хранить только подмножество логовI Важно: правильно организовать выборкуI например, можно хранить только запросы с
MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Откуда брать данные для обучения?
Логи
I Нужен хотя бы небольшой образец логов «чистогоповедения»
I Нужно иметь возможность сохранить хотя бы часть логовза время атаки
I Что здесь может пойти не так?
I Можно хранить только подмножество логовI Важно: правильно организовать выборкуI например, можно хранить только запросы с
MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Откуда брать данные для обучения?
Логи
I Нужен хотя бы небольшой образец логов «чистогоповедения»
I Нужно иметь возможность сохранить хотя бы часть логовза время атаки
I Что здесь может пойти не так?
I Можно хранить только подмножество логовI Важно: правильно организовать выборкуI например, можно хранить только запросы с
MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Откуда брать данные для обучения?
Логи
I Нужен хотя бы небольшой образец логов «чистогоповедения»
I Нужно иметь возможность сохранить хотя бы часть логовза время атаки
I Что здесь может пойти не так?
I Можно хранить только подмножество логовI Важно: правильно организовать выборкуI например, можно хранить только запросы с
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 Сбор данных Примеры задач Самое важное
Чему учиться, что искать?
Что даёт сбор данных?
«Телеметрия»
I Фиксируем, когдасерверу «плохо»
I Прогнозируемпроблемы
ЛогиI Чем отличается
зловредное поведение,от«доброкачественного»?
I Какая группапользователей вызываетосновную нагрузку?
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Чему учиться, что искать?
Что даёт сбор данных?
«Телеметрия»
I Фиксируем, когдасерверу «плохо»
I Прогнозируемпроблемы
ЛогиI Чем отличается
зловредное поведение,от«доброкачественного»?
I Какая группапользователей вызываетосновную нагрузку?
@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 Сбор данных Примеры задач Самое важное
Предсказание нагрузки
Общие замечания
I Использование абсолютных отклонений (L1)I Робастная нормализацияI Нелинейные обратимые преобразования (sigmoid)I "Тяжёлые хвосты", когда нужно предположение о
распределенииI Сэмплирование уменьшает вероятность попадания
Как правило, можно принять:I В алгоритмах, основанных на деревьях,
breaking point<минимальный размер листкаI При кластеризации breaking point<минимальный размер
кластера@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 Сбор данных Примеры задач Самое важное
Поиск групп запросов
План
Процессы информационной безопасностиИнформационная безопасностьПроцесс DDoS mitigation
Machine learningОбъяснимость и устойчивость к манипуляциямЧто захочет сделать злоумышленник
Сбор данныхОткуда брать данные для обучения?Чему учиться, что искать?
Примеры задачПредсказание нагрузкиПоиск групп запросов
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Поиск групп запросов
Примеры признаков запросов/сессий
I Пользуется ли посетитель последней версией браузера?I Читает ли на там же языке, который используется в его
системной локали?I Загружает ли статику? Сколько раз запросил
favicon.ico?I Заходил ли на страницу /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
Наиболее популярные:I подмножества (элементарных признаков)I подпоследовательности (запросов)I подграфы (переходов)
@podshumok Qrator
Machine learning for DDoS mitigation
Процессы ИБ Machine learning Сбор данных Примеры задач Самое важное
Итого: готовиться нужно заранееЗащита как процесс
I Нужно время на поиск и/или подготовку специалистовI Нужно время на сбор данныхI Нужно время на ручной анализ, выбор и настройку
алгоритмовI Нужно время на обучение алгоритмов
I К размышлению:I Документирование процесса защиты.I Связь с бизнес-аналитикой.I Стандартизация собираемой информации.
@podshumok Qrator
Machine learning for DDoS mitigation
СпасибоКонстантин Игнатов@[email protected]
Запасные слайды
Защита, прозрачная для пользователей
Почему нельзя просто...
I Full browser stackI Completely Automated Public Turing test to tell Computers
and Humans ApartI простые — взломаныI сложные — вызывают боль у пользователейI automated humans
@podshumok Qrator
Machine learning for DDoS mitigation
Запасные слайды
Схема защиты
Availability network
I Подключение по DNSI клиент получает IP, пользователи используют его,
reverse-proxy перенаправляет чистые запросы на старыйадрес
I самый простой и быстрый, но конфиденциальностьзащищаемого IP нужно беречь как зеницу ока
I Выделенный VPN каналI BGP анонс
@podshumok Qrator
Machine learning for DDoS mitigation
Запасные слайды
Робастность
Define: робастный
I МедианаI MAD (медиана абсолютного отклонения от медианы)I КвантильI QR (размах квантилей)I Распределение Стьюдента
@podshumok Qrator
Machine learning for DDoS mitigation
Запасные слайды
Робастность
@podshumok Qrator
Machine learning for DDoS mitigation