Использование значений операций для более точного обнаружения отклонений в поведении - Автоматическое построение профилей нормального поведения веб-приложений

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

Можно привести следующий пример. Уязвимость в файле modules. php распространенного веб-приложения CMS PHP-Nuke v 7.5 позволяет провести атаку типа класса SQL injection [3]. При атаках этого класса злоумышленник заставляет веб-приложение выдать СУБД измененный или модифицированный запрос. Атаки класса SQL injection являются как распространенными, так и особенно опасными в связи с тем, что могут потенциально приводить к потере всех данных в базе данных. Не менее опасными представляются кража или подмена данных в базе данных. Уязвимости, позволяющие проведение атак класса SQL injection, обычно связаны с недостаточной проверкой и очисткой вводимых пользователем данных при динамическом формировании SQL-запроса с использованием этих данных.

Уязвимость позволяет получить список всех пользователей системы. Исходный запрос используется для получения информации о используемой пользовательской записи. Атака реализуется следующим образом:

    1-й POST-параметр: name=Your_Account 2-й POST-параметр: op=userinfo 3-й POST-параметр: username=' OR username LIKE '%'; --

Результирующий SQL-запрос:

SELECT uname FROM nuke_session WHERE uname='' OR username LIKE '%'; --'

Таким образом, с точки зрения описанного метода в ходе атаки веб-приложение совершит допустимую операцию "SELECT" над объектом окружения "сервер MySQL". Аномалия будет заключаться в изменении значения операции. При обычном функционировании значение данной операции будет равно 1, в то время как в результате проведения атаки значение операции будет равно количеству строк в таблице nuke_session.

Можно привести также следующий пример уязвимости, приводящий к атаке класса SQL injection [3]. В ходе выполнения скрипта выполняется запрос, показывающий пользователю список его кредитных карт. В результате атаки злоумышленник может получить список кредитных карт интересующего его пользователя. Атака реализуется следующим образом:

    1-й POST-параметр: user=Bob 2-й POST-параметр: card_type=' OR user='Alice

Результирующий SQL-запрос:

SELECT card_id FROM creditcards WHERE user='Bob' AND type='' OR user='Alice'

Таким образом, с точки зрения описанного метода в ходе атаки веб-приложение совершит допустимую операцию "SELECT" над объектом окружения "сервер MySQL". Аномалия будет заключаться в изменении значения операции. При обычном функционировании значение данной операции будет равно количеству кредитных карт пользователя Bob, информация о которых содержится в таблице creditcards, в то время как в результате проведения атаки значение операции будет равно совокупному количеству кредитных карт пользователей Bob и Alice.

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

Похожие статьи




Использование значений операций для более точного обнаружения отклонений в поведении - Автоматическое построение профилей нормального поведения веб-приложений

Предыдущая | Следующая