Безопасность Web-приложений уже не первый год является важным элементом защиты информационных систем. Учитывая тенденцию к переносу стандартных клиент-сервеных приложений в Web-среду, растущую популярность технологий AJAX и других элементов Web 2.0 можно констатировать, что с течением времени актуальность защиты онлайн-приложений только растет.
Сергей Гордейчик,
Руководитель отдела консалтинга и аудита Positive Technologies,
gordey@ptsecurity.ru
Статья опубликована в журнале «Защита информации. Инсайд»
Безопасность Web-приложений уже не первый год является важным элементом защиты информационных систем. Учитывая тенденцию к переносу стандартных клиент-сервеных приложений в Web-среду, растущую популярность технологий AJAX и других элементов Web 2.0 можно констатировать, что с течением времени актуальность защиты онлайн-приложений только растет.
Наличие статистики дает возможность прогнозировать риски связанные с использованием информационных систем и обосновывать выбор контрмер. К сожалению, получить достоверную количественную оценку объема ошибок, а уж тем более – вероятности их эксплуатации достаточно трудно. В данной статье приведен обзор некоторых источников, позволяющих получить статистические данные об уязвимостях и атаках на Web-приложения.
Ответить на вопрос о вероятности обнаружения той или иной проблемы можно с помощью информации из справочников (баз данных) уязвимостей. На сегодняшний день признанным отраслевым стандартом в этой области является список Common Vulnerabilities and Exposures (CVE) [1]. Однако непосредственно сам список слабо упорядочен и требует серьезной аналитической работы для получения полезных статистически результатов.
Ежегодно аналитиками Mitre проводится анализ информации в базе данных и публикуется отчет [2] о распределении уязвимостей по различным критериям. Согласно отчету более четверти проблем, обнаруженных в 2006 году, приходится на недостатки безопасности Web-приложений.
Аналогичную информацию публикуют и другие базы данных уязвимостей. По информации портала SecurityLab.ru, около 40% всех обнаруженных в 2007 уязвимостей приходится на Web-приложения (см. рис. 1).
Рис. 1 Распределение уязвимостей по типу приложений в 2007 году
Несмотря на то, что информация из баз данных уязвимостей достаточно интересна с теоретической точки зрения, она мало подходит для практического использования в рассматриваемом контексте. Это связанно с тем, что в базы данных попадает информация о широко распространенных приложениях, чье внедрение носит массовых характер. Что касается Web-приложений, то зачастую они создаются под конкретную задачу и могут быть развернуты только в одной сети или в единственном экземпляре. В последнее время наметилась тенденция публикации в базах данных информации не только об популярных Web-приложениях, но и в часто используемых on-line сервисах. Например – в общедоступных системах электронной почты, поисковых системах, социальных сетях и т.д. Однако пока это больше исключение, чем правило. Таким образом, ответить на вопрос «Насколько вероятно обнаружение уязвимости в Web-приложении» с помощью баз данных уязвимостей невозможно.
Существуют и другие подходы, например, использование в качестве исходной информации результатов работ по анализу и оценке защищенности Web-приложений. Как правило, это метод используется консалтинговыми компаниями, имеющими большой опыт в области безопасности приложений.
В качестве примера подобных отчетов можно привести ежегодный отчет «Статистика уязвимости Web-приложений» компании Positive Technologies (PT) [4] и ежеквартальное обозрение «Website Security Statistics Report» компании WhiteHat Security (WH) [5]. Оба отчета имеют сходную структуру и содержат статистику уязвимостей Web-приложений, полученную в ходе работ по тестированию на проникновение, аудита безопасности и др. Для получения данных использовались различные подходы, от сканирования Web-приложений с помощью сканеров с последующей проверкой результатов до тестирования методом "белого ящика", включающего также частичный анализ исходного кода.
Оба отчета используют классификацию уязвимостей Web Application Security Consortium Web Security Threat Classification [6]. В этом документе собраны воедино и организованы различные угрозы безопасности Web-приложений. Проект является попытки разработки и популяризации стандартной терминологии описания проблем безопасности в Web-приложениях. Распространенные уязвимости Web-приложений организованны в структурированный список, состоящий из шести классов, каждый из которых содержит несколько типов уязвимостей и атак. В настоящее время готовится к публикации вторая редакция классификации, содержащая девять классов угроз. Оба отчета используют элементы Web Security Threat Classification version 2 для описания таких проблем как «Расщепление HTTP-ответа» (HTTP Response Splitting) и «Подделка HTTP-запроса» (Cross-Site Request Forgery).
Интересно, что данные отчеты близки не только по структуре, но и по результатам. Так, наиболее распространенной уязвимостью оба источника признают «Межсайтовое выполнение сценариев» (Cross-Site Scripting, XSS). Эта уязвимость была обнаружена в 74% всех сайтов по версии Positive Technologies (см. рис. 2) и в 65 случаях из 100 (см. рис. 3) у клиентов WhiteHat Security.
Наиболее распространенной уязвимостью высокой степенью риска обе компании признают «Внедрение операторов SQL» (SQL Injection) вероятность обнаружения которой составляет 31% - PT и 16% - WH. Меньшая вероятность обнаружения проблем различных типов в трактовке WhiteHat Security вполне объяснима большей зрелостью западного рынка и использованием результатов повторных проверок приложений одного и того же клиента. К сожалению, большинство российских владельцев Web-приложений находится на этапе становления процесса управления информационной безопасностью.
В некоторых пунктах, например по количеству уязвимостей типа «Утечка информации» (Information Leakage) отчеты достаточно серьезно расходятся (90% - PT и 40% - WH). Это связанно с тем, что WhiteHat Security включает в отчет только уязвимости, имеющие «критичный», «неотложный» и «высокий» уровень риска, в то время как Positive Technologies задействует все найденные недочеты.
Рис. 2 Вероятность обнаружения уязвимостей различного типа (Positive Technologies)
Рис. 3 Вероятность обнаружения уязвимостей различного типа (WhiteHat Security)
Вопрос классификации степени риска, связанного с уязвимостями приложений является важной темой. В настоящий момент существует множество методик оценки опасности уязвимости, но наиболее распространены следующие подходы:
Не касаясь достоинств или недостатков каждого из методов можно выделить следующие особенности, которые могут влиять на достоверность оценки:
В различных приложениях уязвимости одного типа могут иметь различную степень риска. Так, уязвимость «Подделка HTTP-запроса» может не представлять угрозы для типичного репрезентативного сайта или поисковой машины, и наоборот – классифицироваться как проблема высокой степени риска в Web-интерфейсе электронной почты или платежной системы. В результате утечки информации злоумышленник может получить доступ к журналам работы приложения (низкая или средняя степень риска), а может загрузить резервную копию исходных текстов сайта (высокая степень риска).
Конфигурация конкретной системы также может оказывать серьезное влияние на степень риска. Так, уязвимость «Внедрение операторов SQL» обычно классифицируют как имеющую высокую опасность. Однако в случае если Web-приложение работает с сервером СУБД с ограниченными привилегиями, она может быть отнесена к проблемам средней или низкой степени риска. В другой инсталляции или реализации приложения эта же уязвимость может быть использована для получения доступа к операционной системе с правами суперпользователя, что естественно делает её наиболее критичной.
В зависимости от метода у глубины анализа степень одна и та же уязвимость может быть оценена по-разному. Если взять приведенный выше пример «Внедрения операторов SQL», использование сетевого сканера позволит только констатировать наличие проблемы. Для определения привилегий, доступных потенциальному злоумышленнику требуется либо попытаться использовать ошибку, либо уточнить порядок взаимодействия между Web-приложением и СУБД методом «белого ящика».
Каждый из приведенных методов оценки использует свои подходы для учета обозначенных обстоятельств. Это может быть абстрактное «экспертное мнение» в «светофорной» оценке или весовые коэффициенты в CVSS, но в любом случае – метод и глубина анализа оказывают серьезное влияние на оценку рисков. Это обстоятельство необходимо принимать внимание при работе с отчетами и статистическими данными.
Проблема объединения данных из нескольких источников, использующих различные методы анализа и подходы к оценке степени риска, сказалась на актуальности проекта Web Application Security Statistics Project международной группы Web Application Security Consortium [9]. Изначально данные для этого проекта предоставлялись компаниями Cenzic, Positive Technologies, SPI Dynamics и WhiteHat Security использующими схожие подходы к анализу защищенности систем. Однако при попытке привлечения большего количества участников для формирования отчета за 2007 год, инициативная группа проекта столкнулась с невозможностью объединения некоторых результатов. Это привело к тому, что данные за 2007 год пока не были опубликованы, и вероятно не будут доступны раньше второго полугодия 2008 года.
В любом случае Web Application Security Statistics Project является одним из наиболее масштабных проектов в отрасли, и включает в себя результаты анализа 31373 приложений, что составляет около 0,03% всех сайтов в сети Интернет в 2006 году. Остается надеяться, что работы над проектом будет продолжены.
Примечание. Статистика WASC за 2007 год была опубликована уже после выхода статьи (http://www.securitylab.ru/analytics/359068.php, http://webappsec.org/projects/statistics/).
Однако вероятность обнаружения уязвимости не является вероятностью реализации угрозы (атаки), которая требуется в классической модели оценки рисков. Получить реальные данные об инцидентах достаточно сложно. В основном используются два подхода: регистрация информации об инцидентах и протоколирование попыток с помощью технологии honeypot или антивирусного сканирования.
В качестве интересных примеров первого типа можно привести портал Zone-H [10] и проект Web Hacking Incidents Database [11]. Портал Zone-H регистрирует последствия компрометации Web-приложений. Как правило, информацию в архив заносят сами злоумышленники. Этим определяется и наполнение архива, содержащего в основном информацию об атаках «взломать хоть что-нибудь».
База данных Web Hacking Incidents Database пополняется на основе информации, доступной в средствах массовой информации. В связи с этим технические детали, как правило, отсутствуют либо недостаточно конкретны, однако объекты успешных атак весьма и весьма внушительны. Зачастую в информации об инциденте имеется информация, позволяющая оценить последствия атаки.
Примерами использования технологии honeypot для определения наиболее вероятных методов атак представлены в публикациях Internet Security Threat Report компании Symantec и отчетах проекта «Distributed Open Proxy Honyepot».
Существующие на настоящий момент открытые источники дают достаточную базу для проведения оценки риска, связанного с уязвимостями в Web-приложениях. Разные источники используют различные данные и методы их интерпретации. В связи с этим важно выбирать наиболее подходящий для решения конкретных задач инструмент. Благо, на настоящий момент в них нет недостатка.
Естественно, не стоит забывать, что уязвимости Web-приложений, это не только технические проблемы прикладной части. Громкие инциденты зачастую связаны с кражей паролей на администрирование сайта или другими проблемами, связанными с персоналом.
[1] Common Vulnerabilities and Exposures,
http://cve.mitre.org/
[2] Steve Christey, Robert A. Martin, «Vulnerability Type Distributions in CVE»
http://cwe.mitre.org/documents/vuln-trends/index.html
[3] Валерий Марчук, «Отчет по уязвимостям за 2007 год» http://www.securitylab.ru/analytics/312345.php
[4] Positive Technologies, «Статистика уязвимости Web-приложений за 2007 год»
http://www.ptsecurity.ru/stat2007.asp
[5] WhiteHat Security, «Website Security Statistics Report»
http://www.whitehatsec.com/home/assets/WPstats032408.pdf
[6] Web Application Security Consortium, «Web Security Threat Classification»
http://webappsec.org/projects/threat/
[7] PCI Security Standards Council
https://www.pcisecuritystandards.org/
[8] Common Vulnerability Scoring System
http://www.first.org/cvss/
[9] Web Application Security Consortium, «Web Application Security Statistics Project »
http://webappsec.org/projects/statistics/
[10] Zone-H
http://zone-h.org/
[11] Web Application Security Consortium, «Web Hacking Incidents Database»
http://webappsec.org/projects/whid/
[12] Web Application Security Consortium, «Distributed Open Proxy Honyepot»
http://webappsec.org/projects/honeypots/
5778 К? Пф! У нас градус знаний зашкаливает!