Полная версия

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

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ   >>

Проблема работы

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

Проблема безопасности данных в информационной системе возникла с появлением самих систем. По мере внедрения компьютерных систем управления в важных для общества областях деятельности проблема приобретает всё большую значимость. Рост доступности пользовательских сервисов информационных систем через Интернет и локальные сети порождает новые проблемы, связанные с обеспечением безопасности (т. е., доступности, целостности и конфиденциальности [15]) данных от вторжений извне.

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

Предоставление удалённого доступа к информации, заказу и оплате услуг и ряду других сервисов в подавляющем большинстве случаев происходит через веб-приложения. Под веб-приложением понимается приложение, работающее в составе веб-сервера. Веб-приложение взаимодействует с пользователями через веб-интерфейс, представляющий собой совокупность интерактивных веб-страниц, доступ к которым осуществляется через веб-браузер пользователя. Доля уязвимостей веб-приложений в общем количестве фиксируемых уязвимостей значительна (около 69% в период с января по июнь 2006-го года) [16], а большое количество доступных удалённо веб-серверов и работающих на них веб-приложений создаёт благодатную почву для злоумышленников [1, 2, 3].

Программное обеспечение, использующееся в инфраструктуре веб-приложения (веб-сервер, СУБД и т. п.), обычно создаётся компетентными в вопросах безопасности специалистами и является хорошо защищённым. Но веб-приложения в ряде случаев разрабатывается специалистами, не владеющими аналогичными навыками или плохо понимающими значимость защищённости системы [3]. Результатом разработки становится слабо защищённое веб-приложение, доступное каждому пользователю сети Интернет. Уязвимость в таком приложении может привести к краже или порче данных, содержащихся в других объектах инфраструктуры, например, базе данных. И противостоять этому не может даже то, что сама СУБД спроектирована правильно и устойчива к действиям злоумышленников [3].

Под поведением далее будет пониматься взаимодействие веб-приложения с объектами окружения (ресурсы операционной системы, СУБД, почтовые сервисы) в ответ на HTTP-запросы от клиента.

Слабая защищённость и широкая распространённость веб-приложений делает их привлекательными целями для взломщиков. Существующие системы обеспечения безопасности часто неэффективны при защите приложений данного класса [2]. Можно перечислить следующие основные виды систем, используемых для обеспечения безопасности веб-приложения [3, 12, 14, 17]:

  • · Модули обеспечения безопасности, встроенные в приложение
  • · «Стратегия песочницы» (sandboxing)
  • · Системы обнаружения уязвимостей
  • · Межсетевые экраны уровня приложения
  • · Системы предотвращения атак
  • · Системы обнаружения атак

Как упоминалось выше, разработчики веб-приложений не всегда уделяют достаточно внимания обеспечению безопасности, и модули обеспечения безопасности в веб-приложениях встречаются редко [2].

Суть «стратегии песочницы» (sandboxing) заключается в создании контролируемой среды исполнения веб-приложения, изолированной от системы, в котором она работает. Это позволяет минимизировать потери в случае, если уязвимость приложения будет использована злоумышленником, но не позволяет обнаружить и локализовать сами уязвимости [11].

Системы обнаружения уязвимостей анализируют веб-приложения, используя метод белого или чёрного ящика [12, 13, 14, 19]. Система, использующая метод белого ящика, анализирует исходные коды и/или файлы конфигурации веб-приложения. Система выявляет участки кода, потенциально содержащие уязвимость или небезопасные параметры конфигурации [12]. Система, использующая метод чёрного ящика, осуществляет поиск уязвимостей «извне», посылая приложению HTTP-запросы и анализируя ответы. При этом встают задачи выявления структуры веб-приложения, определения типа сервера и построения тестового набора HTTP-запросов и последующего анализа HTTP-ответов [14]. Однако анализа исходного кода приложения может быть недостаточно для выявления всех уязвимостей, так как код может не содержать уязвимых с точки зрения языка конструкций и при этом быть уязвимым в целом из-за ошибок при проектировании. Кроме того, для той технологии, при помощи которой создано данное веб-приложение, может не оказаться систем поиска уязвимостей, использующих метод белого ящика. Анализ безопасности методом чёрного ящика также не может выявить все возможные уязвимости, так как нет гарантии, что множество тестовых запросов содержит все необходимые для этого варианты.

Межсетевые экраны уровня приложения обеспечивают безопасность веб-приложений, анализируя HTTP-запросы от клиента и HTTP-ответы приложения [18]. При этом производится поиск аномалий с точки зрения протокола (несовпадение контрольных сумм, неверная структура заголовка и т. д.), совпадения с известными сигнатурами атак или отклонения текущей модели трафика от нормальной. Однако при этом внимание уделяется запросам и ответам, но не поведению веб-приложения, чего не всегда достаточно для обнаружения уязвимости самого приложения [19].

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

Системы обнаружения атак (СОА) используют методы, которые принято относить к двум основным категориям: методы обнаружения злоупотреблений (сигнатурные методы) и методы обнаружения аномалий [6].

Методы обнаружения злоупотреблений используют сигнатуры известных атак. Основным их минусом является неспособность обнаруживать новые или неизвестные виды атак. Этот минус существенно снижает применимость СОА, основанных на сигнатурных методах [3]. Веб-приложения часто имеют специфичную для данного сервиса функциональность, что делает сигнатуры атак, созданные для одного приложения, практически неприменимыми для другого [3].

Методы обнаружения аномалий используют определённый заранее профиль нормального поведения системы и анализируют текущее поведение системы на предмет отклонения от профиля. Методы данной группы хорошо справляются с обнаружением новых или неизвестных атак. Эта особенность делает их предпочтительными для реализации в СОА и других средствах обеспечения безопасности для веб-приложений [1, 7].

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

Логичное решение о включении подсистемы обнаружения аномалий в сам веб-сервер хорошо тем, что позволяет анализировать запрос на разных стадиях его обработки. Минусом является существенное снижение производительности веб-сервера, что неприемлимо для серверов с высокой нагрузкой. Кроме того, не каждый веб-сервер позволяет включать дополнительные модули [2].

Обнаружение аномалий может быть использовано при обработке параметров, поступающих в веб-приложение. Например, некоторая характеристика (статистическое распределение символов, длина строки и т. п.) в значениях параметров, извлекаемых из журналов аудита веб-сервера, обрабатывается математической моделью и обнаруженное отклонение проверяется относительно некоторого порогового значения [2]. Решения такого рода предназначены для выявления аномалий в поступающих данных, так как логично предположить, что злоумышленник будет отсылать веб-приложению нестандартные данные. Но при этом анализируются поступающие параметры, но не поведение самого веб-приложения.

Другим подходом является выявление аномалий в обращениях веб-приложений к объектам окружения (операционная система, СУБД и т. п.). Например, для веб-приложения строятся профили, содержащие типичную синтаксическую структуру запросов к БД, и последующие запросы проверяются на соответствие профилям [3]. Решения такого рода хороши тем, что в определённом смысле они анализируют поведение самого приложения. Но такие методы фокусируются на взаимодействии приложения с конкретными видами объектов окружения (например, СУБД) и не учитывают взаимодействие с другими объектами, а уязвимость в веб-приложении, обычно обращающемуся к одному ресурсу, может привести к несанкционированному доступу именно к другим ресурсам. Например, если некоторый модуль веб-приложения в процессе работы производит только системные вызовы операционной системы для работы с файлами, но при этом содержит уязвимость, позволяющую злоумышленнику запускать произвольный код, то результатом может стать модификация таблицы базы данных, содержащей пароли пользователей, с целью получения доступа - то есть обращение к другому ресурсу и порча информации. Комплексное решение, анализирующее обращения веб-приложения к разным объектам окружения является достаточно сложной технической задачей, так как встаёт вопрос о получении необходимой для анализа информации об обращениях, что, например, может потребовать модификацию программных компонент объектов [3].

В рамках курсовой работы за 4-й курс был предложен метод обнаружения уязвимостей веб-приложений на основе контроля поведения. Метод предполагает использование профилей нормального поведения для отдельных компонент веб-приложения. Профиль определяет, к каким операциям какого объекта окружения допустимо обращение компоненты при данном наборе параметров, полученных из запроса.

Метод был реализован в виде модуля к СОА «Мониторинг-РВС». Как было отмечено, анализ обращений к различным объектам окружения является сложной технической задачей, а для успешной реализации СОА должна предоставлять необходимый инструментарий. Развитая инфраструктура СОА «Мониторинг-РВС» позволяет решать поставленную задачу [9].

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

Для этого необходимо рассмотреть существующие методы автоматического построения профилей нормального поведения, определить критерии сравнения методов и выбрать оптимальный для дальнейшей реализации. Модуль осуществляет обнаружение уязвимостей путём выявления обращений к тем ресурсам, которые не указаны в профиле нормального поведения, в ответ на HTTP-запросы. Однако аномалии в поведении могут быть связаны и с характером обращения к разрешённому профилем ресурсу, например, уязвимость может позволить злоумышленнику выбрать не одну строку из БД, а все. В основе метода автоматического построения профиля нормального поведения лежит некоторая математическая модель, и именно она определяет набор хранимых в профиле данных и анализ на предмет отклонения текущего поведения от описанного в профиле. Таким образом, выбирается оптимальный для данной задачи математический аппарат обнаружения аномалий и формат профилей изменяется таким образом, чтобы он позволял хранить данные, необходимые для анализа. Далее в модуль добавляется функция «обучения», которая позволит автоматически строить профиль нормального поведения и заносить в него данные по окончанию учебного периода.

Результатом работы является модуль обнаружения уязвимостей веб-приложений для СОА «Мониторинг-РВС» на основе контроля поведения с возможностью ручного и автоматического определения профиля нормального поведения.

приложение уязвимость аномалия метод

 
Перейти к загрузке файла
<<   СОДЕРЖАНИЕ   >>