В статистику вошли два набора данных: результаты автоматического тестирования и результаты работ по оценки защищенности с использованием методов BlackBox и WhiteBox.
Проект WASC Web Application Security Statistics Project 2007 является совместной инициативой лидеров индустрии защиты Web-приложений, направленной на лучшее понимание природы уязвимостей Web-приложений. Основными целями проекта является:
Исходные данные были получены по результатам работ по оценке защищенности Web-приложений проводимых в 2007 году следующими компаниями, с использованием автоматизированных инструментов (в алфавитном порядке):
HP Application Security Center c WebInspect
Positive Technologies c MaxPatrol
WhiteHat Security c WhiteHat Sentinel
В статистику вошли два набора данных: результаты автоматического тестирования и результаты работ по оценки защищенности с использованием методов BlackBox и WhiteBox.
Данные автоматического сканирования содержат информацию по сканированию без предварительной настройки (со стандартным профилем) сайтов хостинг-провайдера. При анализе этой информации следует учитывать, что далеко не все сайты используют интерактивные элементы. Кроме того, дополнительная экспертная настройка сканера под конкретное приложение позволяет существенно повысить эффективность обнаружения уязвимостей.
Стоит также учитывать ошибки 1-го и 2-го рода при автоматическом сканировании, когда сканер безопасности может пропустить уязвимость или наоборот предположить о наличии уязвимости там, где она на самом деле отсутствует. Экспертная оценка позволяет практически устранить ошибки второго рода и минимизировать ошибки первого рода, но не исключает их.
Статистика по оценке защищенности методом BlackBox и WhiteBox содержит результаты работ по ручному и автоматизированному анализу Web-приложений. Как правило, такие работы включают сканирование с предварительными настройками и ручным анализом результатов, ручной поиск уязвимостей недоступных автоматическим сканерам и анализ исходных кодов.
В результате было получено 3 набора данных:
Всего в статистику включены данные по 32717 сайтам, в которых было обнаружено 69476 уязвимостей различной степени риска.
Детальная информация приведена на сайте WASC (http://www.webappsec.org/projects/statistics/).
Анализ полученных данных показывает, что более 7% всех проанализированных сайтов может быть скомпрометирована полностью автоматически. Около 7,72% приложений содержат уязвимости высокой степени риска, обнаруженные при автоматическом сканировании систем (Рис. 1). Однако при детальной ручной и автоматизированной оценке методами черного и белого ящика вероятность обнаружения уязвимости высокой степени риска достигает 96,85%.
В значительной степени это связанно с тем, что при детальном анализе оценка риска более адекватна и учитывает не только тип уязвимости, но и реальные последствия её эксплуатации с учетом архитектуры и реализации приложения. Кроме того, важным фактором является тот факт, что в автоматическом сканировании участвовали сайты хостинг-провайдера, в некоторых случаях не содержащие активного контента, в то время как работы по оценке защищенности, как правило, проводятся для приложений содержащих сложную бизнес-логику. Т.е. результаты автоматизированных сканирований можно интерпретировать как данные для среднего Интернет-сайта, в то время как «BlackBox» и «WhiteBox» больше относятся к интерактивным корпоративным Web-приложениям.
Рис. 1 Вероятность обнаружения уязвимостей различной степени риска
Наиболее распространенными уязвимостями являются Cross-Site Scripting, Information Leakage, SQL Injection и Predictable Resource Location (Рис. 2). Как правило, уязвимости типа Cross-Site Scripting и SQL Injection возникают по причине ошибок в разработке систем, в то время как Information Leakage и Predictable Resource Location зачастую связаны с недостаточно эффективным администрированием (например, разграничением доступа) в системах.
Рис. 2 Наиболее распространенные уязвимости
Рис. 3 Процент уязвимостей от общего числа
При детальном анализе систем методами BlackBox и WhiteBox ощутимый процент сайтов оказались уязвимы также для Content Spoofing, Insufficient Authorization и Insufficient Authentication (Рис. 4). Причем вероятность обнаружения уязвимостей типа SQL Injection при таком подходе к анализу защищенности достигает 25%.
Рис. 4 Наиболее распространенные уязвимости (BlackBox & WhiteBox)
Рис. 5 Процент уязвимостей от общего числа (BlackBox & WhiteBox)
Если рассматривать вероятность обнаружения уязвимости с точки зрения классов Web Application Consortium Threat Classification version 1 (см. Табл. 1 и Рис. 6), то наиболее распространенны классы Client-side Attacks, Information Disclosure и Command Execution. Детальный анализ кроме того подтверждает распространенность классов Authentication
и Authorization (см. Рис. 7).
Табл. 1 Распределение вероятности обнаружения уязвимости по классам WASC TCv1
% ALL |
% Scans |
% Black & WhiteBox | |
Authentication |
1,17% |
0,02% |
20,82% |
Authorization |
1,28% |
0,07% |
19,01% |
Client-side Attacks |
33,13% |
31,17% |
69,37% |
Command Execution |
8,15% |
7,32% |
27,85% |
Information Disclosure |
31,78% |
30,42% |
56,54% |
Logical Attacks |
0,90% |
0,20% |
13,92% |
Рис. 6 Распределение вероятности обнаружения уязвимости по классам WASC TCv1
Рис. 7 Распределение вероятности обнаружения уязвимости по классам WASC TCv1 (BlackBox & WhiteBox)
Если провести сравнение полностью автоматических сканирований с детальной оценкой методами BlackBox и WhiteBox, то явно видно отставание автоматического сканирования при обнаружении уязвимостей Authorization и Authentication, логических ошибок.
Threat Classification |
Scans vs Black & WhiteBox |
Content Spoofing |
18,30% |
Insufficient Authorization |
14,15% |
Insufficient Authentication |
12,95% |
SQL Injection |
8,68% |
Brute Force |
7,98% |
Abuse of Functionality |
7,97% |
HTTP Response Splitting |
7,18% |
Рис. 8 Разница в вероятности обнаружения уязвимостей различными методами
Как уже говорилось ранее (см. Рис. 1), вероятность обнаружения уязвимости высокой степени риска при детальном анализе в 12,5 раз выше, чем при полностью автоматическом сканировании.
Если рассматривать такой показатель, как количество обнаруженных уязвимостей на один сайт (см. Табл. 10 и Рис. 10), то детальный анализ позволяет в среднем идентифицировать до 9 уязвимостей высокой степени риска на одно приложение, в то время как автоматизированное сканирование – только 2,3.
Рис. 9 Количество уязвимостей на сайт
All |
Scans |
Black&WhiteBox | |
Low |
3,15 |
2,96 |
1,11 |
Med |
2,35 |
2,04 |
2,65 |
High |
4,22 |
2,33 |
8,91 |
All |
2,12 |
1,61 |
13,11 |
Рис. 10 Количество уязвимостей на сайт
В рамках данного исследования использовалась классификация Web Application Security Consortium Threat Classification version 1. В связи с этим, некоторые типы уязвимостей не вошли в суммарные результаты. В будущем планируется применять более современную классификацию WASC TC version 2.
Наиболее широко распространенная уязвимость Cross-Site Request Forgery в рамках данной статистики занимает далеко не первое место. Это связано с двумя моментами: достоверное обнаружение данной уязвимости автоматическими методами затруднено и кроме того, в связи с распространенностью уязвимости её присутствие воспринимается как должное многими экспертами.
В результаты не вошли уязвимости, связанные с используемой платформой (например, переполнение буфера в Apache).
Консорциум Web Application Security Consortium выражает благодарность следующим экспертам и компаниям, внесшим свой вклад в развитие проекта:
Sergey Gordeychik*
Jeremiah Grossman
Michael Sutton
Mandeep Khera
Peter Ahearn
Brian Martin
Simone Onofri
Matt Latinga
Chris Wysopal
*Лидер проекта
Сбалансированная диета для серого вещества