Hades PyPI-aanval: 19 pakketten vergiftigd voor Auto-Run Bun Credential Stealer

De toeleveringsketencampagne van Miasma heeft geleid tot een nieuwe aanvalsgolf Hadesdit keer met 37 kwaadaardige wielartefacten verspreid over 19 pakketten in het Python Package Index (PyPI)-register, terwijl de aanvallen in Mini Shai-Hulud-stijl steeds verfijnd en versplinterd worden om zich op specifieke ecosystemen te richten.

“De gecompromitteerde releases hebben een *-setup.pth-bestand geleverd dat automatisch probeert uit te voeren tijdens het opstarten van Python, de Bun JavaScript-runtime downloadt en een versluierde JavaScript-payload met de naam _index.js uitvoert”, zei Socket in een nieuwe analyse.

De lijst met geïdentificeerde pakketten vindt u hieronder:

  • bramin 0,0,2, 0,0,3, 0,0,4
  • cmd2func 0.2.2, 0.2.3
  • koelbox 0.4.1, 0.4.2
  • dynamo-uitgave 1.5.4
  • uitvoerder-engine 0.3.4, 0.3.5
  • uitvoerder-http 0.1.3, 0.1.4
  • funcdesc 0.2.2, 0.2.3
  • magisch 0.6.8, 0.6.9
  • magique-ai 0.4.4, 0.4.5
  • mrbios 0.1.1, 0.1.2
  • napari-ufish 0,0,2, 0,0,3
  • nucbox 0.1.2, 0.1.3
  • okiet 0,0,7, 0,0,8
  • pantheon-agenten 0.6.1, 0.6.2
  • pantheon-toolsets 0.5.5, 0.5.6
  • spateo-release 1.1.2
  • synagoge 0.1.1, 0.1.2
  • uvis 0.1.2, 0.1.3
  • opwaarderen 0.1.3, 0.1.4

Net als in de eerdere Shai-Hulud- en Miasma-campagnes downloadt en installeert de kwaadaardige payload de Bun JavaScript-runtime, die vervolgens wordt gebruikt om een ​​zwaar versluierde JavaScript-stealer te lanceren die een breed scala aan gegevens van ontwikkelaarssystemen kan verzamelen.

Dit omvat geheimen die verband houden met GitHub, npm, PyPI, RubyGems, JFrog, CircleCI, Anthropic, AWS, GCP, Azure en Kubernetes, samen met Docker-configuraties, Vault-tokens, SSH-sleutels, shell-geschiedenissen, .env-bestanden, .npmrc-bestanden, .pypirc-bestanden, Claude/MCP-configuraties en andere lokale of runner-toegankelijke inloggegevens.

Wat deze keer is veranderd, is de campagnemarkering. Terwijl eerdere iteraties de verzamelde gegevens exporteerden naar een openbare GitHub-repository met de beschrijving “Miasma: The Spreading Blight”, “Miasma: The Spreading Blight” en “Miasma – The Spreading Blight”, bevat de nieuwste golf de beschrijvingen van de repository –

  • Hades – Het einde voor de verdoemden
  • Hades * Het einde voor de verdoemden

“Dat maakt Hades het best te begrijpen als een PyPI-tak van dezelfde Mini Shai-Hulud / Miasma-lijn, en niet als een op zichzelf staand Python-malware-incident”, aldus het applicatiebeveiligingsbedrijf. “De kern van het draaiboek blijft hetzelfde: misbruik maken van vertrouwde pakketkanalen, uitvoeren vóór normaal pakketgebruik, een door Bun aangedreven JavaScript-payload opzetten, ontwikkelaars- en CI/CD-inloggegevens stelen en op GitHub gerichte exfiltratie- en propagatielogica gebruiken.”

Wat deze keer is veranderd, is het gebruik van een *-setup.pth-bestand dat wordt verwerkt door Python’s “site”-module tijdens het opstarten van de tolk, wat resulteert in de uitvoering van de kwaadaardige lading na installatie zonder dat het slachtoffer het vergiftigde pakket hoeft te importeren. De payload downloadt en voert Bun uit GitHub uit en voert de stealer uit, maar niet voordat hij heeft gecontroleerd of het systeem overeenkomt met de Russische landinstelling.

“Dit is het Python-equivalent van het npm install-hook-probleem waar Shai-Hulud en Miasma herhaaldelijk misbruik van maken”, legt Socket uit. “De syntaxis is anders, maar de gevolgen voor de veiligheid zijn hetzelfde: de installatie van afhankelijkheid creëert een uitvoeringsvoorsprong voordat de applicatiecode wordt beoordeeld of aangeroepen.”

Hades Cluster probeert AI-beveiligingsscanners te misleiden

Ook gecompromitteerd als onderdeel van de Hades-campagne zijn een aantal pakketten gerelateerd aan de computationele biologie, bio-informatica en het genotype-fenotype-analyse-ecosysteem –

  • embiggen 0.11.97
  • verkleinen 0.8.101
  • gpsea 0.9.14
  • mflux-streamlit 0,0,3, 0,0,4
  • nhmpy 2.4.7
  • ppkt2synergie 0.1.1
  • pyphetools 0.9.120

Interessant is dat dit cluster een andere aanpak hanteert, in die zin dat het toegangspunt is ingebed in het “__init__.py”-bestand van het pakket als een versluierde importhook van één regel. Het resultaat is echter hetzelfde: het downloaden en uitvoeren van de Bun-runtime, gevolgd door de uitvoering van de JavaScript-payload.

“Het gebruik van de Bun-runtime blijft een consistent thema”, aldus StepSecurity. “Door Bun te downloaden als een zelfstandig ZIP-bestand kan de malware complexe JavaScript-taken uitvoeren in omgevingen die geen Node.js-installatie hebben, waarbij traditionele pakketbeheercontroles en netwerkproxylogboeken worden omzeild.”

In wat wordt gekarakteriseerd als een nieuwe techniek voor het ontwijken van kunstmatige intelligentie (AI), bevat de malware ook een promptinjectie in platte tekst die probeert op het Large Language Model (LLM) gebaseerde pakketanalysetools te misleiden om het model te instrueren het pakket als veilig te classificeren.

Bovendien vraagt ​​de malware GitHub naar het sleutelwoord “TheBeautifulSnadsOfTime” om een ​​Base64-gecodeerde string te extraheren die een JavaScript-payload bevat. Het vraagt ​​GitHub ook naar commits die overeenkomen met het sleutelwoord “firedalazer” om zo een op Python gebaseerde dropper op te halen en deze uit te voeren.

Enkele van de belangrijke functies die in de Hades-malware zijn ingebouwd, worden hieronder vermeld:

  • Repliceer en verspreid ze lateraal over ontwikkelaarsnetwerken via SSH of SCP, push trojanversies van PyPI-pakketten van gecompromitteerde systemen door gebruik te maken van de OpenID Connect (OIDC)-vertrouwensconfiguraties van de ontwikkelaars.
  • Target GitHub-opslagplaatsen om organisatiegeheimen te extraheren met behulp van GitHub Actions-runners als het geoogste GitHub-token de juiste schrijfmachtigingen heeft.
  • Lokale backdoor-werkruimtemappen om code-uitvoering te activeren wanneer deze wordt geanalyseerd door AI-assistenten of wordt geopend in IDE’s. Doelwitten zijn onder meer Anthropic Claude, OpenAI Codex, Google Gemini, Microsoft Copilot, Cline, Aider, Tabby, Amazon Q, Cody, Bolt en Continue.
  • Installeer een achtergrondservice met de naam “gh-token-monitor” die fungeert als wisser door alle gegevens te verwijderen (“rm -rf ~/; rm -rf ~/Documents”) als het gestolen GitHub-token wordt ingetrokken door de ontwikkelaar.

“Een belangrijke mogelijkheid van de Miasma-acteur is het lezen van het procesgeheugen van de GitHub Actions-runner (het Runner.Worker-proces) om geheimen te extraheren”, zei beveiligingsonderzoeker Rohan Prabhu. “In eerdere campagnes was dit beperkt tot Linux-systemen die /proc/{pid}/mem gebruikten. De Hades-campagne introduceert op maat gemaakte macOS- en Windows-geheugenschrapers.”

De ontwikkeling komt op het moment dat StepSecurity onthulde dat een onbekende aanvaller het GitHub-account (“LeonOstrez”), gekoppeld aan “Pythagora-io/gpt-pilot”, een populaire open-source AI-ontwikkelaarstool, heeft gecompromitteerd en een variant van de Shai-Hulud-worm voor het stelen van inloggegevens met geweld naar de hoofdtak heeft gepusht. De malware is ontworpen om stil te worden geactiveerd wanneer een nietsvermoedende ontwikkelaar het project uitvoert, terwijl systemen met een Russische landinstelling worden vermeden.

“De malware, een variant van de Shai-Hulud-worm, werd tegengehouden door een onwaarschijnlijke verdediger: ruff, een Python-codeformatter”, zegt Ashish Kurmi, medeoprichter en CTO van StepSecurity. “De aanvaller probeerde twee keer de kwaadaardige code voorbij CI te krijgen, maar faalde beide keren omdat het geïnjecteerde Python-bestand niet overeenkwam met de opmaak- en lintregels van het project.”

Beveiligingsbedrijf voor de toeleveringsketen van software Snyk heeft deze aanvallen beschreven als onderdeel van de Shai-Hulud/Miasma-lijn, waarbij elke golf gebruik maakt van een Bun-runtime versluierde stealer en deze combineert met “nieuwe volharding, nieuwe exfiltratieroutes en nieuwe manieren om code automatisch af te vuren tijdens installatie of build.”

“De Miasma-campagne bewijst dat het hebben van ondertekende sleutels en geauthenticeerde beheerdersaccounts niet langer een absolute garantie voor veiligheid zijn”, aldus Cloudsmith. “Wanneer upstream-registers en repo’s worden gecompromitteerd, wordt publieke code een van de gemakkelijkste en meest directe manieren om gepwnd te worden.”

Thijs Van der Does