19.04.2024
Подписывайтесь на Telegram-канал по ссылке

Учёные использовали машинное обучение для автоматизации поиска SQL-уязвимостей

SQL-уязвимости помогает искать машинное обучение

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

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

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

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

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

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