Урок по треку Безопасность приложений 7 мин

OWASP Top 10 и API Top 10: карта уязвимостей

Какие классы уязвимостей входят в списки OWASP, чем веб-список отличается от API-списка и как ими пользоваться.

OWASP (Open Worldwide Application Security Project) открытое сообщество, которое публикует списки самых частых и опасных классов уязвимостей. На собесе AppSec их спрашивают почти всегда, но не ради зубрёжки номеров: важно понимать, что стоит за каждым пунктом и как защищаться.

OWASP Top 10 для веб-приложений

Список обновляется раз в несколько лет на основе данных о найденных уязвимостях и опроса специалистов. Версия 2021 года долго была основной:

№КатегорияСуть
A01Broken Access ControlПользователь получает доступ к чужим данным или функциям
A02Cryptographic FailuresНет шифрования, слабые алгоритмы, плохое хранение паролей
A03InjectionSQL, NoSQL, команды ОС, XSS: данные исполняются как код
A04Insecure DesignОшибки на уровне архитектуры, а не реализации
A05Security MisconfigurationНастройки по умолчанию, лишние сервисы, подробные ошибки
A06Vulnerable and Outdated ComponentsУязвимые библиотеки и платформы
A07Identification and Authentication FailuresСлабый вход, сессии, перебор паролей
A08Software and Data Integrity FailuresНепроверенные обновления, небезопасная десериализация, CI/CD
A09Security Logging and Monitoring FailuresАтаку не видно и не на что реагировать
A10Server-Side Request ForgeryСервер ходит по адресу, который задал атакующий

В версии 2025 года нарушение контроля доступа осталось на первом месте, отдельной категорией появились сбои цепочки поставок ПО (supply chain), SSRF вошла в контроль доступа, добавилась категория о неправильной обработке исключительных ситуаций. Номера меняются, а классы уязвимостей остаются, поэтому учите смысл.

OWASP API Security Top 10 (2023)

API ломают иначе, чем страницы: интерфейс открыт, клиент под контролем атакующего, данных много. Поэтому есть отдельный список:

  1. BOLA (Broken Object Level Authorization): GET /orders/1002 отдаёт чужой заказ. Самая частая проблема API.
  2. Broken Authentication: слабые токены, нет защиты от перебора.
  3. Broken Object Property Level Authorization: API отдаёт лишние поля или даёт записать поле role (mass assignment).
  4. Unrestricted Resource Consumption: нет лимитов на размер, частоту, стоимость запросов.
  5. BFLA (Broken Function Level Authorization): обычный пользователь вызывает админскую функцию.
  6. Unrestricted Access to Sensitive Business Flows: автоматизация покупки всех билетов, массовая регистрация.
  7. SSRF.
  8. Security Misconfiguration.
  9. Improper Inventory Management: забытые старые версии API, тестовые окружения.
  10. Unsafe Consumption of APIs: слепое доверие ответам сторонних API.

Как пользоваться списками

  • Это не стандарт и не чек-лист для сертификации, а повод для обучения и приоритизации. Для требований есть ASVS (Application Security Verification Standard), для тестирования WSTG (Web Security Testing Guide), для коротких практик Cheat Sheet Series.
  • Список помогает разговаривать с разработчиками и бизнесом на общем языке.
  • Классы уязвимостей связаны с CWE (каталог слабостей), конкретные уязвимости в продуктах получают CVE, серьёзность часто оценивают по CVSS.

Общие принципы защиты

  • Не доверять вводу: всё, что пришло от клиента, может быть подделано, включая скрытые поля, заголовки и JWT без проверки подписи.
  • Разделять данные и код: параметризованные запросы, экранирование по контексту.
  • Запрет по умолчанию (deny by default) и минимальные привилегии.
  • Глубокая оборона (defense in depth): несколько независимых слоёв, чтобы ошибка в одном не была фатальной.
  • Безопасность на сервере: проверки на клиенте только для удобства.
  • Безопасные настройки по умолчанию: фреймворк должен защищать, если разработчик ничего не сделал.

Частые ошибки на собесе

  • Перечислять номера без понимания, как найти и исправить.
  • Путать аутентификацию (кто ты) и авторизацию (что тебе можно).
  • Говорить «используем HTTPS, значит защищены».
  • Считать, что WAF заменяет исправление уязвимостей.

Что спросят на собесе

  • Назовите несколько пунктов OWASP Top 10 и как от них защищаться.
  • Чем OWASP API Top 10 отличается от веб-списка, что такое BOLA.
  • Что такое Insecure Design и почему его не исправить патчем.
  • Зачем нужен ASVS, если есть Top 10.
  • Какая уязвимость чаще всего встречается в API и как вы её ищете.

Закрепите за 5 минут

После урока в тренажёре 3-5 проверочных вопросов, дальше модуль уходит в повторения.