Контакты
Подписка 2026

Обнаружение атак SQL-injection на веб-сервер без инспекции трафика

Анастасия Гурина, 15/02/21

Насколько эффективна нейросеть, анализирующая динамический отклик сетевого сервера, в обнаружении атак типа SQL-injection? В этой статье мы рассказываем о своем опыте применения метода совместного анализа входных и выходных данных для обнаружения самой опасной уязвимости.

Авторы:
Анастасия Гурина, аспирантка кафедры УИТ НИУ “МЭИ”
Владимир Елисеев, доцент кафедры УИТ НИУ “МЭИ”

На протяжении последних нескольких лет уязвимость по типу "инъекция кода" возглавляет список самых опасных угроз безопасности для веб-приложений1. SQL-injection занимает лидирующую позицию среди этого вида атак2, что обусловлено широким применением SQL-запросов к базам данных в коде приложений на основе пользовательского ввода без его должного контроля.

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

Для обнаружения атак SQL-injection путем выявления аномалий во входящем из Интернета трафике многие исследователи предлагают алгоритмы машинного обучения. Но мы уверены, что совместный анализ входных и выходных данных позволяет решить эту задачу более эффективно.

Главные принципы анализа данных для обнаружения SQL-injection

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

Чтобы описать тайминг во взаимосвязи с размерами данных, которыми обмениваются сервер с клиентом, воспользуемся функцией взаимной корреляции (ФВК) временных рядов интенсивности входящего и исходящего трафика сервера. Существует предположение, что форма ФВК выражает уникальность обработки конкретным сервером каждого типового шаблона "запрос-ответ". Определив пространство нормальных ФВК ограниченной размерности, можно выявлять аномальные ФВК, выходящие за его пределы. На рис. 1 изображена условная схема метода обнаружения аномалий на основе ФВК, на которой также показано отличие вида функций взаимной корреляции при обработке сервером нормальных и аномальных запросов – атак. При этом многомерное пространство образуется функциями взаимных корреляций, интерпретируемыми как векторы значений.


Рис. 1. Схема обнаружения аномальных откликов сервера на запросы

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

Применение метода для обнаружения атак SQL-injection на веб-сервер

Для апробации метода обнаружения аномалий был выбран веб-сервер с развернутым сайтом для организации форума на основе системы MyBB, использующей типовые инструменты – PHP, MySQL, Apache2.

В версии MyBB 1.8.6 в 2016 г. была обнаружена уязвимость SQL-injection. Уязвимость позволяет ввести в числовое поле фрагмент SQL-кода, который будет выполнен СУБД из-за недостаточного контроля за вводимыми значениями. При осуществлении "инъекции кода" видимой реакции веб-сайта не наблюдается, но при выполнении операции доступа к форуму в окне веб-браузера выдается результат выполнения внедренного кода, а также сообщение об ошибке работы MySQL (см. рис. 2).


Рис. 2. Результат SQL-инъекции с произведенным выводом (выделен красным прямоугольником) и введенным кодом (подчеркнуто красным)

Таким образом, данная уязвимость позволяет внедренному коду быть запущенным через неопределенное время, что потенциально может быть очень опасно.

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

Полученные данные о коммуникациях между клиентом и сервером по протоколу HTTP были преобразованы во временные ряды интенсивности передачи данных, обезличенные до числа байт в единицу времени. Шаг дискретизации по времени был равен 0,1 с.

Два синхронных временных ряда с интенсивностью входящего и исходящего трафика использовались для расчета функции взаимной корреляции с шириной окна 11 отсчетов времени. Таким образом, имелась возможность регистрировать динамический отклик сервера на запрос в течение 1 с каждую 0,1 с. Значительное число корреляционных функций должно было вычисляться для интервалов с нулевой интенсивностью трафика. Такие интервалы исключались из расчетов. Полученные взаимные корреляционные функции образовали профиль нормальной работы сервера.

Структура нейросети для классификации ФВК выбиралась исходя из ширины окна корреляции и экспертных представлений о возможностях нейронных сетей типа "автокодировщик" (см. рис. 3). На вход нейросети подавался вектор значений ФВК. Нейронная сеть обучалась для того, чтобы на выходах формировался вектор значений, максимально близкий к вектору входных значений ФВК. При обучении использовался критерий минимизации средней квадратичной ошибки (MSE, Mean Squared Error). Значение мгновенной ошибки реконструкции (IRE, Immediate Reconstruction Error) для заданного входного вектора определяет точность, с которой нейронная сеть опознает входной вектор значений ФВК длины как известный, и вычисляется по формуле.


Рис. 3. Структура автокодировщика

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

Рис. 4. Мгновенная ошибка реконструкции для обучающей выборки

Для выявления аномалий был задан порог мгновенной ошибки реконструкции в качестве наибольшего значения среди ошибок реконструкции, рассчитанных для ФВК обучающей выборки, – 0,0024.

Для апробации обученного классификатора был проведен сеанс работы с сайтом MyBB, содержащий, кроме нормальных запросов, SQL-injection, и осуществлены дальнейшие действия по вызову результата внедренного кода. По графикам интенсивности измеренного входящего и исходящего трафика были рассчитаны ФВК, представляющие тестовую выборку. На рис. 5 приведен полученный график мгновенной ошибки реконструкции для ФВК тестовой выборки, а также график ошибки реконструкции для ФВК обучающей выборки и порог обнаружения аномалий.


Рис. 5. Ошибка реконструкции для обучающей (синий цвет) и тестовой (красный цвет) выборки

На графике отмечены значения ошибки реконструкции, превышающие заданный порог, то есть распознанные классификатором как аномальные. Поскольку порядковый номер ФВК по оси абсцисс позволяет однозначно определить временной интервал соответствующего фрагмента трафика, было выяснено, что одно из превышений порога – это ложная тревога (false positive), а три остальных соответствуют трем обнаруженным атакам SQL-injection (SQLIA1, SQLIA2, SQLIA3). Наличие ложного срабатывания может быть объяснено как недостаточным качеством обученного классификатора, так и возмущениями, внесенными средой выполнения во временные характеристики обрабатываемых запросов.

Сравним вид ФВК, которые были распознаны нейросетевым классификатором как нормальные и ошибка для которых была мала, с видом ФВК, ошибка реконструкции для которых превысила пороговое значение IRE (см. рис. 6).


Рис. 6. Вид нормальных ФВК для малой ошибки IRE и вид аномальных ФВК для ошибки выше порога IRE

Отметим, что ФВК, соответствующие атакам SQL-injection, носят мультимодальный характер, в отличие от ФВК из области нормальных.

В "узком горле" обученной нейросети, состоящем из трех нейронов, происходит сжатие поданных на вход данных. В трехмерном пространстве показаны точки нормальных ФВК, характеризующие профиль нормальной работы, и точки тестовой выборки (см. рис. 7).

Рис. 7. Профиль нормальной работы сервера и обнаруженные аномальные отклики сервера

Видно, что большинство ФВК из тестовой выборки нейросеть распознала и отнесла к пространству нормальных ФВК, характеризующих профиль нормальной работы. Некоторые ФВК, отстоящие от выделенной нормальной области, нейронная сеть нашла аномальными, часть из них действительно характеризуют реакцию сервера на вредоносные SQL-запросы.

Рассматривая в качестве объекта классификации все ненулевые ФВК тестовой выборки, можно рассчитать стандартные характеристики классификатора (см. табл.).

Таблица. Матрица ошибок классификации и характеристики качества классификатора

Таким образом, метод обнаружения аномалий на основе автокодировщика был успешно применен для обнаружения трех проведенных атак SQL-injection на сервис МyBB.

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


  1. OWASP Top Ten, 2020: https://owasp.org/www-project-top-ten/ 
  2. Lowis L., Accorsi R., On a Classification Approach for SOA Vulnerabilities. Computer Software and Applications Conference (COMPSAC '09). 33rd Annual.
Темы:ТехнологииНейросетиБезопасная разработкаЖурнал "Информационная безопасность" №4, 2020SQL-инъекции
Практика защиты персональных данных в 2027 году: требования и инструменты. 14 октября на Форуме ITSEC 2026
Полное расписание мероприятий Форума ITSEC 2026 →

Программа мероприятий
для руководителей и специалистов
по защите информации

Посетить
Статьи по той же темеСтатьи по той же теме

  • SafeERP – новая архитектура защиты бизнес-приложений
    Римма Кулешова, менеджер продукта SafeERP компании “Газинформсервис”
    Признание ERP-систем частью КИИ меняет подход к безопасности бизнес-приложений. На первый план выходят вопросы непрерывного контроля, управления рисками и прозрачности процессов внутри 1С и SAP. Римма Кулешова рассказывает о новой модели защиты ERP и о том, почему безопасность бизнес-логики становится отдельным направлением ИБ.
  • ИИ в аудите смарт-контрактов и проблема масштаба
    Александр Подобных, Независимый эксперт по ИБ в SICP.ueba.su
    Смарт-контракты пишутся быстрее, чем их успевают нормально проверять. Ошибки при этом каждый раз разные – от простых просчетов в логике до сложных сценариев с оракулами и внешними протоколами. Разбор каждого инцидента занимает время, а их становится все больше и больше. В какой-то момент проблема сводится уже не к сложности, а к объему: ручной аудит не успевает покрывать все, что появляется.
  • Когда платформа становится безопаснее, чем безопасник
    Александр Трифанов, руководитель направления Application Security, "Авито"
    В крупных компаниях стало слишком много инженерии. Команды растут, микросервисы множатся, инфраструктура усложняется, а вместе с ней – и стоимость ее поддержки. Поэтому идея внутренних платформ выглядит естественным ответом на хаос. То, что раньше требовало согласований и ручных настроек, теперь превращается в сервис – Platform as a Service, Publication as a Service, Admin as a Service.
  • Как инструменты разработки становятся средствами для кражи криптоактивов
    Дмитрий Пойда, аналитик по расследованиям AML/KYT провайдера “Шард”
    Количество атак на цепочку поставок программного обеспечения в прошлом году выросло на 156% по сравнению с годом ранее, по данным исследования Sonatype. Разберемся, как эта угроза проявляет себя в мире криптовалют, и почему привычные инструменты разработчика становятся орудием злоумышленников.
  • Почему DevSecOps не приживается в АСУ ТП и MES – и как его адаптировать
    Артем Пузанков, руководитель группы внедрения практик безопасной разработки Positive Technologies
    Внедрение DevSecOps стало нормой для ИТ-разработки, однако в промышленных системах этот подход сталкивается с серьезными ограничениями. Приоритеты в этих средах – надежность, непрерывность работы и соблюдение отраслевых стандартов – изначально противоречат динамике CI/CD и гибкости DevOps. Дополнительные препятствия создают закрытые контуры, устаревшие технологии и фрагментированная структура ответственности.
  • Безопасность приложений на базе SAP и 1С начинается с проверки кода
    Екатерина Герлинг, ведущий инженер-аналитик Лаборатории стратегического развития продуктов кибербезопасности Аналитического центра кибербезопасности ООО “Газинформсервис”
    После ухода SAP с российского рынка система 1С стала чуть ли не единственной альтернативой, но разработка под эту платформу требует значительных ресурсов, а специалистов не хватает. При этом анализ и защита кода для таких систем — сложный процесс, требующий специализированных решений. На российском рынке есть решения, которые помогут обеспечить безопасность корпоративных приложений на 1С и SAP.

Хотите участвовать?

Выберите вариант!

КАЛЕНДАРЬ МЕРОПРИЯТИЙ 2026
ПОСЕТИТЬ МЕРОПРИЯТИЯ
ВЫСТУПИТЬ НА КОНФЕРЕНЦИЯХ
СТАТЬ АВТОРОМ
13-14 октября приглашаем экспертов и практиков выступить на Форуме ITSEC 2026!
Отправить заявку на участие →

More...
ТБ Форум 2026
13 октября. Защищенный удаленный доступ на Форуме ITSEC 2026
Регистрация открыта →

More...