Библиографическое описание:

Григоров А. С. Обзор методов обнаружения аномалий в SQL-запросах к базам данных [Текст] // Современные тенденции технических наук: материалы междунар. науч. конф. (г. Уфа, октябрь 2011 г.). — Уфа: Лето, 2011. — С. 13-17.

Одним из способов обеспечения безопасности баз данных (БД) является использование специализированных систем обнаружения вторжений (СОВ). Под обнаружением вторжений понимается процесс выявления действий, которые способны нарушить конфиденциальность, целостность и доступность информации, хранимой в БД. Системы обнаружения вторжений являются реактивной мерой, направленной на противодействие активности злоумышленника в случаях, когда он смог преодолеть все проактивные меры.
История развития СОВ берёт своё начало в 70-х годах XX века, когда в 1972 году ВВС США был опубликован документ, в котором указывалось о необходимости развития систем компьютерной безопасности. В 1980 году Джеймс Андерсон обнародовал результаты своих исследований [1], предложив пути улучшения компьютерной безопасности на основе использования аудита и мониторинга защищаемых объектов, а в период с 1984 по 1986 год Дороти Деннинг совместно с Питером Нейманом разработали первую модель СОВ [2], ставшую основой для большинства современных систем. Следует отметить, что первые СОВ ориентировались в первую очередь на защиту от несанкционированных действий в компьютерных сетях и операционных системах, однако в дальнейшем получили развитие и другие направления. Так на сегодняшний день активно развиваются СОВ, работающие на основе прикладных протоколов, которые используются различными программами. К таким протоколам в частности относится SQL – язык описания запросов к реляционным базам данных.
Несмотря на то, что существует достаточно большое количество методов и систем обнаружения несанкционированных действий в компьютерных сетях и операционных системах, перенос их на область баз данных в большинстве случаев оказывается невозможным. В первую очередь причина заключается в том, что действия, считающиеся вредоносными для баз данных, не всегда являются вредоносными для сети или операционной системы.
Согласно систематике СОВ, предложенной Стефаном Аксельсоном [3], выделяют три типа методов обнаружения вторжений: синтаксические методы, методы обнаружения аномалий и смешанные методы, представляющие собой композицию первых двух. К синтаксическим методам принято относить методы, базирующиеся на идее обнаружения вторжений путём сравнения SQL-запросов с шаблонами недопустимых синтаксических конструкций. Методы обнаружения аномалий, напротив, подразумевают создание шаблонов нормального поведения пользователя и последующее сравнение этих шаблонов с действиями, выполняемыми пользователями во время работы с БД.
В настоящее время большинство работ, связанных с СОВ, оценивающих адресованные к БД SQL-запросы, посвящено методам обнаружения аномалий. Предлагаемые подходы в зависимости от способа формирования и представления профиля нормального поведения можно разделить на следующие группы:
  • методы, при которых профиль формируется путём синтаксического анализа текста SQL запроса;
  • методы, при которых профиль нормального поведения определяется в результате семантического анализа SQL запроса;
  • методы, учитывающие различные характеристики запроса (лексические, темпоральные, ресурсные и др.).
Синтаксические методы
В 2003 году Фредрик Валер, Дарен Мутц и Джованни Вигна из Калифорнийского университета представили новый подход для защиты веб приложений [4]. В его основе которого лежит обучающаяся система обнаружения аномалий, использующая несколько способов обнаружения атак на БД, с которыми работают приложения. Обучение производится на базе записей из журналов приложения, которые хранят описание характерных для нормального поведения пользователя действий. Процесс обучения состоит из двух этапов. На первом этапе каждый SQL запрос, на котором производится обучение, проходит фазу синтаксического анализа, заключающуюся в разделении текста запроса на неизменную структуру (последовательность ключевых слов), называемую скелетом запроса, и изменяемые параметры (строки и числа, встречающиеся в тексте). Во время обучения для каждого различного вида скелета выполняется вычисление среднестатистических показателей соответствующих ему изменяемых параметров, и полученные результаты образуют множество профайлов скелетов. Второй этап обучения заключается в определении пороговых значений для правил, определяющих принадлежность запроса к множеству нормальных или аномальных запросов. Согласно результатам экспериментов, приведённых в [4], доля ложных срабатываний для описанного метода равна 0,35%.
В работах [5, 6] Ашиш Камра и Элиза Бертино предлагают использовать обучающуюся систему обнаружения аномалий, формирующую профили нормального поведения в виде набора шаблонов SQL запросов специального вида: каждый запрос представляется в виде вектора – квиплета (quiplet). Этот вектор содержит описание типа SQL-команды, множества отношений, к которым производится обращение при выполнении команды, и для каждого из этих отношений – множества используемых атрибутов. При работе системы все запросы к БД сначала передаются синтаксическому анализатору для преобразования текста SQL запроса в квиплет. Далее проверяется принадлежность полученного квиплета множеству квиплетов, признанных допустимыми для пользователя, от имени которого производился запрос. Оценка аномальности квиплета, а, следовательно, и запроса, выполняется на основе наивного байесовского классификатора. В результате проведения опыта было показано, что доля ложно положительных срабатываний для данного метода равна 17,1%, а вероятность пропуска аномального запроса – 2,4%.
Аналогичный разработке Ашиша Камры и Элизы Бертино подход был описан в 2008 году Коломыцевым и Носок [7]. В этой работе представлен похожий механизм обнаружения аномалий, использующий наивный байесовский классификатор, за тем лишь исключением, что вектора, формирующие профили нормально поведения, содержат более общее по сравнению с вышеописанным подходом описание структуры SQL-запроса.
Син Енг Ли, Вай Луп Лоу, Пей Йен Вонг и Питер Теох взяли за основу синтаксический анализ при разработке архитектуры фреймворка DIDAFIT [8, 9], который для выявление вторжений в базы данных использует «отпечатки» транзакций, получаемые в результате анализа нормальной работы системы. Набор шаблонов создаётся путём преобразования набора допустимых SQL запросов в набор регулярных выражений, соответствующих этим запросам. Для проверки допустимости выполнения последовательности запросов из одной транзакции предложено использовать специальный ориентированный граф, вершины которого представляют собой регулярные выражения допустимых SQL запросов, а дуги отражают возможность выполнения одного запроса после другого.
В работе [10] Кристина Ип Чун, Михаэль Герц и Карл Левит описали DEMIDS (Detection of Misuse in Database Systems) – систему обнаружения злоупотреблений в реляционных СУБД. DEMIDS использует журналы аудита для формирования профайлов, описывающих типичное поведение пользователей, работающих с БД. Авторы отмечают, что модели доступа пользователей (различные роли) обычно формируют несколько рабочих областей, включающих наборы атрибутов отношений, которые, как правило, связаны друг с другом с некоторой силой. Для описания доменной структуры базы данных и семантики отношений, а также формирования шаблонов нормального поведения в DEMIDS используется понятие меры связанности, которое определяет степень близости множества атрибутов относительно рабочих областей. Процесс обучения системы заключается в том, что при анализе журнала аудита для каждого SQL запроса, встречающегося в журнале, выполняется синтаксический разбор, в результате которого определяется множество атрибутов отношений, встречающихся в запросе. Для полученного множества атрибутов вычисляется мера связанности, и если полученное значение не превышает некоторый установленный порог, то запрос признаётся характерным для нормального поведения пользователя и включается в общую базу знаний. Работа системы в режиме обнаружения аномалий заключается в выполнении синтаксического разбора запроса и сравнении полученного вектора атрибутов с сформированным профилем.
В своей работе Александр Павлов [13] предлагает подход обнаружения аномальной активности в базе данных на основе использования искусственных иммунных систем с отрицательным отбором. Описанный в работе алгоритм отрицательного отбора учитывает синтаксические особенности SQL запросов и при обучении требует лишь наличия примеров допустимых запросов. Этап обучения заключается в выборе из случайно сгенерированного набора детекторов тех, для которых их применение к эталонным нормальным запросам не приводит к ложно положительным результатам. На этапе же обнаружения аномалий проверяется, соответствует ли предъявляемый SQL-запрос какому-нибудь из детекторов: если соответствует, то запрос признаётся аномальным. Для применения алгоритма отрицательного отбора производиться преобразование дерева синтаксического разбора запроса в вектор, атрибуты которого отражают различные характеристики структур запроса.
Семантические методы
В отличие от синтаксических методов в семантических методах акцент со структуры запроса переносится на его смысловую составляющую, то есть на то, какие данные и каким образом изменяются в результате выполнения запроса.
В 2005 году Адриан Спалка и Ян Ленхардт в [11] описали систему обнаружения аномалий в базе данных, которая в своей основе использует семантический анализ. Разработанная система работает не в режиме реального времени, когда анализ состояния базы данных производится непрерывно, а запускается по мере необходимости, например во время наименьшей загрузки СУБД. Наибольший акцент был сделан на разработку детектора аномалий в процессе роста базы данных, для создания которого было предложено два подхода. Первый подход подразумевает использовать при работе детектора аномалий информации об эталонных значениях атрибутов отношений, а второй – использование  отношений (дельта-отношений), которые хранят историю изменений значений в базе данных между двумя последовательными запусками системы обнаружения аномалий. К вычисляемым эталонным значениям относятся, например, общее количество записей в таблице, количество записей с не NULL значением для указанного поля в таблице, максимальные и минимальные значения, количество записей, у которых строковое поле имеет значение не нулевой длины. Сам же процесс выявления аномалий заключается в сравнении эталонных значений в разные моменты времени. Если эталонные значения для двух последовательных вызовов системы обнаружения аномалий (СОА) значительно отличаются, то это случит сигналом о возможных аномалиях в действиях, которые были выполнены за период между запусками СОА.
В сентябре 2010 года Суну Мэтью, Михали Петропулос, Хунг Нго и Шамбху Ападхая предложили подход [12] обнаружения аномалий в поведении пользователя, ориентированный на данные, к которым производится обращение во время работы с БД. В своей работе исследователи придерживаются идеи, что наилучший способ различить нормальное поведение и аномальное – это рассмотрение в первую очередь того, к каким данным пытается получить доступ пользователь, а уже во вторую очередь – каким образом он пытается это сделать. Профайлы пользователей строятся путём вычисления для каждого запроса специального вектора, который состоит из статистических характеристик набора записей, попавших в результат выполнения запроса. Все запросы пользователя можно представить как некоторый кластер, основные характеристики которого описываются формируемыми статическими векторами. Таким образом, одним из инструментов обнаружения аномалий авторы предлагают кластерный анализ: если статистический вектор, построенный для результата выполнения запроса, относится к кластеру «нормальных» статистических векторов, то запрос признаётся нормальным, иначе запрос считает аномальным. В работе было показано, что подобный подход позволяет более эффективно, нежели синтаксические методы, обнаруживать некоторые классы атак, к числу которых, например, можно отнести атаки типа “сбор данных” (data harvesting). Однако на сегодняшний момент данное направление не достаточно изучено, а конкретные методы рассматривают лишь статистические характеристики результатов выполнения запросов и не учитывают возможные взаимосвязи в выбираемых запросом данных.
В таблице 1 представлены описанные в статье методы.

Таблица 1. Методы обнаружения аномалий в SQL-запросах к базам данных

Название метода / авторы метода

Способ формирования профайла

Структура профайла

Механизм принятия решений

Фредрик Валер, Дарен Мутц, Джованни Вигна

Синтаксический анализ запроса

Шаблоны запросов, статистические характеристики параметров запросов.

Баесовский классификатор

Ашиш Карма, Элиза Бернито

c-, m-, f-квиплеты

Михаил Коломыцев, Светлана Носок

c-квиплеты

DIDAFIT

Син Енг Ли, Вай Луп Лоу, Пей Йен Вонг, Питер Теох

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

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

DEMIDS

Кристина Ип Чун, Михаэль Герц, Карл Левит

Шаблоны векторов типичных запросов.

Сопоставление запроса и сформированного набора шаблонов.

Метод на основе искусственных иммунных систем с отрицательным отбором.
Александр Павлов

Набор детекторов, покрывающий множество аномальных запросов

Если хотя бы один детектор даст положительный результат, то запрос признаётся аномальным.

Адриан Спалка, Ян Ленхардт

Семантический анализ запроса

Эталонные значения для атрибутов отношений; дельта отношения.

Статистические функции, оценивающие отклонение от эталона.

Суну Мэтью, Михалис Петропулос, Хунг Гно

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

Кластеризация

Оценка отклонения значений атрибутов результата выполнения запроса от эталонных значений.

Литература:
  1. Anderson, James P., Computer Security Threat Monitoring and Surveillance. Technical report, James P. Anderson Company, Fort Washington, Pennsylvania, April 1980

  2. Denning, Dorothy E., "An Intrusion Detection Model, " Proceedings of the Seventh IEEE Symposium on Security and Privacy, May 1986, pages 119—131

  3. Stefan Axelsson. Intrusion detection systems: a survey and taxonomy. Technical Report 99-15, Chalmers Univ., March 2000.

  4. Fredrik Valeur, Darren Mutz, and Giovanni Vigna, A Learning-Based Approach to the Detection of SQL Attacks. Conference on Detection of Intrusions and Malware and Vulnerability Assessment (DIMVA), 2005.
  5. Ashish Kamra, Evimaria Terzi, Elisa Bertino, Detecting Anomalous Access Patterns in Relational Databases

  6. Ashish Kamra, Mechanisms for Database Intrusion Detection and Response

  7. Коломыцев М., Носок С., Аудит аномального поведения пользователей баз данных. Правовое, нормативное и метрологическое обеспечение системы защиты информации в Украине. Научно-технический сборник.
  8. Sin Yeung Lee, Wai Lup Low and Pei Yuen Wong, Learning Fingerprints for a Database Intrusion Detection System. COMPUTER SECURITY — ESORICS 2002. Lecture Notes in Computer Science, 2002, Volume 2502/2002, 264-279.

  9. Wai Lup Low, Joseph Lee, Peter Teoh, DIDAFIT: Detecting intrusions in databases through fingerprinting transactions. International Conference on Enterprise Information Systems, 2002

  10. Christina Yip Chung, Michael Gertz, Karl Levitt. DEMIDS: A Misuse Detection System for Database Systems

  11. A. Spalka and J. Lehnhardt. A comprehensive approach to anomaly detection in relational databases. In DBSec, pages 207–221, 2005.
  12. Sunu Mathew, Michalis Petropoulos, Hung Q. Ngo, and Shambhu Upadhyaya, A Data-Centric Approach to Insider Attack Detection in Database Systems. Recent Advances in Intrusion Detection: 13th International Symposium, RAID, 2010, pp. 382-401

  13. Павлов А.В. Обнаружение аномальной активности в реляционных базах данных на основе искусственных иммунных систем с отрицательным отбором. // Научно-технический вестник Поволжья. №1 2011 г. - Казань: Научно-технический вестник Поволжья, 2011. - с. 166-168

Обсуждение

Социальные комментарии Cackle