26 марта, 2019

Как машинное обучение помогает бороться с хакерскими атаками


Романов Роман

генеральный директор (ООО "Пентестит")

Машинное обучение (ML) — обширный подраздел искусственного интеллекта (AI), изучающий методы построения алгоритмов, способных обучаться.

Машинное обучение, как и информационная безопасность – темы очень популярные и их обсуждение ведется повсеместно – от международных форумов до интернет-ресурсов.  Попробуем разобраться, каким образом машинное обучение способно противостоять современным угрозам информационной безопасности.

Одним из наиболее популярных методов ML является глубинное обучение (многослойные нейронные сети), позволяющее получать качественные результаты работы. Несмотря на свою популярность, глубинное обучение имеет ряд недостатков: высокие требования к аппаратному обеспечению (GPU) и задержки при обработке запроса, что ограничивает его повсеместное применение. В своих решениях в области информационной безопасности мы используем классические алгоритмы, позволяющие при хорошей обучающей выборке получать схожие с глубинным обучением результаты с меньшим временем отклика, хорошим масштабированием и  отсутствием высоких требований к аппаратному обеспечению.

Принцип работы машинного обучения

Рассмотрим пример применения машинного обучения для выявления атак на веб-сайты (интернет порталы, API или прочие веб-приложения).

Посетители сайта при взаимодействии с ним (через браузер), производят обращения, направляя запросы и получая ответы от сервера. Поступающие на сервер запросы в стандарте протокола HTTP анализируются модулем машинного обучения WAF на предмет аномалий или атак:

Запрос 1: GET /?p=1

Запрос 2: GET /?p=5

Запрос 3: GET /?p=9

Запрос 4: GET /?p=254

Запрос 5: GET /?p=’ OR 1=1 --

Модуль машинного обучения, используя поведенческие модели, производит анализ и выявляет аномалию в запросе № 5. По своей сути результат работы модуля машинного обучения схож с результатом работы специалиста, но с одним отличием: модуль выполняет анализ быстрее и в круглосуточном режиме.

Построение поведенческих моделей осуществляется на основе собранных в течение определенного временного промежутка обращений к веб-приложению, а также с использованием базы данных атак. После того, как модели будут построены, модуль приступает к процессу распознавания - выявлению атак на веб-приложение.

Объективный показатель работы любой системы — это результат. Машинное обучение не является исключением, и результат его работы можно оценить по количеству ложных срабатываний (False Positive) и числу пропущенных атак (False Negative), и чем их будет меньше – тем качественнее работа.

Для решения такой задачи требуется как можно больше примеров легитимных запросов к веб-сайту, а также хорошо подобранная база атак. Полученные данные аккумулируются, происходит оценка частоты встречаемости признаков с использованием «n-грамм», векторизация и преобразование данных в поведенческие модели. Ниже представлена общая схема классификации строк, используемая при разработке модуля машинного обучения.

После того, как поведенческие модели будут построены, все обращения к веб-сайту анализируются подсистемой машинного обучения, а число ложных срабатываний и пропусков атак по сравнению с сигнатурным анализом начинает стремиться к нулю.

Заменит ли машинное обучение сигнатурный анализ?

В отличие от сигнатурного анализа, машинное обучение позволяет выявлять атаки на основе их признаков, таким образом сокращая вероятность обхода систем защиты с использованием вариации атак. Другой особенностью машинного обучения, вытекающей из первой, является способность выявлять новые виды атак (атаки «нулевого дня»). Для понимания, как это работает, рассмотрим простой пример.

Предположим, что веб-приложение содержит уязвимость, позволяющую выполнять произвольные команды на целевой системе (сервере) с помощью запроса:

GET ?args=;+cat+/etc/passwd

Администратором системы была составлена сигнатура для блокирования атаки:

/etc/passwd

Атакующий, используя особенности обработки запросов, модифицировал его таким образом, чтобы запрос выполнился на целевой системе и не был заблокирован WAF:

GET ?args=;+cat+/e't'c/pa'ss'wd

Модифицированный запрос не был определен сигнатурным анализом как вредоносный, но был выявлен и заблокирован модулем машинного обучения. Попытки повысить точность выявления атак с использованием сигнатурного анализа (даже задействовав регулярные выражения) приводят к увеличению количества ложных срабатываний, вынуждая, в конечном счете, снижать уровень защищенности WAF. Несмотря на свои недостатки, сигнатурный анализ имеет некоторые преимущества – высокая скорость обработки запроса и моментальное применение правил (отсутствие периода обучения).

Использование комбинированного подхода в «Nemesida WAF», где сигнатурный анализ предназначен для выявлении запросов с явными признаками атаки, а машинное обучение – для анализа остальных запросов, позволяет нам достигать высокой скорости работы WAF с минимальным количеством ложных срабатываний и пропусков атак.

Расстояние Левенштейна

Помимо попыток выполнить эксплуатацию уязвимостей в веб-приложении, примерно четверть инцидентов может приходиться на атаки методом перебора (Brute-force) – способ подбора определенных параметров: логина, пароля, реквизита доступа или другой конфиденциальной информации. Использование расстояния Левенштейна и нечеткой логики позволяют выявлять подобные аномалии даже если атакующий задействует распределенную ботнет-сеть из сотни тысяч устройств. Выявить такие атаки без использования математических расчетов практически невозможно.

Выводы

Несмотря на свою популярность и возможности, машинное обучение не является полноценной заменой сигнатурному анализу, являясь, в то же время, отличным инструментом при решении различных задач, в том числе связанных с выявлением хакерских атак.

 

Смотрите также

Утечки данных

28 февраля, 2019
Подпишись на новости!
Подписаться