Особенности использования машинного обучения при...
-
Upload
qrator-labs -
Category
Internet
-
view
107 -
download
6
Transcript of Особенности использования машинного обучения при...
Особенности использования машинного обученияпри защите от DDOS-атак
Константин Игнатов
Qrator Labs
28.01.2016
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 1 / 46
Как вы узнаете, что ваш сайт атакуют?
План
1 Процессы информационной безопасностиИнформационная безопасностьПроцесс DDoS mitigation
2 Machine learningОбъяснимость и устойчивость к манипуляциямЧто захочет сделать злоумышленник
3 Сбор данныхОткуда брать данные для обучения?Чему учиться, что искать?
4 Примеры задачПредсказание нагрузкиПоиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 4 / 46
План
1 Процессы информационной безопасностиИнформационная безопасностьПроцесс DDoS mitigation
2 Machine learningОбъяснимость и устойчивость к манипуляциямЧто захочет сделать злоумышленник
3 Сбор данныхОткуда брать данные для обучения?Чему учиться, что искать?
4 Примеры задачПредсказание нагрузкиПоиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 5 / 46
Обеспечение доступности
Процесс противодействия злоумышленникуI наша цель — 100% доступностьI цель злоумышленника — наш даунтайм
Основные принципы:I "мыслить как преступник"I спрашивать (не только) себя: "что здесь может пойти не так?"
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 6 / 46
Обеспечение доступности
Процесс противодействия злоумышленникуI наша цель — 100% доступностьI цель злоумышленника — наш даунтайм
Основные принципы:I "мыслить как преступник"I спрашивать (не только) себя: "что здесь может пойти не так?"
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 6 / 46
Если что-то плохое может произойти, оно произойдёт...по чьей-то злой воле
План
1 Процессы информационной безопасностиИнформационная безопасностьПроцесс DDoS mitigation
2 Machine learningОбъяснимость и устойчивость к манипуляциямЧто захочет сделать злоумышленник
3 Сбор данныхОткуда брать данные для обучения?Чему учиться, что искать?
4 Примеры задачПредсказание нагрузкиПоиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 8 / 46
Защищаем ограниченные ресурсыDDoS атака, как правило, направлена на их исчерпывание
Требуется совместная работа многих отделов
сетевые инженеры, архитекторы: каналразработчики приложения: память, CPU, IOPSспециалисты по ИБ: защищаемый IP
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 9 / 46
source: https://www.flickr.com/photos/marvin_lee/license: https://creativecommons.org/licenses/by/2.0/
План
1 Процессы информационной безопасностиИнформационная безопасностьПроцесс DDoS mitigation
2 Machine learningОбъяснимость и устойчивость к манипуляциямЧто захочет сделать злоумышленник
3 Сбор данныхОткуда брать данные для обучения?Чему учиться, что искать?
4 Примеры задачПредсказание нагрузкиПоиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 11 / 46
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
Требования к алгоритмам
Алгоритмы дают оценку, например, матожидания E [ω|X ]ω — случайная величина (что мы хотим «предсказать»)X — известные данные
Мы хотим:На первом этапе работы: игнорировать аномалии при обучении (в обратной
связи)На втором: иметь возможность понять, почему было принято именно такое
решение
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 14 / 46
План
1 Процессы информационной безопасностиИнформационная безопасностьПроцесс DDoS mitigation
2 Machine learningОбъяснимость и устойчивость к манипуляциямЧто захочет сделать злоумышленник
3 Сбор данныхОткуда брать данные для обучения?Чему учиться, что искать?
4 Примеры задачПредсказание нагрузкиПоиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 15 / 46
Кто учит машину?
Данные дляобучения = поведениепользователей
То есть частичноконтролируемызлоумышленником
И тут у злоумышленника появляется одна идея...научить наш алгоритм «вместо нас»
Это плохо. И может случиться. Что делать?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 16 / 46
Кто учит машину?
Данные дляобучения = поведениепользователей
То есть частичноконтролируемызлоумышленником
И тут у злоумышленника появляется одна идея...научить наш алгоритм «вместо нас»
Это плохо. И может случиться. Что делать?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 16 / 46
Кто учит машину?
Данные дляобучения = поведениепользователей
То есть частичноконтролируемызлоумышленником
И тут у злоумышленника появляется одна идея...научить наш алгоритм «вместо нас»
Это плохо. И может случиться. Что делать?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 16 / 46
Кто учит машину?
Данные дляобучения = поведениепользователей
То есть частичноконтролируемызлоумышленником
И тут у злоумышленника появляется одна идея...научить наш алгоритм «вместо нас»
Это плохо. И может случиться. Что делать?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 16 / 46
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
Робастная оценка
Робастность — мера того, насколько просто повлиять на предсказываемуюоценку
Breaking point — количество образцов в обучающей выборке, достаточноедля того, чтобы исказить оценку
Чем выше Breaking Point, тем сложнее злоумышленникуповлиять на работу алгоритма MLЧто означает «сложнее»?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 18 / 46
Деталь, которая не ломается, отличается от детали, котораяломается, тем, что, если деталь, которая не ломается, сломается,то её нельзя будет починить.
Объяснимость
Помогает «приглядывать» за автоматизированным процессом.I Как иначе понять, что что-то пошло не так?
Помогает при тестировании и отладке.Помогает при расследовании инцидентов.
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 20 / 46
Вопрос...
Откуда взять данные для обучения?
План
1 Процессы информационной безопасностиИнформационная безопасностьПроцесс DDoS mitigation
2 Machine learningОбъяснимость и устойчивость к манипуляциямЧто захочет сделать злоумышленник
3 Сбор данныхОткуда брать данные для обучения?Чему учиться, что искать?
4 Примеры задачПредсказание нагрузкиПоиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 22 / 46
Что хранить
Необходимо (и легко)Данные о состояния сервера(«телеметрию»):
I статистика соединенийI объём трафикаI свободная памятьI загрузка ЦПУI прочие замеры
исчерпываемых ресурсов
Полезно (но тяжело)Логи
I желательно,подробные
I в основном, access.logI в более-менее
удобном для машиныформате
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 23 / 46
Что хранить
Необходимо (и легко)Данные о состояния сервера(«телеметрию»):
I статистика соединенийI объём трафикаI свободная памятьI загрузка ЦПУI прочие замеры
исчерпываемых ресурсов
Полезно (но тяжело)Логи
I желательно,подробные
I в основном, access.logI в более-менее
удобном для машиныформате
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 23 / 46
Логи
Нужен хотя бы небольшой образец логов «чистого поведения»
Нужно иметь возможность сохранить хотя бы часть логов за времяатаки
I Что здесь может пойти не так?
Можно хранить только подмножество логовI Важно: правильно организовать выборкуI например, можно хранить только запросы с
MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 24 / 46
Логи
Нужен хотя бы небольшой образец логов «чистого поведения»
Нужно иметь возможность сохранить хотя бы часть логов за времяатаки
I Что здесь может пойти не так?
Можно хранить только подмножество логовI Важно: правильно организовать выборкуI например, можно хранить только запросы с
MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 24 / 46
Логи
Нужен хотя бы небольшой образец логов «чистого поведения»
Нужно иметь возможность сохранить хотя бы часть логов за времяатаки
I Что здесь может пойти не так?
Можно хранить только подмножество логовI Важно: правильно организовать выборкуI например, можно хранить только запросы с
MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 24 / 46
Логи
Нужен хотя бы небольшой образец логов «чистого поведения»
Нужно иметь возможность сохранить хотя бы часть логов за времяатаки
I Что здесь может пойти не так?
Можно хранить только подмножество логовI Важно: правильно организовать выборкуI например, можно хранить только запросы с
MurmurHash(IP) mod 1024 ∈ B, где B ⊂ 0, 1023
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 24 / 46
План
1 Процессы информационной безопасностиИнформационная безопасностьПроцесс DDoS mitigation
2 Machine learningОбъяснимость и устойчивость к манипуляциямЧто захочет сделать злоумышленник
3 Сбор данныхОткуда брать данные для обучения?Чему учиться, что искать?
4 Примеры задачПредсказание нагрузкиПоиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 25 / 46
Что даёт сбор данных?
«Телеметрия»Фиксируем, когдасерверу «плохо»Прогнозируемпроблемы
ЛогиЧем отличается зловредноеповедение, от«доброкачественного»?Какая группа пользователейвызывает основнуюнагрузку?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 26 / 46
Что даёт сбор данных?
«Телеметрия»Фиксируем, когдасерверу «плохо»Прогнозируемпроблемы
ЛогиЧем отличается зловредноеповедение, от«доброкачественного»?Какая группа пользователейвызывает основнуюнагрузку?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 26 / 46
План
1 Процессы информационной безопасностиИнформационная безопасностьПроцесс DDoS mitigation
2 Machine learningОбъяснимость и устойчивость к манипуляциямЧто захочет сделать злоумышленник
3 Сбор данныхОткуда брать данные для обучения?Чему учиться, что искать?
4 Примеры задачПредсказание нагрузкиПоиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 27 / 46
Цепочки задач
1 Какая ожидается нагрузка?1 А какая бывает?2 На что похоже то, что наблюдаем сейчас?
2 Нужно ли что-то делать?1 Какое количество запросов приводит к сбоям сервера?2 Сколько нужно «зарезать» запросов, чтобы стало легче жить?3 Нужно ли заблокировать часть легитимных запросов?
3 Какие запросы более важны?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 28 / 46
Исходные данные
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 29 / 46
Общие замечания
Использование абсолютных отклонений (L1)Робастная нормализацияНелинейные обратимые преобразования (sigmoid)"Тяжёлые хвосты", когда нужно предположение о распределенииСэмплирование уменьшает вероятность попадания
Как правило, можно принять:В алгоритмах, основанных на деревьях,breaking point<минимальный размер листкаПри кластеризации breaking point<минимальный размер кластера
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 30 / 46
Подготовка
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 31 / 46
Кластеризация
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 34 / 46
Классификация + регрессия
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 35 / 46
План
1 Процессы информационной безопасностиИнформационная безопасностьПроцесс DDoS mitigation
2 Machine learningОбъяснимость и устойчивость к манипуляциямЧто захочет сделать злоумышленник
3 Сбор данныхОткуда брать данные для обучения?Чему учиться, что искать?
4 Примеры задачПредсказание нагрузкиПоиск групп запросов
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 36 / 46
Примеры признаков запросов/сессий
Пользуется ли посетитель последней версией браузера?Читает ли на там же языке, который используется в его системнойлокали?Загружает ли статику? Сколько раз запросил favicon.ico?
Заходил ли на страницу /buy?
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 37 / 46
Pattern discoveryКак выделить признаки запросов/сессий
Дано: всплеск на 50k запросов.Преобразуем запрос в набор элементарных признаков
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 38 / 46
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
Pattern discovery
Получаем особый тип БД, в которой можно искать:подмножества (элементарных признаков),подпоследовательности (запросов),подграфы (переходов),
удовлетворяющие заданным условиям.
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 40 / 46
Итого: готовиться нужно заранееЗащита как процесс
Нужно время на поиск и/или подготовку специалистовНужно время на сбор данныхНужно время на ручной анализ, выбор и настройку алгоритмовНужно время на обучение алгоритмов
К размышлению:I Документирование процесса защиты.I Связь с бизнес-аналитикой.I Стандартизация собираемой информации.
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 41 / 46
СпасибоКонстантин Игнатов@[email protected]
Почему нельзя просто...
Full browser stackCompletely Automated Public Turing test to tell Computers and HumansApart
I простые — взломаныI сложные — вызывают боль у пользователейI automated humans
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 43 / 46
Availability network
Подключение по DNSI клиент получает IP, пользователи используют его, reverse-proxy перенаправляет
чистые запросы на старый адресI самый простой и быстрый, но конфиденциальность защищаемого IP нужно
беречь как зеницу ока
Выделенный VPN каналBGP анонс
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 44 / 46
Define: робастный
МедианаMAD (медиана абсолютного отклонения от медианы)КвантильQR (размах квантилей)Распределение Стьюдента
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 45 / 46
@podshumok (Qrator Labs) Machine learning for DDoS mitigation conf.1c-bitrix.ru/winter2016 46 / 46