Использование рекомендаций Open Web Application Security Project (OWASP) давно стало стандартом обеспечения безопасности веб-приложений. Рейтинг угроз OWASP Top 10 обновляется каждые 3-4 года.
Подробнее про OWASP
OWASP (Open Web Application Security Project) — некоммерческая организация, которая занимается вопросами безопасности программного обеспечения. Все её проекты, а так же документация, презентации, информация о мероприятиях, веб-сканер с открытым исходным кодом доступны на веб-сайте и являются бесплатными.
Одним из популярных и значимых проектов OWASP является ведение списка 10 основных угроз безопасности веб-приложений — OWASP Тop 10. Список обновляется каждые 3-4 года, последнее обновление было в 2021 году.
Рекомендации OWASP высоко ценятся специалистами по анализу защищенности приложений.
ТОП-10 уязвимостей OWASP
OWASP Top 10 – это регулярно обновляемый рейтинг основных угроз безопасности веб-приложений.
Международные эксперты по информационной безопасности OWASP рекомендуют всем компаниям учитывать выводы документа при построении корпоративных систем, чтобы минимизировать риски от угроз безопасности.
В последний список угроз OWASP вошли:
А01:2021 Нарушение контроля доступа (англ. Broken Access Control).
А02:2021 Сбои криптографии (англ. Cryptographic Failures).
А03:2021 Внедрение кода (англ. Injection).
А04:2021 Небезопасный дизайн (англ. Insecure Design).
А05:2021 Неправильная конфигурация (англ. Security Misconfiguration).
А06:2021 Уязвимые и устаревшие компоненты (англ. Vulnerable and Outdated Components).
А07:2021 Ошибки идентификации и аутентификации (англ. Identification and Authentication Failures).
А08:2021 Нарушения целостности программного обеспечения и данных (англ. Software and Data Integrity Failures).
А09:2021 Сбои регистрации и мониторинга безопасности (англ. Security Logging and Monitoring Failures).
А10:2021 Подделка запросов на стороне сервера (англ. Server-Side Request Forgery).
Нарушение контроля доступа
Самая частая угроза веб-приложениям. Возникает, когда нарушен доступ к ресурсам. То есть некоторые ограничения для аутентифицированных пользователей не работают или настроены неправильно. Такие ограничения позволяют получать, например, доступ к другим учётным записям. Злоумышленники при нарушенном контроле доступа получают возможность управления сеансом пользователя и могут также получить доступ к незащищенным логинам и паролям из активных сеансов.
Сбои криптографии
Эта уязвимость также является одной из самых «популярных». Возникает в приложениях, в которых не защищены должным образом конфиденциальные данные: данные банковских карт, имена , пароли пользователей и т.д. Например, сайт не использует TLS (англ. transport layer security — протокол защиты транспортного уровня) на всех страницах или применяется слабое шифрование данных. Злоумышленник с помощью cookie перехватывает сеанс пользователя и заменяет его личные данные.
Важно следить за шифрованием данных и избегать устаревших криптографических функций.
Внедрение кода
Внедрение кода — запрос или команда, которая применяется злоумышленником для вставки в интерпретатор через обращение к базе данных или, например, к LDAP (Lightweight Directory Access Protocol — «легковесный протокол доступа к каталогам»). Команды, которые вводятся таким образом, заставляют приложение делать непредусмотренные разработчиком действия. Для этой атаки уязвимы приложения, которые принимают параметры в качестве входных данных.
Небезопасный дизайн
Новая категория, которая появилась в рейтинге в 2021 году, посвящена рискам, связанным с ошибками проектирования и архитектуры приложения. Введение этой угрозы можно считать призывом к использованию моделирования угроз, безопасных шаблонов проектирования и эталонных архитектур. Одним из факторов, способствующих небезопасному проектированию, является отсутствие профилирования бизнес-рисков.
Неправильная конфигурация
Встречается в веб-приложениях, которые анализируют ввод XML (Extensible Markup Language – расширяемый язык разметки). Это происходит, когда плохо сконфигурированные процессоры XML оценивают ссылки на внешние объекты в документах XML и отправляют конфиденциальные данные неавторизованному внешнему объекту (устройству хранения). По умолчанию большинство анализаторов XML уязвимы для этого вида атак.
Уязвимые и устаревшие компоненты
Существует множество программных компонентов с открытым исходным кодом, а так же библиотек и фреймворков, доступных разработчикам. Если в приложении используется компонент, имеющий уже известную уязвимость, он становится слабым звеном, которое может повлиять на безопасность всей системы. Разработчики часто не вникают, какие компоненты уже присутствуют в их приложениях от предыдущих специалистов. Это затрудняет обнаружение и устранение ошибок при обнаружении уязвимостей в приложениях, а так же их обновление.
Ошибки идентификации и аутентификации
Эти ошибки также новая категория в списке. Проблемы с аутентификацией позволяют злоумышленнику использовать различные методы для получения контроля над любой учётной записью в системе. В худшем случае злоумышленники получают полный контроль над системой. Эта уязвимость опасна ещё и потому, что веб-сайты с проблемами аутентификации очень распространены. Проблема возникает из-за ошибок в управлении сеансом, что позволяет злоумышленникам взломать пароли, ключи безопасности и т.д.
Ошибки целостности программного обеспечения и данных
Небезопасная десериализация (Insecure Deserialization) позволяет злоумышленнику удалённо выполнять код в приложении, подделывать или удалять сериализованные (записанные на диск) объекты, проводить атаки путём внедрения, повторного воспроизведения. Эта проблема безопасности приложений очень серьезная и, к сожалению, затрагивает большинство современных систем.
Сбои регистрации и мониторинга безопасности
Время от атаки до обнаружения может занять до 200 дней, а порой и больше. Тем временем злоумышленники могут вмешиваться в работу серверов, повреждать базы данных и красть конфиденциальную информацию. Неверное ведение журнала безопасности и неэффективная интеграция систем безопасности являются «открытой дверью» для злоумышленников и их манипуляций.
Подделка запросов на стороне сервера
Ошибки SSRF (server side request forgery — программный код, с помощью которого можно заставить уязвимое приложение сделать запрос на предоставленный URL) возникают когда веб-приложение извлекает удаленный ресурс без проверки предоставленного пользователем URL-адреса. Это дает злоумышленнику возможность перенаправить созданный запрос в неожиданное место назначения, обходя защиту брандмауэром, VPN или другими средствами управления доступом к сети.
Поскольку современные веб-приложения предоставляют конечным пользователям разные функции, получение URL-адреса становится распространенным сценарием. Частота ошибок SSRF становится выше из-за распространения облачных сервисов и сложности архитектур.
Заключение
Отметим, что список построен в виде рейтинга. Ранжирование основывается на частоте дефектов, серьезности уязвимостей и их потенциального воздействия. Это позволяет разработчикам и специалистам по безопасности понимать наиболее серьезные риски и минимизировать возможные последствия эксплуатации уязвимостей злоумышленниками.
Наши специалисты так же используют OWASP в анализе защищенности веб-приложений. Закажите анализ у нас, чтобы получить его в соответствии с международными стандартами и методиками.