OWASP Top 10

Материал из llmdocs — справочник разработчика
OWASP Top 10
ИздательOWASP Foundation (некоммерческий фонд)
Первая версия2003
Редакции2003, 2004, 2007, 2010, 2013, 2017, 2021, 2025
Основаданные о найденных уязвимостях (CWE) и опрос сообщества
Родственные проектыASVS, Cheat Sheet Series, OWASP Top 10 for LLM Applications, ZAP
ЛицензияCC BY-SA 4.0

OWASP Top 10 — документ фонда OWASP (Open Worldwide Application Security Project), перечисляющий десять наиболее критичных категорий рисков безопасности веб-приложений.[1] Это не стандарт и не полный чек-лист, а «документ осведомлённости»: он показывает, с чего начинать, и задаёт общий язык для разработчиков, тестировщиков и аудиторов. Каждая категория объединяет несколько слабостей из каталога CWE.[6]

История

Первый список вышел в 2003 году; с тех пор он обновляется раз в три–четыре года. Ранние редакции возглавляли инъекции и XSS, к 2021 году на первое место вышли ошибки контроля доступа. Начиная с 2017 года рейтинг строится на статистике — данных о сотнях тысяч протестированных приложений, которые присылают компании, — а две–три позиции добавляются по опросу сообщества, чтобы учесть новые риски, ещё не попавшие в статистику.

Редакция 2021

№ Категория Суть
A01 Broken Access Control пользователь получает доступ к чужим данным или функциям
A02 Cryptographic Failures данные передаются или хранятся без шифрования или со слабым
A03 Injection SQL, команды ОС, LDAP, XSS
A04 Insecure Design ошибки в самой архитектуре, а не в реализации
A05 Security Misconfiguration открытые панели, учётки по умолчанию, лишние сервисы
A06 Vulnerable and Outdated Components библиотеки с известными уязвимостями
A07 Identification and Authentication Failures слабые пароли, перебор, утечка сессий
A08 Software and Data Integrity Failures непроверенные обновления, небезопасная десериализация, CI/CD
A09 Security Logging and Monitoring Failures атаку никто не заметил
A10 Server-Side Request Forgery (SSRF) сервер ходит по URL, заданному атакующим

В редакции 2025 года[2] контроль доступа остался на первом месте, ошибки конфигурации поднялись на второе, категория уязвимых компонентов расширилась до цепочки поставок ПО (Software Supply Chain Failures), SSRF вошла в A01, а появилась новая категория о неправильной обработке исключительных ситуаций (Mishandling of Exceptional Conditions).

Ключевые категории подробнее

Нарушение контроля доступа. Классика — IDOR (insecure direct object reference): GET /api/orders/1042 возвращает чужой заказ, если сервер проверил, что пользователь вошёл, но не проверил, что заказ его. Проверка прав должна выполняться на сервере для каждого объекта, по умолчанию — запрет (см. Аутентификация и авторизация и Принцип наименьших привилегий).

Криптографические ошибки. HTTP без TLS, пароли в MD5 вместо Argon2 или bcrypt, самодельное шифрование, ключи в коде.

Инъекции. Данные пользователя попадают в интерпретатор как код. Защита — параметризованные запросы, экранирование по контексту, безопасные API вместо склейки строк.

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

Уязвимые компоненты и цепочка поставок. Большая часть кода приложения — зависимости. Нужны инвентаризация (SBOM), автоматическое обновление и сканеры (Dependabot, Renovate, pip-audit, npm audit, Trivy).

Целостность ПО и данных. Сборка из непроверенных источников, скомпрометированный пайплайн CI/CD, десериализация pickle из недоверенных данных.

Как применять

  • Как учебный минимум: каждый веб-разработчик должен понимать все десять категорий и знать типовую защиту.
  • Как основу для чек-листа ревью — но для формальных требований есть более подробный стандарт ASVS (Application Security Verification Standard) с тремя уровнями строгости.[3]
  • Практические рецепты по каждой теме собраны в OWASP Cheat Sheet Series.[4]
  • Для тестирования есть бесплатный сканер ZAP и учебные уязвимые приложения (Juice Shop).

Не стоит использовать Top 10 как исчерпывающий список: «соответствие Top 10» не означает защищённости, а риски конкретного продукта определяет моделирование угроз.

Другие списки OWASP

Кроме веб-версии, OWASP выпускает отдельные рейтинги для API (API Security Top 10), мобильных приложений и приложений на основе больших языковых моделей — OWASP Top 10 for LLM Applications,[5] где первое место занимает prompt injection.

См. также

Источники

  1. OWASP Top 10:2021
  2. OWASP Top 10:2025
  3. OWASP Application Security Verification Standard (ASVS)
  4. OWASP Cheat Sheet Series
  5. OWASP Top 10 for Large Language Model Applications
  6. MITRE — Common Weakness Enumeration (CWE)