🕵 Что такое Топ-10 OWASP и какие уязвимости веб-приложений наиболее опасны?
Использование рекомендаций Open Web Application Security Project (OWASP) давно стало стандартом обеспечения безопасности веб-приложений. Давайте разберемся, какие 10 уязвимостей организация считает наиболее опасными на данный момент.
OWASP важен для организаций, потому что его рекомендации высоко ценятся проверяющими безопасность корпоративных систем аудиторами. Рекомендации проекта по защите приложений необходимо включить в жизненный цикл разработки программного обеспечения и использовать для формирования политик безопасности.
Отчет об уязвимостях OWASP формируется на основе консенсуса мнений экспертов по безопасности со всего мира. Он ранжирует риски на основе частоты дефектов, серьезности уязвимостей и их потенциального воздействия. Это дает разработчикам и специалистам по безопасности понимание наиболее серьезных рисков и позволяет им минимизировать возможные последствия эксплуатации уязвимостей злоумышленниками.
В последнем отчете OWASP перечислены 10 основных уязвимостей:
- Инъекции (Injections).
- Нарушенная аутентификация (Broken Authentication).
- Раскрытие критически важных данных (Sensitive Data Exposure).
- Внешние объекты XML (XXE) (XML External Entities (XXE)).
- Нарушенный контроль доступа (Broken Access control).
- Неправильная конфигурация безопасности (Security misconfigurations).
- Межсайтовый скриптинг (XSS) (Cross Site Scripting (XSS)).
- Небезопасная десериализация (Insecure Deserialization).
- Использование компонентов с известными уязвимостями (Using Components with known vulnerabilities).
- Недостаточно подробные журналы и слабый мониторинг (Insufficient logging and monitoring).
1. Инъекции
Инъекционные атаки можно предотвратить путем проверки и/или очистки отправленных пользователем данных. В первом случае подозрительные данные отклоняются полностью, а во втором производится очистка только их подозрительной части. Кроме того, администратор базы данных может установить специальные элементы управления, чтобы минимизировать объем информации, которую может раскрыть атака с использованием SQL-инъекций.
2. Нарушенная аутентификация
Веб-сайты часто имеют проблемы с механизмами аутентификации. Прежде всего связаны они с некорректным управлением сеансами, что может быть использовано злоумышленниками для получения доступа к учетным записям пользователей и учетным данным для входа.
OWASP Top 10 содержит целый список подобных уязвимостей:
- Возможность автоматизированного заполнения учетных данных и/или подбора пароля.
- Возможность использования стандартных, слабых и известных паролей.
- Неэффективные процессы восстановления учетных данных.
- Отсутствие многофакторной аутентификации (MFA) или ее неэффективная реализация.
- Предоставление идентификаторов сеансов в унифицированном указателе ресурсов (URL), отсутствие чередования идентификаторов сеансов и неправильное аннулирование идентификаторов сеансов и токенов аутентификации при выходе пользователя из системы или после периода бездействия.
Количество уязвимостей можно уменьшить путем внедрения многофакторной аутентификации, а также внедрения ограничений, делающих невозможности автоматизированные атаки грубой силы (например, путем перебора). Не менее важно отсутствие спешки и наличие у разработчиков времени на проверку изменений перед запуском в продакшен, а также внедрение процедур тестирования кода на безопасность. Также необходимо внедрить жесткую парольную политику и использовать безопасные диспетчеры сеансов.
3. Раскрытие критически важных данных
Основная причина риска раскрытия критически важных данных связана с отсутствием шифрования или с использованием ненадежных методов генерации и управления ключами, слабых алгоритмов шифрования, ненадежных способов хранения паролей и т.д. Кроме того, разработчики веб-приложений часто хранят конфиденциальные данные, даже если в этом нет необходимости.
4. Внешние объекты XML (XXE)
Атаки XXE нацелены на веб-приложения, которые анализируют расширяемый язык разметки (XML). Они возникают, когда ввод содержащего ссылку на внешний объект кода XML обрабатывается синтаксическим анализатором со слабой конфигурацией. Анализаторы XML часто по умолчанию уязвимы для XXE, а значит разработчики должны удалить уязвимость вручную.
Атаки XXE можно избежать, если веб-приложения принимают менее сложные формы данных (например, веб-токены JavaScript Object Notation (JSON)), исправляя синтаксические анализаторы XML или отключая использование внешних сущностей. Защититься от атак XXE можно, развернув шлюзы безопасности интерфейса прикладного программирования (API), виртуальные исправления и брандмауэры веб-приложений (WAF).
5. Нарушенный контроль доступа
Риск нарушения контроля доступа можно снизить, развернув концепцию наименее привилегированного доступа, регулярно проверяя серверы и веб-сайты, применяя MFA и удаляя с серверов неактивных пользователей и ненужные службы. Можно также защитить элементы управления доступом, используя токены авторизации при входе пользователей в веб-приложение и делая их недействительными после выхода из системы. Другие рекомендации включают регистрацию и отчеты об ошибках доступа, а также использование ограничения скорости для минимизации причиняемого автоматическими атаками ущерба.
6. Неправильная конфигурация безопасности
Неправильная конфигурация безопасности может быть где угодно: в приложениях и веб-серверах, базах данных, сетевых службах, пользовательском коде, фреймворках, предустановленных виртуальных машинах и контейнерах.
Конфигурацию безопасности можно исправить, изменив настройки веб-сервера или CMS по умолчанию, удалив неиспользуемые функции кода и контролируя данные пользователей и видимость пользовательской информации. Разработчики также должны удалить ненужную документацию, функции, структуры и образцы, сегментировать архитектуру приложений и автоматизировать проверку эффективности конфигураций и настроек веб-среды.
7. Межсайтовый скриптинг (XSS)
Предотвратить эксплуатацию уязвимостей XSS можно с помощью брандмауэров веб-приложений (WAF), в то время как разработчики могут снизить вероятность XSS-атак, отделяя ненадежные данные от активных браузеров. Это включает в себя использование фреймворков, которые избегают XSS по своей конструкции, использование очистки и проверки данных, избегание ненадежных данных запроса протокола передачи гипертекста (HTTP) и развертывание политики безопасности контента (CSP).
8. Небезопасная десериализация
Рекомендации OWASP по защите в отношении небезопасной десериализации касаются супер-файлов cookie, которые содержат сериализованную информацию о пользователях. Если злоумышленники могут успешно десериализовать объект, они могут предоставит себе роль администратора, сериализовать данные и поставить под угрозу все веб-приложения.
9. Использование компонентов с известными уязвимостями
Этого можно избежать с помощью виртуального исправления, которое защищает устаревшие веб-сайты от эксплуатации уязвимостей с помощью брандмауэров, систем обнаружения вторжений (IDS) и WAF. Эксплуатацию уязвимостей также можно предотвратить, сохранив только реально необходимые компоненты и удалив все неиспользуемые или не обслуживаемые. Лучшим методом будет установка компонентов из надежных источников и постоянное их обновление.
10. Недостаточно подробные журналы и слабый мониторинг
Успешную хакерскую атаку или утечку данных удается обнаружить далеко не всегда. Часто злоумышленники не только получают несанкционированный доступ к информационным системам, но хозяйничают в них месяцами или годами, оставаясь невидимыми. Чтобы этого не произошло, необходимо регистрировать и отслеживать поведение веб-приложения, чтобы своевременно распознать подозрительную активность и либо предотвратить атаку, любо минимизировать ее последствия.