Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Многим из нас встречался список угроз Топ-10 OWASP. А некоторые даже знают, что он обновляется каждые 3-4 года. И срок следующего обновления уже подошел. Но процесс создания списка угроз OWASP плохо документирован, поэтому нам захотелось предложить прозрачный, основанный на статистике рейтинг для тех же категорий угроз.
Мы проанализировали 2 миллиона различных отчетов о безопасности из 144 открытых источников. Под катом вы найдете наш вклад в анализ Топ-10 угроз OWASP на 2021 год. При этом каждый из читающих сможет воспроизвести результаты на основе понятных метрик.
Дублирование категорий угроз в Топ-10 OWASP 2017
Первое, что нужно сказать о Топ-10 OWASP, это то, что этот список не является классификацией уязвимостей ни в коей мере, поскольку категории угроз в списке дублируются. Здесь можно сослаться на статью в Security Boulevard и на наш пост в блоге, в котором описаны такие пересечения, представленные на следующей диаграмме:
Дублирование категорий угроз в Top-10 OWASP 2017
Топ-10 OWASP НЕ ЯВЛЯЕТСЯ классификацией уязвимостей, а скорее списком угроз, выявленных за последний период времени. Вот почему для прогнозирования состава следующего списка Топ-10 OWASP 2021 нам следует проанализировать угрозы для целевых веб-ресурсов за последние четыре года. Итак, начнем.
Методология
Для получения статистических данных мы воспользовались ресурсом Vulners.com — базой агрегированных данных, которая содержит более 4 миллионов бюллетеней от 144 компаний, включая программы по выявлению ошибок, такие как HackerOne.
Общее количество бюллетеней, использованных для создания этого списка, включая бюллетени CVE, отчеты о найденных ошибках и бюллетени по безопасности от компаний,** составляет 2 168 521 (поисковый запрос: «опубликовано: [c 2018-01-01 по 2020-12-31]»).
Чтобы разделить данные по категориям, были составлены поисковые запросы уязвимостей для всех десяти категорий OWASP. Стоит признать, что полнотекстовый поиск, вероятно, не самое точное решение для классификации данных, однако, для решения этой конкретной задачи данный метод все же подойдет. Бюллетени по безопасности почти для всех категорий OWASP можно было найти, выполнив поиск по акронимам и аббревиатурам.
Для категории «Использование компонентов с известными уязвимостями» общее количество отчетов о безопасности, посвященных веб-угрозам, было принято как общее количество номеров CVE, присвоенных за последние 3 года.
Это удивительно, но согласно статистике Vulners, XSS составляет 20% от ВСЕХ бюллетеней безопасности за последние три года. Это почти в 10 раз больше, чем число всех CVE, опубликованных за последние три года! Поскольку многие XSS-уязвимости не имеют оценки CVSS (т.е. их рейтинг равен нулю), средняя оценка для многих из таких уязвимостей по-прежнему составляет 0,1. Этот факт, однако, не мешает XSS-уязвимостям попасть в топ-3 рейтинга. Еще раз, это происходит потому, что такие уязвимости были упомянуты в каждом пятом бюллетене из опубликованных за последние 3 года.
Следующие запросы можно использовать для проверки, изменения или проведения собственного анализа:
Сопоставление списков угроз за 2017 и 2021 годы | Поисковый запрос |
---|---|
A1. Внедрение | injection OR traversal OR lfi OR "os command" OR SSTI OR RCE OR "remote code" |
A2. Недостатки аутентификации | authentication |
A3. Разглашение конфиденциальных данных | sensitive AND data |
ОБЪЕДИНЕНО С A8. Небезопасная десериализация + A4. Внешние сущности XML (XXE) | XXE OR deserialize OR deserialization OR "external entities" |
A5. Недостатки контроля доступа | access control |
A6. Некорректная настройка параметров безопасности | misconfiguration OR misconfigure OR misconfig |
A7. XSS | XSS |
НОВОЕ: SSRF | SSRF OR "server side request forgery" |
A9. Использование компонентов с известными уязвимостями | type:cve and (http OR web OR html) |
A10. Недостатки журналирования и мониторинга | logging |
Как видите, мы твердо убеждены, что сообщество OWASP добавит новую категорию SSRF и объединит категории «A4. Внешние сущности XML (XXE)» и «A8. Небезопасная десериализация» в предстоящем выпуске Топ-10 OWASP 2021. И вот почему.
Предложение 1: Выделить SSRF в отдельную категорию
Перечислим три самых важных факта, связанных с SSRF:
- SSRF-атаки занимают третье место среди наиболее критических уязвимостей по данным статистики за первое полугодие 2020 г.
- Специалисты Amazon серьезно отнеслись к этой угрозе и в конце 2019 года внесли соответствующие изменения в сервисы метаданных EC2.
- SSRF-атаки привели к реализации множества серьезных рисков информационной безопасности, включая самый известный взлом Capital One с обходом WAF, подробно описанный Брайаном Кребсом в его блоге.
Согласно глобальной статистике, собранной Vulners, метод SSRF упоминался в 912 бюллетенях за последние три года, то есть почти столько же раз, как и категория A4 — XXE (1000 результатов) и в 2,5 раза чаще, чем категория A6 — Некорректная настройка параметров безопасности (481 результат) из списка угроз Топ-10 OWASP 2017.
Подводя итог, можно сказать, что SSRF — это критическая проблема, которая может привести к захвату облачных ресурсов, удаленному выполнению кода, утечке данных и реализации иных рисков ИБ. Использование фильтрации ввода и других механизмов проверки данных не может устранить SSRF-угрозу. Amazon и другие облачные провайдеры серьезно относятся к данной проблеме и вносят соответствующие изменения в свою инфраструктуру для снижения рисков. За последние три года SSRF-атаки упоминаются почти в таком же количестве бюллетеней по безопасности, что и XXE. Поэтому мы надеемся, что никто не обвинит нас в предложении добавить данную угрозу в список Топ-10 OWASP 2021 года.
Предложение 2: Объединить категории «Внешние сущности XML (XXE)» и «Небезопасная десериализация»
Уязвимость XXE, также известная как инъекция внешних сущностей XML, технически представляет собой реализацию функции сериализации, которая позволяет включать в XML-документ содержимое локальных и удаленных файлов. Кстати, иногда это приводит к реализации SSRF. Поэтому можно смело утверждать, что XXE относится к категории «Небезопасная десериализация».
Кроме того, невозможно считать XXE-атаки отдельной категорией, учитывая наличие такой собирательной категории, как «A1. Внедрение», куда относится почти все — от внедрения SQL-кода до атаки Path Traversal и выполнения команд ОС, — которая определенно будет возглавлять список OWASP еще долгие годы.
Учитывая эти два факта, а также на основании статистических данных о количестве отчетов о безопасности в каждой из категорий, мы решили объединить XXE и небезопасную десериализацию в один класс.
Предложение 3: Ввести оценку риска для правильного ранжирования угроз
Для ранжирования предполагаемого списка угроз Топ-10 OWASP для каждой из категорий мы использовали среднее значение по системе оценки CVSS. Фактически, поскольку многие бюллетени имеют 0 баллов по CVSS, полученный рейтинг следует интерпретировать как среднее значение по CVSS для категории, что на самом деле просто демонстрирует правильное соотношение между ними.
Общий риск = Сред. оценка по CVSS x Количество бюллетеней
Построение списка Топ-10 OWASP 2021
Как упоминалось выше, мы использовали агрегированные данные из 144 источников, включая бюллетени безопасности, проиндексированные Vulners.com. Такой подход позволяет учитывать не только данные CVE, но и все прочие отчеты, включая отчеты о найденных ошибках, эксплойтах и уязвимостях, обнаруженных сканером, количество которых находится в прямой зависимости от реального состояния информационной безопасности. Если мы будем считать только записи CVE, результаты будут кардинально отличаться, поскольку категория «Использование компонентов с известными уязвимостями» будет технически равна по объему сумме всех остальных категорий вместе взятых.
Предлагаем наиболее справедливый, на наш взгляд, способ построения списка угроз Топ-10 OWASP 2021. Можете убедиться сами!
#Топ-10 OWASP 2021 | Поисковый запрос Vulners | Сред. оценка по CVSS | Кол-во бюллетеней | Общая оценка |
---|---|---|---|---|
A1 Внедрение | injection OR traversal OR lfi OR "os command" OR SSTI OR RCE OR "remote code" | 4,83 | 34061 | 164514,63 |
A2 Недостатки аутентификации | authentication | 4,08 | 13735 | 56038,8 |
A3 Межсайтовое выполнение сценариев (XSS) | xss | 0,1 | 433353 | 43335,3 |
A4 Разглашение конфиденциальных данных | sensitive AND data | 3,55 | 5990 | 21264,5 |
A5 Небезопасная десериализация | XXE OR deserialize OR deserialization OR "external entities" | 5,33 | 2985 | 15910,05 |
A6 Недостатки контроля доступа | access control | 0,72 | 16967 | 12216,24 |
A7 Недостатки журналирования и мониторинга | logging | 3,35 | 2309 | 7735,15 |
A8 Подделка запросов на стороне сервера (SSRF) | SSRF OR "server side request forgery" | 3,8 | 1139 | 4328,2 |
A9 Использование компонентов с известными уязвимостями | Type: cve and (http OR web OR html) | 5,38 | 376 | 2022,88 |
A10 Некорректная настройка параметров безопасности | misconfiguration OR misconfigure OR misconfig | 2,27 | 480 | 1089,6 |
Наш прогноз Топ-10 OWASP 2021 в сравнении с Топ-10 OWASP 2017
Подводя итог, мы с уверенностью представляем итоги собственного прогноза списка угроз Топ-10 OWASP на 2021 год, поскольку результаты основаны на общедоступных статистических данных.
Топ-10 OWASP 2017 | Измнения | Предлагаемый список Топ-10 OWASP 2021 |
---|---|---|
A1 Внедрение | как есть | A1 Внедрение |
A2 Недостатки аутентификации | как есть | A2 Недостатки аутентификации |
A3 Разглашение конфиденциальных данных | вниз на 1 пункт | A3 Межсайтовое выполнение сценариев (XSS) |
A4 Внешние сущности XML (XXE) | вниз на 1 пункт + A8 | A4 Разглашение конфиденциальных данных |
A5 Недостатки контроля доступа | вниз на 1 пункт | A5 Небезопасная десериализация (объединено с XXE) |
A6 Некорректная настройка параметров безопасности | вниз на 4 пункта | A6 Недостатки контроля доступа |
A7 Межсайтовое выполнение сценариев (XSS) | вверх на 4 пункта | A7 Недостатки журналирования и мониторинга |
A8 Небезопасная десериализация | вверх на 3 пункта + A4 | A8 НОВОЕ: Подделка запросов на стороне сервера (SSRF) |
A9 Использование компонентов с известными уязвимостями | как есть | A9 Использование компонентов с известными уязвимостями |
A10 Недостатки журналирования и мониторинга | вверх на 3 пункта | A10 Некорректная настройка параметров безопасности |
Надеемся, что эти результаты будут полезны для оценки рисков, управления уязвимостями, образовательных целей и просто интересного чтения для экспертов и энтузиастов по безопасности приложений.
Спасибо за интерес!