Машинное обучение прокладывает новый путь для поиска SQLi-уязвимостей

Машинное обучение прокладывает новый путь для поиска SQLi-уязвимостей

Эксперты использовали обучение с подкреплением для автоматизации процесса эксплуатации SQLi-уязвимостей.

Исследователи из Университета Осло работают над новым методом поиска уязвимостей, позволяющих осуществлять SQL-инъекции в web-приложениях, предусматривающим использование технологий машинного обучения. Говоря точнее, метод заключается в использовании обучения с подкреплением для автоматизации процесса эксплуатации известных уязвимостей, позволяющих осуществлять SQL-инъекции (SQLi).

Обучение с подкреплением (reinforcement learning) представляет собой один из способов машинного обучения, при котором модели искусственного интеллекта (ИИ) предоставляются возможные действия и вознаграждения некой среды и дается задание найти лучшие применения этим действиям для получения максимального вознаграждения.

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

Для демонстрации своего метода в действии исследователи провели нечто сродни игре «Захват флага». Обученный с подкреплением агент должен был получить информацию с атакуемого сайта путем эксплуатации SQLi-уязвимости. В роли возможных действий агента выступали отправляемые системе запросы, а в роли вознаграждения – токен флага, который он должен был получить.

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

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

Хотя представленное специалистами Университета Осло исследование действительно впечатляет, оно все еще находится на ранней стадии, и для того, чтобы агент обучения с подкреплением смог решить задачу, исследователям пришлось ее упростить. Так, задача предполагала статическую среду, остающуюся неизменной при отправке запросов злоумышленником. Агент также заранее знал SQL-уязвимость и схему атакуемой базы данных, и ему нужно было только найти правильный запрос для эксплуатации уязвимости.

Где кванты и ИИ становятся искусством?

На перекрестке науки и фантазии — наш канал

Подписаться