CWE Top 25 за 2024 год

CWE Top 25 – это список наиболее опасных слабых мест программного обеспечения. Актуальный перечень создан на основе уведомлений об уязвимостях высокого уровня серьезности в период с середины 2023 года до половины 2024 года.

В этой статье рассказывается, из чего состоит новый список CWE Top 25, что изменилось по сравнению с прошлым годом, и какие практические выводы можно сделать для улучшения безопасности ПО.

В чем разница между CWE и CVE?

  • CWE (Common Weakness Enumeration, Общий перечень слабых мест) – это недостатки программного и аппаратного обеспечения, которые потенциально могут привести к уязвимостям.
  • CVE (Common Vulnerabilities and Exposures, Общие уязвимости и риски) – это известные уязвимости в конкретных продуктах.

Список CWE Top 25 за 2024 год

Оценки не сильно меняются после первой десятки слабых мест, поэтому ниже рассмотрено именно ее.

  1. Межсайтовый скриптинг (XSS или Cross-site scripting, официальное название – Improper Neutralization of Input During Web Page Generation, CWE-79, оценка: 56.92)
  2. Переполнение буфера (Out-of-bounds Write, CWE-787, оценка: 45.20)
  3. SQL-инъекция (Improper Neutralization of Special Elements used in SQL Command, CWE-89, оценка: 35.88)
  4. Подделка межсайтовых запросов (CSRF или Cross-site request forgery, CWE-352, оценка: 19.57)
  5. Обход каталога (Path Traversal, официальное название – Improper Limitation of Pathname to Restricted Directory, CWE-22, оценка: 12.74)
  6. Чтение за пределами буфера (Out-of-bounds read, CWE-125, оценка: 11.42)
  7. Инъекция команды операционной системы (OS Command Injection, официальное название – Improper Neutralization of Special Elements used in OS Command, CWE-78, оценка: 11.30)
  8. Повторное использование освобожденной памяти (Use after free, CWE-416, оценка: 10.19)
  9. Отсутствие авторизации (Missing authorization, CWE-862, оценка: 10.11)
  10. Неограниченная загрузка файлов опасного типа (Unrestricted upload of file with dangerous type, CWE-434, оценка: 10.03)

Уязвимости и проблемы управления памятью остаются в центре внимания

Хотя в нижней части списка произошли некоторые перестановки, наиболее серьезные проблемы практически не изменились с 2023 года. Единственным новичком в первой десятке стало отсутствие авторизации. Оно заменило некорректную проверку входных данных (Improper Input Validation), которая опустилась на 12-е место.

На основе оценок можно увидеть, что первая тройка значительно опережает остальных:

  • Межсайтовый скриптинг (XSS): позволяет злоумышленнику выполнять вредоносные скрипты в браузере пользователя. Существуют разные его виды, в том числе: отображенный (reflected), сохраненный (stored) и на основе объектной модели документа (DOM-based).
  • Переполнение буфера: официальное название «Out-of-bounds Write» охватывает различные проблемы безопасности, которые позволяют коду работать непредназначенными для него ячейками памяти.
  • SQL-инъекция: позволяет выполнять команды базы данных, внедряя SQL-запросы в приложение через несанкционированные входные данные.

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

Как рассчитывают оценки в CWE Top 25

Полная база данных CWE (поддерживается MITRE Corporation) предоставляет классификацию слабых мест программного и аппаратного обеспечения, которые могут вызвать уязвимости (CVE), если становится известно об их эксплуатации.

Рейтинг CWE Top 25 составляется путем анализа отчетов CVE за конкретный период и определения недостатков, которые привели к этим уязвимостям. Затем им присваивается оценка. Она рассчитывается путем умножения частоты возникновения уязвимостей на их средний балл CVSS (Common Vulnerability Scoring System, Общая система оценки уязвимостей). Таким образом, выше в рейтинге CWE Top 25 находятся те слабые места, которые часто приводят к серьезным последствиям. Полная методология доступна по ссылке.

В целом, CWE образуют сложную структуру с иерархией и перекрестными связями. Однако команда CWE Top 25 создала упрощенный перечень из 130 основных пунктов и работала с этим набором данных, часто сводя связанные между собой недостатки в более широкие первопричины.

В отличие от двух предыдущих списков, в 2024 году считали не цепочки связанных CWE, а все слабые места в определенной цепочке. Это объясняет, почему неправильная проверка входных данных (Improper Input Validation) сейчас занимает более низкое место в перечне, несмотря на то, что этот недостаток потенциально может присутствовать в цепочках атак, где фигурирует первая десятка рейтинга.

В чем разница между OWASP Top 10 и CWE Top 25?

Оба списка формируют с помощью анализа CVE и CWE, но их подход отличается.

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

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

Основные категории в CWE Top 25 за 2024 год

Все 25 слабых мест можно отнести к одной из трех групп, которые много говорят о наиболее уязвимых аспектах процесса разработки ПО. Интересно, что хотя перечень немного отличается от предыдущего, количество недостатков в каждой категории остается неизменным:

  • Работа с ненадежными входными данными (11 CWE, 60% от общей оценки). Их потенциально может контролировать злоумышленник, что создает риски для безопасности. Это касается как входных данных, которые отправляются непосредственно через запрос, так и загруженных файлов и десериализации.
  • Ошибки управления памятью (6 CWE, 26% общей оценки). Хотя это касается только языков программирования с прямым доступом к памяти (обычно C/C++), незащищенные операции с ней являются основным путем для удаленного выполнения кода, что дает таким недостаткам и связанным с ними CVE высокий уровень серьезности.
  • Проблемы в управлении доступом (8 CWE, 14% от общей оценки). От неправильной аутентификации и ошибок авторизации на разных уровнях, до утечки конфиденциальной информации, внедрение безопасного доступа к системам и ресурсам чрезвычайно важно для уменьшения вероятности успешных атак и для минимизации их потенциальных последствий.

Использование списка CWE Top 25 за 2024 год на практике

CWE Top 25 служит еще одним напоминанием о том, что большинство инцидентов безопасности приложений высокого уровня серьезности вызывают давно известные недостатки.

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

  • В разработке программного обеспечения следует считать все входные данные потенциально ненадежными и выполнять их валидацию, то есть проверку. Это, в том числе, касается загрузки файлов, запросов в базы данных (для предотвращения SQL-инъекций) и даже локальных ресурсов, таких как журналы сервера (для уменьшения риска атак, связанных с десериализацией). Для обнаружения уязвимостей можно использовать сканеры приложений и API. Например, решения для веб-безопасности Invicti (ранее Netsparker) и Acunetix.
  • Если компания создает или поддерживает программное обеспечение на C/C++, следует не забывать о безопасном управлении памятью, а также сделать его проверку отдельным пунктом в обзорах кода, QA и тестировании безопасности. Это особенно важно в случае с ПО для встроенных систем и сетевых устройств, которое можно относительно легко атаковать, но трудно поддерживать и применять патчи.
  • Для всех приложений, и особенно для API, уже на этапе дизайна следует внедрять детальный контроль доступа на уровне данных, функций и объектов. В идеале все ресурсы должны иметь определенный и предварительно протестированный уровень аутентификации и авторизации для всех возможных путей доступа.

Следовательно, можно воспринимать список CWE Top 25 как руководство для определения приоритетов в обучении разработчиков и тестировании безопасности. Таким образом, относительно небольшие усилия могут существенно улучшить защищенность организации.

Подписаться на новости