Hadoop

Материал из InformationSecurity WIKI
Версия от 10:09, 1 сентября 2022; Drakylar (обсуждение | вклад) (Презентации)

Перейти к: навигация, поиск

Общее

HDFS

HDFS (Hadoop FileSystem) - это виртуальная файловая система Hadoop, доступная по сети.

Сервисы

MasterNode WebUI

Это веб-интерфейс, запущенный на портах 50070(http) и 50470(https). Обычно на нем отсутствует аутентификация, поэтому его можно использовать для доступа к файловой системе.

MasterNode Metadata Service

Использует протокол IPC на портах 8020 и 9000. Требуется для взаимодействия с метадатой файлов HDFS.

DataNode WebUI

Веб-интерфейс для доступа к статусу, логам и тд. Запускается на 50075(http) и 50475(https) портах.


DataNode Data Transfer

Сервис для передачи данных в DataNode. Использует порт 50010

DataNode Metadata Service

Использует протокол IPC на порту 50020. Требуется для взаимодействия с метадатой файлов HDFS.


Secondary Node Checkpoint Service

Запущен на порту 50090 по протоколу http. Как понял используется для сохранения данных метадаты (запасное хранилище).

YARN

Интерфейсы (сервисы)

Application Manager

Порт(tcp): 8032

Протокол: http

Аутентификация: ???

Параметр в конфиге : yarn.resourcemanager.address

Scheduler

Порт(tcp): 8030

Протокол: http

Аутентификация: ???

Параметр в конфиге : yarn.resourcemanager.scheduler.address

ResourceManager Web Application

Порт(tcp): 8088, 8090

Протокол: http(8088), https(8090)

Аутентификация: ???

Параметр в конфиге : yarn.resourcemanager.webapp.address, yarn.resourcemanager.webapp.https.address

ResourceManager Tracker

Порт(tcp): 8031

Протокол: ???

Аутентификация: ???

Параметр в конфиге : yarn.resourcemanager.resource-tracker.address


ResourceManager Admin

Порт(tcp): 8033

Протокол: ???

Аутентификация: ???

Параметр в конфиге : yarn.resourcemanager.admin.address

NodeManager СontainerManager

Порт(tcp): 0

Протокол: ???

Аутентификация: ???

Параметр в конфиге : yarn.nodemanager.address

NodeManager Localizer

Порт(tcp): 8040

Протокол: ??? (IPC)

Аутентификация: ???

Параметр в конфиге: yarn.nodemanager.localizer.address

NodeManager Collector Service

Порт(tcp): 8048

Протокол: ??? (IPC)

Аутентификация: ???

Параметр в конфиге: yarn.nodemanager.collector-service.address

NodeManager WebUI

Порт(tcp): 8042, 8044

Протокол: http(8042), https(8044)

Аутентификация: ???

Параметр в конфиге: yarn.nodemanager.webapp.address, yarn.nodemanager.webapp.https.address

NodeManager Timeline RPC

Порт(tcp): 10200

Протокол: ???

Аутентификация: ???

Параметр в конфиге: yarn.timeline-service.address

NodeManager Timeline WebUI

Порт(tcp): 8188, 8190

Протокол: http(8188), https(8190)

Аутентификация: ???

Параметр в конфиге: yarn.timeline-service.webapp.address, yarn.timeline-service.webapp.https.address

SharedCacheManager Admin

Порт(tcp): 8047

Протокол: ???

Аутентификация: ???

Параметр в конфиге: yarn.sharedcache.admin.address

SharedCacheManager WebUI

Порт(tcp): 8788

Протокол: ???(http)

Аутентификация: ???

Параметр в конфиге: yarn.sharedcache.webapp.address

SharedCacheManager Node Manager

Порт(tcp): 8046

Протокол: ???

Аутентификация: ???

Параметр в конфиге: yarn.sharedcache.uploader.server.address

SharedCacheManager Client

Порт(tcp): 8045

Протокол: ???

Аутентификация: ???

Параметр в конфиге : yarn.sharedcache.client-server.address

NodeManager AMRMProxyService

Порт(tcp): 8049

Протокол: ???

Аутентификация: ???

Параметр в конфиге : yarn.nodemanager.amrmproxy.address

Router WebUI

Порт(tcp): 8089, 8091

Протокол: http(8089), https(8091)

Аутентификация: ???

Параметр в конфиге : yarn.router.webapp.address, yarn.router.webapp.https.address

Apache HBASE

ZooKeeper

Apache Ambari

Нужен для упрощения управления кластерами Hadoop, используя WebUI. Есть возможность интегрироваться с другими приложениями по REST API.

Из интересного:

- Все могут авторизоваться (даже стандартные юзеры)

- Нет защиты (directory listing, no cookie flags, no CSRF)

- CVE-2015-1775 - /logs/ логи


Сервисы =

WebUI

Общение по протоколу http (порт 8080) и https (порт 8440).

Registration/Heartbeat

Общение по протоколу https на порту 8441.

Agent

Порт 8670/tcp используется для Ping.

Apache Spark

Apache Kafka/Storm

Apache HIVE / DRILL

Mahout

Apache Solr / Lucene

Apache Ranger

Компонент безопасности Hadoop с открытым исходным кодом.

Из интересного:

- Поддержка Kerberos

- REST API

- Журналы аудита

- Модель разрешений на основе политики доступа (политики, юзеры, группы)


Интересные ИБ-проблемы:

- Slow HTTP DOS

- Все юзеры могут авторизоваться в Ranger (но не все - выполнять действия)

- CVE-2015-0266 - Missing function level access control, можно использовать для повышения привилегий

- CVE-2015-0265 - XSS в UserAgent


TODO: изучить как работает


https://ranger.apache.org/apidocs/index.html - API документация

Сервисы

Admin WebUI

Порт: 6080, 6182

Протокол: http(6180),https(6182)

Параметр конфига: ranger.service.http.port, ranger.service.https.port

UNIX Auth Service

Порт: 5151

Протокол: SSL/TCP

Параметр конфига: ranger.usersync.port

Ranger KMS

Порт: 9292, 9293

Протокол: http(9292), https(9293)

Параметр конфига: ranger.service.http.port, ranger.service.https.port

Solr Audit

Порт: 6083, 6183

Протокол: http(6083), https(6183)

Параметр конфига: ranger-admin (???)

OOZIE

PIG

Apache Hue

Облачный редактор SQL с открытым исходным кодом. Упоминается тут тк часто используется вместе с Hadoop. Использует порт 8888 по протоколу HTTP.

В старых версиях также присутствует DOM XSS, включена отладка, есть заголовок X-Frame-Options: ALLOWALL.

Утилиты

Ссылки

Видео

Статьи

Презентации

https://2015.zeronights.org/assets/files/03-Kaluzny.pdf

https://2016.zeronights.ru/wp-content/uploads/2016/12/Wavestone-ZeroNights-2016-Hadoop-safari-Hunting-for-vulnerabilities-v1.0.pdf