От межсайтового скриптинга до внедрения вредоносного кода: какие проблемы информационной безопасности были обнаружены и исправлены в Apache Spark в 2023, 2022 и 2021 годах.
Последние известные и исправленные проблемы информационной безопасности Apache Spark
Недавно мы писали о механизмах обеспечения информационной безопасности в Apache Spark. Однако, несмотря на наличие этих средств, ежегодно обнаруживаются различные уязвимости, которые обычно устраняются выпуском новых релизов.
Например, в текущем году была выявлена уязвимость CVE-2023-32007, связанная с возможностью внедрения команд оболочки Apache Spark 3.1.3 через пользовательский интерфейс фреймворка. Впрочем, эта проблема не новая – впервые она возникла год назад под шифром CVE-2022-33891 и отмечена важной степенью серьезности. Пользовательский интерфейс фреймворка предлагает возможность включить списки управления доступом с помощью параметра конфигурации spark.acls.enable. С фильтром проверки подлинности проверяется, есть ли у пользователя права доступа для просмотра или изменения приложения. Если списки управления доступом включены, путь кода в HttpSecurityFilter может позволить пользователю выполнять олицетворение, указав произвольный логин. Затем злоумышленник может получить доступ к функции проверки разрешений, которая в конечном итоге создаст команду оболочки Unix на основе его ввода и выполнит ее. Это приведет к выполнению произвольной команды shell-оболочки при работе текущего пользователя Spark. Избежать этого поможет обновление фреймворка до версии 3.2.2, 3.3.0 или выше.
Также в 2023 году была выявлена уязвимость CVE-2023-22946, приводящая к повышению привилегий прокси-пользователя Apache Spark из вредоносного класса конфигурации. Эта проблема маркирована средней степенью серьезности и затрагивает все версии до 3.4.0 Описание: В версиях фреймворка до 3.4.0 приложения, использующие spark-submit, могут указывать прокси-пользователя для запуска скрипта, ограничивая привилегии. Однако, приложение может выполнять код с привилегиями отправляющего пользователя, предоставляя вредоносные классы, связанные с конфигурацией, в пути к классам. Это влияет на архитектуры, использующие прокси-пользователя, при работе с REST-интерфейсом Apache Livy для управления отправленными приложениями. Проблема решается обновлением фреймворка до выпуска 3.4.0 или более поздней версии. После этого следует убедиться, что для конфигурации spark.submit.proxyUser.allowCustomClasspathInClusterMode установлено значение по умолчанию false и оно не переопределяется отправленными в кластер приложениями.
В прошлом году также была обнаружена уязвимость межсайтового скриптинга CVE-2022-31777. XSS (Cross-Site Scripting) представляет собой тип атаки на веб-системы с внедрением в выдаваемую веб-страницу вредоносного кода и взаимодействии этого кода с веб-сервером злоумышленника. В Apache Spark до версий 3.2.1 и 3.3.0 XSS-уязвимость средней степени серьезности возникала в пользовательском интерфейсе средства просмотра журнала, позволяя удаленным злоумышленникам выполнять произвольный JavaScript в веб-браузере пользователя, включая вредоносную полезную нагрузку. Устранить потенциальную опасность поможет обновление фреймворка до версий 3.2.2, 3.3.1 или выше.
Наконец, в 2021 году была обнаружена уязвимость CVE-2021-38296, связанная с согласованием ключей. Она отмечена средней степенью серьезности и затрагивала версии 3.1.2 и ранее. Суть проблемы состоит в поддержке сквозного шифрования RPC-соединений через конфигурации spark.authenticate и spark.network.crypto.enabled. В версиях 3.1.2 и ранее используется специальный протокол взаимной проверки подлинности, позволяющий полностью восстановить ключ шифрования. После первоначальной интерактивной атаки есть возможность расшифровать трафик открытого текста в автономном режиме. Впрочем, уязвимость не влияет на механизмы безопасности, контролируемые параметрами конфигурации spark.authenticate.enableSaslEncryption, spark.io.encryption.enabled, spark.ssl и spark.ui.strictTransportSecurity. Как обычно, проблема решилась обновлением фреймворка до версии 3.1.3 или более поздней.
Узнайте больше про использование Apache Spark для разработки приложений аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:
- Основы Apache Spark для разработчиков
- Анализ данных с Apache Spark
- Потоковая обработка в Apache Spark
- Машинное обучение в Apache Spark
- Графовые алгоритмы в Apache Spark