Вопрос или проблема
Я рассматриваю этот уязвимость: https://nvd.nist.gov/vuln/detail/CVE-2021-22044
В описании говорится:
В Spring Cloud OpenFeign с версиями от 3.0.0 до 3.0.4, от 2.2.0.RELEASE до 2.2.9.RELEASE и старых неподдерживаемых версиях приложения, использующие аннотации уровня типа @RequestMapping
в интерфейсах клиента Feign, могут непреднамеренно открывать конечные точки, соответствующие методам интерфейса, аннотированным @RequestMapping
.
Также на странице spring https://spring.io/security/cve-2021-22044 говорится:
Хотя ответ не возвращается для запроса, отправленного таким образом, он все же достигает соответствующей серверной конечной точки.
Я не понимаю, как это может быть рискованно, если ответ никогда не возвращается? Как можно использовать эту уязвимость?
Ответ или решение
CVE-2021-22044 представляет собой уязвимость в Spring Cloud OpenFeign, которая затрагивает версии с 3.0.0 по 3.0.4 и 2.2.0.RELEASE по 2.2.9.RELEASE, а также более старые ненадлежащие версии. Основная проблема заключается в том, что приложения, использующие аннотации типа @RequestMapping
на интерфейсах клиентов Feign, могут непреднамеренно открывать конечные точки, соответствующие методам, помеченным аннотацией @RequestMapping
.
Основные аспекты риска
-
Непреднамеренное открытие конечных точек: Поскольку метод с аннотацией
@RequestMapping
становится доступным для вызовов, это может привести к тому, что злоумышленник сможет отправить запросы к этим конечным точкам. Хотя ответ не возвращается, такие запросы могут привести к выполнению определенных действий на сервере. -
Доступ к защищенным ресурсам: Технически, даже если ответ на запрос не возвращается, запрос все равно может быть обработан сервером. Это означает, что злоумышленник может потенциально взаимодействовать с внутренними механизмами приложения, не получая ответа о результатах. Поэтому, если конечные точки связаны сCRUD-операциями или другими важными бизнес-процессами, это создает риск несанкционированного доступа к данным или функционалу.
-
Отсутствие контроля над запросами: Поскольку злоумышленник может отправлять запросы к открытым конечным точкам, без надлежащей системы аутентификации и авторизации, это может привести к нарушениям безопасности. Это особенно критично для приложений, обрабатывающих конфиденциальную информацию или выполняющих важные логические операции.
-
Трудности с обнаружением: Отсутствие ответа на запрос может затруднить обнаружение атаки. Организации могут не знать о том, что уязвимости были использованы, что делает своевременное реагирование на инциденты более сложным.
-
Потенциальные последствия: В зависимости от того, как реализованы конечные точки и какие действия они выполняют, злоумышленник может использовать данную уязвимость для широкого спектра атак, включая, но не ограничиваясь, Denial of Service (отказ в обслуживании) или попытки манипуляции данными.
Рекомендации по снижению рисков
-
Обновление библиотеки: Первое и главное, рекомендуется обновить Spring Cloud OpenFeign до последней версии, в которой эта уязвимость исправлена.
-
Аудит конечных точек: Провести аудит всех конечных точек, помеченных
@RequestMapping
, и убедиться, что они правильно защищены, а доступ к ним осуществляется только для авторизованных пользователей. -
Управление доступом: Реализовать строгую политику аутентификации и авторизации для защиты приложений и их ресурсов.
-
Логирование и мониторинг: Настроить системы логирования и мониторинга, чтобы отслеживать любые необычные запросы и потенциально злоумышленное поведение.
Таким образом, даже несмотря на то, что ответ не возвращается для запросов, отправляемых к уязвимым конечным точкам, риск, связанный с CVE-2021-22044, заключается в возможности несанкционированного доступа и манипуляции данными, что может причинить значительный вред организации.