infotecs 9/18/20 1:24 PM Page 42
ТЕХНОЛОГИИ
Обнаружение атак SQL-injection на веб-сервер без инспекции трафика Анастасия Гурина, аспирантка кафедры УИТ НИУ “МЭИ” Владимир Елисеев, доцент кафедры УИТ НИУ “МЭИ”
Н
асколько эффективна нейросеть, анализирующая динамический отклик сетевого сервера, в обнаружении атак типа SQL-injection? В этой статье мы рассказываем о своем опыте применения метода совместного анализа входных и выходных данных для обнаружения самой опасной уязвимости.
На протяжении последних нескольких лет уязвимость по типу "инъекция кода" возглавляет список самых опасных угроз безопасности для веб-приложений1. SQL-injection занимает лидирующую позицию среди этого вида атак 2, что обусловлено широким применением SQLзапросов к базам данных в коде приложений на основе пользовательского ввода без его должного контроля. Стандартным способом выявления атак, организованных с помощью "инъекции кода", является анализ сигнатур, но известными недостатками этого способа оказываются трудоемкость написания сигнатур и временной зазор от момента обнаружения уязвимости до пополнения базы для масштабного применения сетевой атаки.
Для обнаружения атак SQLinjection путем выявления аномалий во входящем из Интернета трафике многие исследователи предлагают алгоритмы машинного обучения. Но мы уверены, что совместный анализ входных и выходных данных позволяет решить эту задачу более эффективно.
Главные принципы анализа данных для обнаружения SQL-injection Корректное функционирование сетевого сервера может быть описано множеством пар "запрос-ответ", соответствующих всем возможным штатным сценариям обработки сервером входных данных. Построение такого множества позволит проверять каждый "запросответ" на соответствие эталону и выявлять сетевые атаки, ответ на которые выходил бы за рамки этого множества. Значимыми признаками для идентификации штатных запросов и ответов является их размер и тайминг обмена
данными в процессе обработки запроса. Чтобы описать тайминг во взаимосвязи с размерами данных, которыми обмениваются сервер с клиентом, воспользуемся функцией взаимной корреляции (ФВК) временных рядов интенсивности входящего и исходящего трафика сервера. Существует предположение, что форма ФВК выражает уникальность обработки конкретным сервером каждого типового шаблона "запрос-ответ". Определив пространство нормальных ФВК ограниченной размерности, можно выявлять аномальные ФВК, выходящие за его пределы. На рис. 1 изображена условная схема метода обнаружения аномалий на основе ФВК, на которой также показано отличие вида функций взаимной корреляции при обработке сервером нормальных и аномальных запросов – атак. При этом многомерное пространство образуется функциями взаимных корреляций, интерпретируемыми как векторы значений. Дополнительную информацию о характере обработки данных, осуществляемой сервером, можно извлечь из вычислительных ресурсов, потребляемых сервером, что позволит расширить размерность пространства за счет характеристик загруженности сервера обработкой запроса.
Применение метода для обнаружения атак SQLinjection на веб-сервер Рис. 1. Схема обнаружения аномальных откликов сервера на запросы 1
Для апробации метода обнаружения аномалий был выбран веб-сервер с развернутым сай-
OWASP Top Ten, 2020: https://owasp.org/www-project-top-ten/ Lowis L., Accorsi R., On a Classification Approach for SOA Vulnerabilities. Computer Software and Applications Conference (COMPSAC '09). 33rd Annual. 2
42 •