tom@home.htb:~$

Blog o HTB

23 November 2020

Monitoring, observability a admin platformy jako útoková plocha

Úvod a kontext

Monitoring a observability systémy se často vnímají jako pasivní vrstva. Dashboard ukazuje stav služeb, sbírají se logy, někde běží agent a tím to končí. V praxi je to naopak jedna z nejcitlivějších částí prostředí. Tyto platformy mívají přístup:

Doctor, Haystack, Wall a Omni ukazují čtyři různé podoby stejného problému. Splunk, Kibana/Logstash, Centreon i Windows Device Portal nejsou “jen dashboard”. Jsou to řídicí a integrační vrstvy s mimořádně vysokou důvěrou. Jakmile do nich útočník vstoupí, často už neřeší jednu aplikaci, ale celou správní rovinu systému.

Co mají tyto platformy společné

Na první pohled jde o odlišné produkty. Ve skutečnosti je spojuje několik vlastností.

1. Vidí dál než běžná aplikace

Monitoring a admin platforma typicky agreguje:

Útočník tak po kompromitaci jednoho dashboardu často získá přehled o mnohem širším prostoru než z běžného webového serveru.

2. Umí spouštět akce

Tyto systémy nebývají jen read-only. Umí:

Právě to je dělá tak nebezpečnými. Kdo může ovlivnit “observability” vrstvu, často může nepřímo spustit kód nebo změnit stav jinde.

3. Běží s vysokou důvěrou

Typický monitoring server nebo admin rozhraní běží s většími právy než běžná aplikace. Je navržený tak, aby:

To znamená, že i “menší” chyba v jeho přístupu nebo autentizaci bývá mnohem cennější než chyba v běžném frontendu.

Jak tenhle vzorec vypadal v praxi

Wall: Centreon jako platforma pro spouštění kontrol

Wall je dobrý příklad toho, že monitoring panel není jen přehled služeb. První vstup vznikl přes slabé heslo admin / password1 do Centreonu. Samotné přihlášení by ještě nebylo kritické, kdyby Centreon neuměl víc než zobrazit grafy. Jenže on umí definovat a spouštět kontroly, tedy ve skutečnosti distribuovat příkazy.

Jakmile se podařilo autentizovat, authenticated RCE exploit využil právě tuhle řídicí rovinu platformy. To je klíčová lekce: slabé heslo v monitoringu je nebezpečnější než stejné heslo v obyčejném informačním webu, protože za ním stojí systém navržený ke spouštění akcí.

Doctor: Splunk jako root kanál přes appku

Doctor ukazuje jinou variantu. Splunkd běžel na 8089 a stejné heslo Guitar123, které uniklo z Apache logu, fungovalo i pro účet shaun ve Splunku. Právě tady je dobře vidět, že observability platforma není izolovaný produkt. Byla navázaná na stejnou identitu a zároveň dovolovala vzdáleně doručit škodlivou appku přes SplunkWhisperer2.

Tedy:

Opět nejde o dashboard. Jde o platformu s instalačním a exekučním modelem.

Haystack: Kibana a Logstash jako celý řetězec

Haystack je důležitý proto, že zde nestačí mluvit jen o “Kibaně”. Ve skutečnosti jde o celý observability řetězec:

To je přesně situace, kdy se observability vrstva mění v administrativní rovinu, aniž by to tak na první pohled vypadalo. Na hostu šlo přes 127.0.0.1:5601 načíst vlastní skript a následně zneužít Logstash, který bral řádky Ejecutar comando: jako instrukce.

Tento příklad je cenný tím, že ukazuje kombinaci UI, API i backend pipeline. Útok neproběhl “na dashboard”. Proběhl na celém řetězci, který dashboard obsluhuje.

Omni: Windows Device Portal jako správa zařízení

Omni zase ukazuje, že admin platforma nemusí být klasický monitoring stack. Windows Device Portal na Windows IoT Core je plnohodnotné správní rozhraní zařízení. Přes SirepRAT bylo možné spouštět příkazy, a rozhodující mezikrok pak vedl ke skriptu r.bat, který průběžně resetoval heslo administrátora.

Tady je dobře vidět, proč má smysl mluvit širším pojmem “admin platformy”. Device Portal, Centreon a Splunk vypadají odlišně, ale spojuje je to hlavní:

Jak tyto platformy auditovat po footholdu

Po získání prvního shellu nebo přístupu do části prostředí se vyplatí cíleně ptát:

Užitečné jsou hlavně otázky:

Právě tam se rozhoduje, zda jde o “jen dashboard”, nebo o skutečný admin kanál.

Jak si to nesplést s příbuznými tématy

Tento článek se dotýká i logů, debug rozhraní a localhost služeb, ale je dobré držet rozdíly.

Obrana a bezpečnější návrh

1. Monitoring a admin platformy izolovat jako vysoce citlivou vrstvu

Tyto systémy nemají být chráněné stejně jako běžný interní web. Jejich dopad je větší, protože kombinují viditelnost i možnost zásahu.

2. Oddělit identity a nepoužívat reuse hesel

Doctor ukazuje, jak rychle se problém násobí, když stejné heslo funguje v Apache logu, Linux účtu i ve Splunku. U těchto platforem má reuse obvykle vyšší dopad než jinde.

3. Tvrdě řídit pluginy, appky a checky

Centreon i Splunk jsou cenné právě proto, že umí rozšíření a akce. Obrana musí přesně hlídat:

4. Nevěřit interním pipeline jen proto, že jsou “pro monitoring”

Haystack dobře ukazuje, že pokud Logstash nebo jiný backend zpracovává vstup jako instrukci, problém není v tom, že jde o observability systém. Problém je v tom, že privilegovaná pipeline interpretuje nebezpečný obsah.

5. Admin rozhraní zařízení brát jako plnohodnotnou správní vrstvu

Device Portal, iLO, iDRAC, Centreon nebo obdobné systémy mají mít stejně přísný přístupový model jako nejcitlivější správa infrastruktury.

Shrnutí klíčových poznatků

Co si odnést do praxe

tags: monitoring - observability - admin-platforms - splunk - kibana - centreon