Найти тему
CyberSec News

Big data под угрозой, новая уязвимость в Apache Cassandra

Оглавление

Исследователи из JFrog’s Security Research team недавно раскрыли RCE (remote code execution) уязвимость в Apache Cassandra, которой присвоен номер CVE-2021-44521, оценённую на 8.4 по CVSS. Эту уязвимость безопасности Apache легко использовать и она может нанести ущерб системам, но, к счастью, проявляется только в конфигурациях Cassandra, отличных от стандартных.

Cassandra — это хорошо масштабируемая распределенная база данных NoSQL, которая чрезвычайно популярна благодаря преимуществам своей распределенной природы. Cassandra используется такими предприятиями, как Netflix, Twitter, Urban Airship, Constant Contact, Reddit, Cisco, OpenX, Digg, CloudKick, Ooyala и другими. Cassandra также чрезвычайно популярна в кругах DevOps и облачных разработчиков, о чем свидетельствует ее поддержка в проектах CNCF (таких как Jaeger ).
Некоторые компании даже предоставляют готовые облачные решения на основе Cassandra, такие как
DataStax (бессерверная многооблачная DBaaS).

Недостаток возникает только в том случае, если в Cassandra включена функция создания пользовательских функций (UDF) для обработки пользовательских данных, и ею можно злоупотреблять, только если злоумышленник имеет достаточные разрешения для создания этих UDF. Это не настройка по умолчанию, и ранее она была задокументирована как небезопасная.

Развертывания Cassandra уязвимы для CVE-2021-44521, если файл конфигурации cassandra.yaml содержит следующие определения:

enable_user_defined_functions: true
enable_scripted_user_defined_functions:true
enable_user_defined_functions_threads:false

Функция UDF в Cassandra может быть написана на Java и JavaScript, а последний использует движок Nashorn, поэтому безопасность при приеме ненадежного кода не гарантируется, и лучше всего запускать ее в безопасной среде.

В то время как Cassandra реализует песочницу для ограничения кода UDF, включив некоторые дополнительные настройки, злоумышленники могут злоупотреблять механизмом Nashorn, чтобы выйти из безопасной среды и выполнить удаленный код в уязвимой системе.

В своем официальном документе по CVE-2021-44521 компания Jfrog подробно описала процесс, который позволил обойти среду песочницы Cassandra, продемонстрированный в его доказательстве концепции (PoC). Также отметили выявление некоторых других недостатков, включая атаки типа «отказ в обслуживании» (DoS) и другие уязвимости RCE.

Как исправить CVE-2021-44521?

Пользователям рекомендовано обновиться с версии 3.0.x до
3.0.26, с версии 3.11.x до 3.11.12 и с версии 4.0.x до 4.0.2.

Исправление Apache добавляет новый флаг allow_extra_insecure_udfs(по умолчанию false), который запрещает отключение диспетчера безопасности и блокирует доступ к файлам java.lang.System.

При этом пользователи, которые хотят, чтобы их пользовательские функции взаимодействовали с элементами за пределами песочницы (и не возражают против потенциальной угрозы безопасности), могут включить флаг, чтобы восстановить устаревшее поведение (не рекомендуется!).

Как смягчить CVE-2021-44521?

Рекомендуются следующие меры для пользователей, которые не могут обновить свои экземпляры Cassandra:

  1. Если пользовательские функции не используются активно, их можно полностью отключить, установив enable_user_defined_functions значение false(значение по умолчанию)
  2. Если нужны пользовательские функции, установите enable_user_defined_functions_threads значение true(значение по умолчанию)
  3. Удалите разрешения на создание, изменение и выполнение функций для недоверенных пользователей, удалив следующие разрешения: ALL FUNCTIONS, ALL FUNCTIONS IN KEYSPACE и FUNCTION для CREATE, ALTER и EXECUTE запросов.

Это можно сделать с помощью следующих запросов, заменив  role_name на нужную роль.

#технологии #кибербезопасность #it технологии #программы #базы данных #big data