Машинное обучение vs сигнатурный анализ при обнаружении атак на веб-приложение |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2018-11-01 11:35 О том, как мы разрабатывали модуль машинного обучения, почему отказались от нейронных сетей в сторону классических алгоритмов, какие атаки выявляются за счет расстояния Левенштейна и нечеткой логики, и какой метод обнаружения атак (ML или сигнатурный) работает эффективнее. Применение машинного обучения для обнаружения атак Посмотрев на рост популярности запросов ML (как и Cybersecurity) в Google: и зная, что HTTP-запросы представляют собой обычный текст (пусть и неосмысленный), а синтаксис протокола позволяет интерпретировать данные как строки: Пример легитимного запроса
Пример нелегитимного запроса
мы решили попробовать реализовать модуль машинного обучения для обнаружения атак на веб-приложение. Перед тем, как приступить к разработке, cформулируем задачу: Научить модуль машинного обучения выявлять атаки на веб-приложения по содержимому HTTP-запроса, то есть производить классификацию запросов (как минимум, бинарную: легитимный или нелегитимный запрос). Используя общую схему классификации строк и адаптацию под нашу задачу: Этап 1. Обработка трафика. Анализируем поступающие HTTP-запросы с возможностью их блокирования. Этап 2. Определение признаков. Содержимое HTTP-запросов не является осмысленным текстом, поэтому для работы с Этапы 3 и 4. Фильтрация. Этапы относятся больше к осмысленному тексту, поэтому для решения задачи они не требуются, исключаем. Этап 5. Преобразование в векторный вид. На основе анализа научных исследований и существующих прототипов была построена схема Задача обнаружения атак с математической точки зрения формализовалась как классическая На рисунке ниже можно увидеть, как выполняется классическое преобразование для осмысленного текста: В нашем случае вместо «мешка слов» мы используем n-граммы. Этап 6. Выделение словаря признаков. Забираем результат работы алгоритма TFIDF и уменьшаем число признаков (управляя, Этап 7. Обучение алгоритма. Производим выбор алгоритма и его обучение. После обучения (при распознавании) работают только блоки 1, 5, 6 + recognition. Выбор алгоритма При выборе алгоритма обучения рассматривались практически все, входящие в пакет scikit-learn. Глубинное обучение обеспечивает высокую точность, но: Поскольку не все потенциальные пользователи Nemesida WAF будут иметь возможность приобрести сервер с GPU для глубинного обучения, и время обработки запроса является ключевым фактором, мы решили использовать классические алгоритмы, которые, при наличии хорошей обучающей выборки, обеспечивают близкую к методам глубинного обучения точность и хорошо масштабируются на любую платформу. Классический алгоритмМногослойные нейронные сети1. Высокая точность только при хорошей обучающей выборки. WAF для защиты веб-приложений — инструмент необходимый, но не каждый имеет возможность приобретения или аренды дорогостоящего оборудования с GPU для его обучения. Кроме этого, время обработки запросов (в стандартном режиме IPS) является критичным показателем. Исходя из изложенного, мы решили остановиться на классическом алгоритме обучения. Стратегия разработки ML При разработке модуля машинного обучения (Nemesida AI) была использована следующая стратегия: Кросс-валидация: подбираем коэффициент Используя оптимальное значение коэффициентов для кросс-валидации, был выбран метод на основе случайного леса (Random Forest), который позволил нам достичь следующих показателей: Результат работы модуля ML Запросы, заблокированные по совокупности признаков аномалий Попытка обхода WAF Запрос, пропущенный сигнатурным методом, но заблокированный ML Блокирование brute-force атак Выявление brute-force атак (BF) — важный компонент современного WAF. Выявлять такие атаки проще, чем атаки класса SQLi, XSS и прочие. Кроме этого, выявление BF-атак производится на копии трафика, не влияя на время отклика веб-приложения. Машинное обучение или сигнатурный анализ Подводя итоги, выделим особенности каждого метода: Сигнатурный анализМашинное обучениеПреимущества: На основе выявленных модулем ML новых признаков атаки мы обновляем набор сигнатур, которые, в том числе, используются в Nemesida WAF Free — бесплатной версии, обеспечивающей базовую защиту веб-приложения, простой в установке и обслуживании, не имеющей высоких требований к аппаратным ресурсам. Источник: m.vk.com Комментарии: |
|