Назад к блогу

OWASP Top 10 2025: каждая уязвимость простыми словами с примерами

15 мин. чтения0 просмотровУязвимости

Что такое OWASP Top 10

OWASP (Open Web Application Security Project) — это международная некоммерческая организация, занимающаяся безопасностью веб-приложений. Каждые несколько лет OWASP публикует список 10 наиболее критичных рисков для веб-приложений — OWASP Top 10.

Этот список является де-факто стандартом для разработчиков, тестировщиков и специалистов по безопасности. Понимание OWASP Top 10 — обязательный минимум для любого, кто создаёт или обслуживает веб-приложения.

A01: Нарушение контроля доступа (Broken Access Control)

Что это

Нарушение контроля доступа возникает, когда пользователь может выполнять действия, на которые у него нет прав. Это самая распространённая уязвимость — встречается в 94% приложений.

Пример атаки

Пользователь меняет в URL параметр ?user_id=123 на ?user_id=456 и получает доступ к данным другого пользователя. Или обычный пользователь обращается к /admin/users и видит список всех пользователей.

Реальный инцидент

Через IDOR-уязвимость (Insecure Direct Object Reference) в сервисе бронирования были раскрыты персональные данные миллионов пользователей — достаточно было перебрать числовые ID в API-запросе.

Как защититься

  • Проверяйте права доступа на стороне сервера для каждого запроса
  • Используйте UUID вместо последовательных числовых ID
  • Реализуйте принцип наименьших привилегий
  • Отключите листинг директорий
  • Логируйте попытки несанкционированного доступа

A02: Криптографические сбои (Cryptographic Failures)

Что это

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

Пример атаки

Сайт использует HTTP для страницы входа. Злоумышленник перехватывает Wi-Fi трафик и видит логин и пароль в открытом виде.

Реальный инцидент

Крупный ритейлер хранил пароли в MD5 без соли. После утечки базы злоумышленники расшифровали 80% паролей за часы с помощью rainbow tables.

Как защититься

  • Используйте TLS 1.2+ для всех соединений
  • Храните пароли с bcrypt/Argon2 (не MD5/SHA1)
  • Не храните чувствительные данные без необходимости
  • Используйте AES-256 для шифрования
  • Проверьте SSL: SSL-проверка Периметра

A03: Инъекции (Injection)

Что это

Инъекция происходит, когда непроверенные данные от пользователя попадают в интерпретатор: SQL-запрос, команду ОС, LDAP-запрос.

Пример атаки

В поле логина вводится: admin' OR '1'='1

SQL-запрос становится: SELECT * FROM users WHERE login='admin' OR '1'='1'

Результат: вход в систему без знания пароля.

Реальный инцидент

Через SQL-инъекцию в форме поиска интернет-магазина были похищены данные 130 миллионов кредитных карт.

Как защититься

  • Используйте параметризованные запросы (prepared statements)
  • Применяйте ORM с автоматической экранизацией
  • Валидируйте входные данные по белому списку
  • Ограничьте привилегии учётной записи БД
  • Используйте WAF

A04: Небезопасный дизайн (Insecure Design)

Что это

Архитектурные ошибки, которые нельзя исправить патчем — нужно менять дизайн системы. Отсутствие threat modeling, недостаточная валидация бизнес-логики.

Пример атаки

Сервис восстановления пароля задаёт контрольный вопрос: «Имя питомца?» Злоумышленник находит ответ в социальных сетях жертвы.

Как защититься

  • Проводите threat modeling на этапе проектирования
  • Используйте secure design patterns
  • Реализуйте defence in depth
  • Проводите code review с фокусом на бизнес-логику

A05: Небезопасная конфигурация (Security Misconfiguration)

Что это

Неправильные настройки: стандартные пароли, включённый debug, лишние сервисы, отсутствие заголовков безопасности.

Пример атаки

На продакшне включён debug-режим. При ошибке пользователь видит стек-трейс с путями файлов, версиями библиотек и конфигурацией.

Как защититься

  • Отключите всё лишнее
  • Регулярно обновляйте и патчите ПО
  • Используйте hardened конфигурации
  • Настройте HTTP-заголовки: проверка заголовков
  • Автоматизируйте проверку конфигурации

A06: Уязвимые и устаревшие компоненты

Что это

Использование библиотек и фреймворков с известными уязвимостями. Отсутствие обновлений и мониторинга CVE.

Пример атаки

Log4Shell (CVE-2021-44228) — критическая уязвимость в Log4j, затронувшая миллионы серверов. Злоумышленник мог выполнить произвольный код, отправив специальную строку в лог.

Как защититься

  • Ведите инвентаризацию зависимостей (SBOM)
  • Мониторьте CVE для используемых компонентов
  • Автоматизируйте обновление зависимостей
  • Удаляйте неиспользуемые библиотеки

A07: Ошибки аутентификации

Что это

Слабая аутентификация: нет защиты от брутфорса, слабые пароли, небезопасные сессии, нет MFA.

Пример атаки

Credential stuffing — автоматический перебор утекших пар логин/пароль из других сервисов. При повторном использовании пароля аккаунт компрометируется.

Как защититься

  • Внедрите MFA
  • Ограничьте попытки входа (rate limiting)
  • Используйте надёжные политики паролей
  • Проверяйте пароли по базам утечек

A08: Нарушения целостности ПО и данных

Что это

Отсутствие проверки целостности при обновлении ПО, CI/CD. Атаки на supply chain.

Пример атаки

Злоумышленник публикует вредоносный npm-пакет с именем, похожим на популярную библиотеку (typosquatting). Код попадает в продакшн.

Как защититься

  • Проверяйте цифровые подписи обновлений
  • Используйте lock-файлы
  • Настройте проверку целостности в CI/CD

A09: Недостаточное логирование и мониторинг

Что это

Отсутствие логирования событий безопасности, что затрудняет обнаружение атак.

Пример атаки

Брутфорс в течение месяца по 10 попыток в день. Без мониторинга неудачных входов атака остаётся незамеченной.

Как защититься

  • Логируйте все события аутентификации
  • Настройте алерты на подозрительную активность
  • Храните логи минимум 6 месяцев
  • Используйте SIEM

A10: Подделка серверных запросов (SSRF)

Что это

SSRF позволяет злоумышленнику заставить сервер выполнять запросы к внутренним ресурсам.

Пример атаки

Функция предпросмотра URL позволяет указать http://169.254.169.254/latest/meta-data/ и получить метаданные AWS, включая ключи доступа.

Реальный инцидент

Через SSRF в сервисе Capital One злоумышленник получил доступ к метаданным AWS и похитил данные 100 миллионов кредитных заявок.

Как защититься

  • Валидируйте URL на стороне сервера
  • Используйте белые списки хостов
  • Блокируйте запросы к внутренним IP
  • Используйте сетевую сегментацию

Как проверить приложение

  1. Автоматическое сканирование — EASM-платформа проверит конфигурацию, заголовки, SSL, порты
  2. Code review — анализ кода на типичные ошибки
  3. DAST — динамическое тестирование
  4. Пентест — глубокий анализ критичных систем

Периметр автоматически проверяет множество аспектов из OWASP Top 10: SSL/TLS, HTTP-заголовки, порты, exposed paths, устаревшее ПО.

Практические рекомендации

OWASP Top 10 — не исчерпывающий список, но покрывает самые критичные проблемы. Ключевые принципы:

  • Валидация входных данных — не доверяйте данным от пользователя
  • Наименьшие привилегии — минимально необходимые права
  • Defence in depth — несколько уровней защиты
  • Обновления — своевременно патчите компоненты
  • Мониторинг — обнаруживайте атаки в реальном времени
Поделиться:TelegramVK

Похожие статьи

Мы используем файлы cookie для обеспечения работоспособности сервиса и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с политикой конфиденциальности.