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.