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

Григоров А. С. Использование апостериорного анализа данных для обнаружения аномалий в SQL-запросах к базам данных // Молодой ученый. — 2011. — №11. Т.1. — С. 38-40.

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

Одним из распространённых и часто используемых компонентов информационных систем являются реляционные базы данных, осуществляющие хранение и обработку информации. Современные системы управления базами данных (СУБД) поддерживают возможность настройки безопасности реляционных баз данных (БД) средствами языка SQL, в частности операторами определения доступа к данным (Data Control Language, DCL). Однако разграничение прав средствами DCL не является полным решение задачи защиты данных. Во-первых, отсутствует возможность противодействия злоумышленному воздействию легитимных пользователей. Во-вторых, DCL не имеет механизмов, обеспечивающих устойчивость к появлению новых видов атак. В-третьих, что не маловажно, DCL контролирует доступ лишь к структурным единицам базы данных (таблицам, представлениям, хранимым процедурам и др.) и не позволяет осуществить разделение прав доступа к данным, например, хранимым в рамках одной таблицы.

В качестве решения, устраняющего описанные ограничения DCL, могут использоваться специализированные системы обнаружения вторжений (СОВ), основной задачей которых является выявление действий, способных нарушить конфиденциальность, целостность и доступность хранимой информации. Развитие систем обнаружения вторжений берёт своё начало с работ Джеймса Андерсона [1], предложившего в 1980 году для улучшения механизмов защиты информации использовать данные о поведении пользователей, которые можно получить путём наблюдения за информационной системой. Основываясь на идеях Андерсона, в период с 1984 по 1986 года Дороти Деннинг совместно с Питером Нейманом разработали первую модель СОВ [2], ставшую основой для большинства современных систем.

Система обнаружения вторжений состоит из трёх основных элементов. Во-первых, это сенсорная подсистема, занимающаяся сбором информации о состоянии защищаемой системы. Второй подсистемой является подсистема анализа, которая занимается анализом данных, собранных сенсорной подсистемой. И, наконец, третьим элементом является формирователь ответа – подсистема, отвечающая за поведение СОВ, в случае возможного обнаружения вторжения. В зависимости от того, как СОВ реагирует на обнаружение вторжения, выделяют пассивные СОВ и активные СОВ. В первом случае информация о нарушении записывается в журнал приложения, или отправляется сообщение администратору. Во втором случае применяются активные действия, например, СОВ блокирует доступ к системе пользователя, действия которого квалифицированы как запрещённые.

Изначально первые СОВ разрабатывались для защиты он несанкционированных действий в компьютерных сетях и операционных системах, однако со временем были созданы системы, работающие на уровне прикладных протоколов, например, таких как язык SQL, и интегрирующиеся со специализированным программным обеспечением, например, с СУБД.

Методы выявления вторжений, применяющиеся в СОВ, можно разделить на два класса: сигнатурные и основанные на обнаружении аномалий. Сигнатурные методы осуществляют детектирование несанкционированных действий путём сравнения различных характеристик системы с сигнатурами известных атак. Методы, основанные на обнаружении аномалий, напротив, производят сравнение действий пользователя с эталонным поведением, и если поведение пользователя отклоняется от эталонного, то это может служить сигналом о том, что пользователь выполняет нехарактерные для себя действия, и, следовательно, на эти действия следует обратить внимание.

Среди методов обнаружения вторжений в базы данных наибольшее распространение получили методы, базирующиеся на детектировании аномалий. Причём большинство подобных методов в той или иной форме выполняет оценку адресованного к базе данных SQL запроса до его непосредственного выполнения. Предлагаемые подходы заключаются в попытке определить аномальность SQL запроса на основе синтаксической [3, 4, 5, 6] или семантической [7] оценки структуры текста запроса. Процесс работы СОВ, использующих подобные методы, представлен на рисунке 1.

Рис. 1 – Оценка SQL запроса до его выполнения

При поступлении очередного SQL запроса к базе данных сенсорная подсистема СОВ производит перехват запроса и направляет его на исследование в подсистему синтаксического и/или семантического анализа. Произведя разбор запроса и сравнив его структуру с эталонными значениями, система принимает решение о том, является данных запрос аномальными или нет. Если запрос признаётся аномальными, то его дальнейшая судьба зависит от настроек СОВ: либо запрос отклоняется и не передаётся СУБД для выполнения, либо же запрос всё-таки передаётся СУБД, однако сам факт выполнения аномального запроса сообщается администратору системы.

При описанном подходе рассматривается статическая модель запроса, не зависящая от текущего состояния базы данных и хранящихся данных. Ориентация методов на оценку только текста SQL запроса делает анализ выполняемых пользователем действий однобоким. Действительно, при анализе текста запроса учитывается в первую очередь то, каким образом пользователь обращается к базе данных. Однако не менее важным аспектом является то, за какими именно данными пользователь делает запрос. Иначе говоря, синтаксический анализ подразумевает рассмотрения запроса как средства обращения к БД, но в то же время зачастую более полную картину, описывающую поведение пользователя, можно представить, зная цель выполнения того или иного запроса. Определить по тексту запроса то, какие данные будут возвращены СУБД, без информации о хранимых данных практически невозможно. Однако если рассматривать запрос уже после его выполнения, то цель запроса становится известной – СУБД возвратит данные, удовлетворяющие запросу, таким образом можно точно сказать, какие данные желает получить пользователь. Имея информацию о том, какой результат был получен при выполнении запроса, можно провести анализ запроса более полно, нежели анализ на основе информации только о тексте запроса. Следует отметить, что осуществление анализа запроса уже после его выполнения не является преградой для обеспечения предотвращения утечки данных. Действительно, если анализ результата выполнения запроса покажет, что запрос является аномальным, то СОВ может запретить передачу результата запроса пользователю. На рисунке 2 представлен процесс работы СОВ, в который был добавлен шаг оценки результата выполнения запроса.

Рис. 2 – Оценка SQL запроса «до» и «после» его выполнения

Идеи использования информации о результате выполнения SQL запроса для осуществления более точной оценки аномальности запроса в последние годы были предложены сразу в ряде работ [7, 8, 9]. Причём в [8] было показано, что такой подход позволяет более эффективно, нежели методы, осуществляющие детектирование на основе синтаксических свойств SQL-запроса, обнаруживать некоторые классы атак, к которым, например, можно отнести атаки «сбора данных» (data harvesting). Однако следует отметить, что на сегодняшний день данное направление изучено слабо и отражено лишь в нескольких работах. Так в [8] предлагается использовать для оценки результата выполнения запроса статистические данные о результатах выполнения запросов, полученные при обучении системы на запросах, характерных для нормального поведения пользователя. В работах [9, 10] рассматриваются методы обнаружения аномалий в SQL запросе на основе оценки внутренней структуры результата выполнения запроса. Основная идея данных методов заключается в том, что данные, хранимые в таблицах, взаимосвязаны между собой: так некоторые записи из таблиц БД могут одновременно попадать в результат выполнения некоторого запроса, а некоторые записи при нормальной работе пользователя никогда не должны появляться в одном результирующем множестве. Таким образом, оценка результата выполнения запроса сводится к определению, состоит ли результирующее множество из записей, совместное появление которых в результате выполнения «нормального» запроса ожидаемо, или же встречается большое количество записей, совместное появление которых является маловероятным. Последний случай может служить сигналом о возможных аномалиях в выполненном запросе, ведь в результате выполнения запроса пользователь получит данные, получение которых не характерно для его повседневной работы.

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

Литература:
  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. Valeur F., Mutz D., Vigna G. A Learning-Based Approach to the Detection of SQL Attacks // Conference on Detection of Intrusions and Malware and Vulnerability Assessment (DIMVA), 2005.

  4. Павлов А.В. Обнаружение аномальной активности в реляционных базах данных на основе искусственных иммунных систем с отрицательным отбором. // Научно-технический вестник Поволжья. №1 2011 г. - Казань: Научно-технический вестник Поволжья, 2011. - с. 166-168.
  5. Bertino E., Kamra A., Terzi E., Vakali A., Intrusion Detection in RBAC-administered Databases // ACSAC '05 Proceedings of the 21st Annual Computer Security Applications Conference, 2005 – P. 170-182.

  6. Lee S.Y., Low W.L., Wong P.Y., Learning Fingerprints for a Database Intrusion Detection System // COMPUTER SECURITY — ESORICS 2002. Lecture Notes in Computer Science, 2002, Volume 2502/2002 – P. 264-279.
  7. A. Spalka and J. Lehnhardt. A comprehensive approach to anomaly detection in rela-tional databases. In DBSec, pages 207–221, 2005.

  8. Mathew S., Petropoulos M., Hung Q. Ngo, Shambhu Upadhyaya. A Data-Centric Approach to Insider Attack Detection in Database Systems // Recent Advances in Intrusion Detection: 13th International Symposium, RAID, 2010 – P. 382-401.

  9. Григоров А.С. Обнаружение аномалий запросов к базе данных методом определения уровня связанности результата выполнения запроса // Вузовская наука – региону. Материалы 8-й всеросс. научно-техн. конф. – Вологда: ВоГТУ, 2010.
  10. Григоров А.С. Метод обнаружения аномалий запросов к базе данных на основе кластеризации результата выполнения запросов // Материалы всероссийской научно-практической конференции «Череповецкие научные чтения - 2010» - Череповец: ГОУ ВПО ЧГУ, 2010.

Обсуждение

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