Мы уже рассказывали о наиболее крупных утечках персональных данных за последние несколько лет и о том, как эту проблему пытаются решить разные страны на законодательном уровне. Сегодня, продолжая тему информационной безопасности Big Data, поговорим об основных уязвимостях главного инфраструктурного решения для больших данных — Apache Hadoop.
Некоторые инциденты нарушения безопасности Hadoop
Осень 2018 года оказалась богатой на урожай обнаруженных и активно используемых злоумышленниками уязвимостей Apache Hadoop. В частности, в ноябре 2018 вредоносный ботнет Mirai использовал сервера хадуп в качестве средства своего распространения. Для этого эксплуатировалась уязвимость YARN, одного из основных модулей Hadoop, которая позволяет осуществить внедрение команд и выполнить произвольные команды shell [1]. Месяцем ранее эта же уязвимость использовалась ботнетом DemonBot для осуществления массивных DDoS-атак. При этом атакующим удалось получить доступ к внутреннему YARN API, открытому для внешних подключений [2].
Однако, эти случаи относятся непосредственно к Apache Hadoop и решаются настройкой авторизации модуля YARN. Более интересны и сложны инциденты, связанные с хадуп опосредовано, например, как Zip Slip – уязвимость библиотек распаковки архивных файлов. Эта проблема, обнаруженная в июне 2018 года, затрагивает любой код, распаковывающий сжатые архивы (файлы форматов zip, rar, jar, 7z, tar, war, cpio, apk). Благодаря недостаточной проверке имен файлов злоумышленник может указывать место для разархивированного файла в существующей папке или файле на атакуемой системе. Оттуда вредоносный код может переписать данные в любом месте на системе и позволить ему внедрять произвольные команды в скрипты или изменять исполняемые файлы [3].
Ошибка не относится к конкретному архиватору или формату файла, а связана с компонентами, осуществляющими распаковку данных – типовыми подпрограммами, доступных в репозиториях или фреймворках [4]. Проблема позволяет пользователю кластера опубликовать публичный архив, способный затрагивать другие файлы, принадлежащие пользователю, запускающему демон YARN NodeManager. Если затронутые файлы принадлежат другому, уже локализованному общедоступному архиву на узле, возможно внедрение кода в задания других пользователей кластера, которые используют общедоступный архив. Zip Slip опасна для всех версий Apache Hadoop, кроме 3.1.1, 3.0.3, 2.8.5 и 2.7.7, а также JBoss Fuse 6.0 и 7.0 [3]. Проблема решается обновлением Apache Hadoop до версий 2.7.7, 2.8.5, 2.9.2, 3.0.3 или 3.1.1.
В 2016 году была выявлена критическая уязвимость, позволяющая злоумышленнику, аутентифицированному в HDFS NameNode, выполнить произвольный код c правами сервиса HDFS из-за отсутствия экранирования спецсимволов при запуске команд через shell. Проблема устранена в версиях Apache Hadoop 2.7.3 и 2.6.5 [5]. Полный перечень проблем и их решений доступен на официальном сайте Apache Hadoop.
С чем связаны основные уязвимости хадуп: 3 главных фактора
- Специфика open source: при разработке продуктов с открытым исходным кодом большее внимание уделяется функциональности, чем безопасности. В экосистему Apache Hadoop для Big Data входит множество продуктов, которые постоянно обновляются. В частности, хадуп занимает 1-ое место среди репозиториев Apache по числу вносимых изменений и 5-е место по размеру кодовой базы (около 4 млн строк кода) [6]. Далеко не сразу каждый open source-продукт становится стабильным и надежным, поскольку необходима проверка не только его корректной работы, но и взаимодействия с другими компонентами экосистемы. Какие средства Apache используются для защиты кластера Hadoop, мы рассматриваем в отдельной статье.
- Особенности файловой системы:HDFS реализуется поверх другой нативной файловой системы, например, ext3. Средства контроля доступа для Hadoop реализуются с использованием разрешений на основе файлов, соответствующих модели разрешений UNIX®, когда доступ осуществляется по принципу «все или ничего». Это означает, что клиент, имеющий доступ к файлу, может обратиться ко всем полям внутри этого файла [7]. Эта особенность повлекла за собой уязвимость в коде авторизации HDFS, позволяющей узнать значения расширенных атрибутов через выполнение операции listXAttrs, когда при проверке полномочий учитывался только доступ к операциям просмотра каталогов на уровне файловых путей, но не выполнялась проверка прав на чтение содержимого. Проблема решается детализированной политикой управления доступом на основе ролей (RBAC), реализованной в версии Apache Hadoop2 [6].
- Неверная настройка серверов, связанная с недостатком компетенций у администраторов. Например, Джон Мазерли, основатель поискового сервиса Shodan, обнаружил, что без авторизации доступны почти 4500 неверно сконфигурированных серверов HDFS по всему миру (США, Китай, Германия, Южная Корея), которые суммарно раскрывают более 5120 терабайт данных. В конце 2016 и начале 2017 года такие плохо настроенные серверы Hadoop (а также MongoDB, Elasticsearch и CouchDB) уже страдали от взломов и волны вымогательских атак [8]. Как избежать этой проблемы, мы рассматриваем на практических занятиях в курсе DSEC: Безопасность озера данных Hadoop.
Узнайте больше о средствах обеспечения безопасности кластера для больших данных в нашей следующей статье и освойте настройку и администрирование хадуп в специализированном учебном центре – практические курсы обучения пользователей, инженеров, администраторов и аналитиков Big Data в Москве: DSEC: Безопасность озера данных Hadoop
Источники
- https://www.securitylab.ru/news/496639.php
- https://www.securitylab.ru/news/496188.php
- https://www.securitylab.ru/news/496667.php
- https://threatpost.ru/zip-slip-threaten-multiple-services-with-remote-code-execution/26468/
- https://www.opennet.ru/opennews/art.shtml?num=45580
- https://zen.yandex.ru/media/opennet/reliz-platformy-dlia-raspredelennoi-obrabotki-dannyh-apache-hadoop-32-5c4ef9fb6823bc0465730226
- https://www.ibm.com/developerworks/ru/library/se-hadoop/
- https://xakep.ru/2017/06/05/unsecure-hadoop/?amp