npm-, PyPI- en RubyGems-pakketten gevonden bij het verzenden van ontwikkelaarsgegevens naar Discord-kanalen

Cybersecurity-onderzoekers hebben verschillende kwaadaardige pakketten geïdentificeerd in npm-, Python- en Ruby-ecosystemen die Discord gebruiken als een command-and-control (C2) kanaal om gestolen gegevens naar door actoren bestuurde webhooks te verzenden.

Webhooks op Discord zijn een manier om berichten op kanalen op het platform te plaatsen zonder dat een botgebruiker of authenticatie nodig is, waardoor ze een aantrekkelijk mechanisme zijn voor aanvallers om gegevens te exfiltreren naar een kanaal onder hun controle.

“Belangrijk is dat webhook-URL’s feitelijk alleen-schrijven zijn”, zei Socket-onderzoeker Olivia Brown in een analyse. “Ze onthullen de kanaalgeschiedenis niet, en verdedigers kunnen eerdere berichten niet teruglezen alleen door de URL te kennen.”

Het software supply chain-beveiligingsbedrijf zei dat het een aantal pakketten heeft geïdentificeerd die op verschillende manieren Discord-webhooks gebruiken –

  • mysql-dumpdiscord (npm), dat de inhoud van configuratiebestanden voor ontwikkelaars zoals config.json, .env, ayarlar.js en ayarlar.json overhevelt naar een Discord-webhook
  • nodejs.discord (npm), dat een Discord-webhook gebruikt om waarschijnlijk waarschuwingen te loggen (een aanpak die niet inherent kwaadaardig is)
  • malinssx, malicus en maliinn (PyPI), die Discord gebruiken als een C2-server door elke keer dat de pakketten worden geïnstalleerd een HTTP-verzoek naar een kanaal te activeren met behulp van “pip install
  • sqlcommenter_rails (RubyGems.org), dat hostinformatie verzamelt, inclusief de inhoud van gevoelige bestanden zoals “/etc/passwd” en “/etc/resolv.conf”, en deze naar een hardgecodeerde Discord-webhook stuurt

“Misbruik van Discord-webhooks terwijl C2 ertoe doet, omdat het de economie van supply chain-aanvallen omdraait”, merkte Brown op. “Door vrij en snel te zijn, vermijden bedreigingsactoren het hosten en onderhouden van hun eigen infrastructuur. Bovendien passen ze zich vaak aan de reguliere code en firewallregels aan, waardoor exfiltratie zelfs van beveiligde slachtoffers mogelijk is.”

“In combinatie met install-time hooks of build-scripts kunnen kwaadaardige pakketten met Discord C2-mechanisme stilletjes .env-bestanden, API-sleutels en hostgegevens overhevelen van ontwikkelaarsmachines en CI-runners, lang voordat runtime monitoring de app ooit ziet.”

Aanstekelijk interview overspoelt npm met neppakketten

De onthulling komt omdat het bedrijf ook 338 kwaadaardige pakketten heeft gemarkeerd die zijn gepubliceerd door Noord-Koreaanse bedreigingsactoren die verband houden met de Contagious Interview-campagne, en deze gebruiken om malwarefamilies zoals HexEval, XORIndex en gecodeerde laders die BeaverTail leveren te leveren, in plaats van de JavaScript-stealer en downloader direct te laten vallen. De pakketten werden gezamenlijk ruim 50.000 keer gedownload.

“Tijdens deze laatste golf gebruikten Noord-Koreaanse dreigingsactoren meer dan 180 neppersona’s gekoppeld aan nieuwe npm-aliassen en registratie-e-mails, en voerden ze meer dan een dozijn command and control (C2)-eindpunten uit”, aldus beveiligingsonderzoeker Kirill Boychenko.

Doelstellingen van de campagne zijn onder meer Web3-, cryptocurrency- en blockchain-ontwikkelaars, maar ook werkzoekenden in de technische sector, die op professionele platforms als LinkedIn worden benaderd met lucratieve kansen. Potentiële doelwitten krijgen vervolgens de opdracht om een ​​coderingsopdracht te voltooien door een booby-trapped repository te klonen die verwijst naar een kwaadaardig pakket (bijvoorbeeld eslint-detector) dat al in het npm-register is gepubliceerd.

Eenmaal lokaal op de machine uitgevoerd, fungeert het pakket waarnaar in het veronderstelde project wordt verwezen als een stealer (dwz BeaverTail) om browsergegevens, cryptocurrency-portemonneegegevens, macOS-sleutelhanger, toetsaanslagen, klembordinhoud en schermafbeeldingen te verzamelen. De malware is ontworpen om extra ladingen te downloaden, waaronder een platformonafhankelijke Python-achterdeur met de codenaam InvisibleFerret.

Van de honderden pakketten die door Noord-Koreaanse actoren zijn geüpload, zijn er veel typosquats van hun legitieme tegenhangers (bijvoorbeeld dotevn versus dotenv), vooral die gerelateerd aan Node.js, Express of frontend-frameworks zoals React. Sommige van de geïdentificeerde bibliotheken blijken ook op Web3-kits te lijken (bijvoorbeeld ethrs.js versus ethers.js).

“Contagious Interview is geen hobby op het gebied van cybercriminaliteit, het werkt als een lopende band of als een bedreiging voor de toeleveringsketen in fabrieksmodel”, aldus Boychenko. “Het is een staatsgestuurde, quotagestuurde operatie met duurzame middelen, geen weekendploeg, en het verwijderen van een kwaadaardig pakket is onvoldoende als het bijbehorende uitgeversaccount actief blijft.”

“Het traject van de campagne wijst in de richting van een duurzame, fabrieksachtige operatie die het npm-ecosysteem behandelt als een hernieuwbaar initieel toegangskanaal.”

Thijs Van der Does