Hades напад на PyPI: 19 пакети заразени за автоматско извршување на крадец на акредитиви преку Bun

Кампањата за компромитација на синџирот на снабдување „Miasma“ предизвика нов бран напади наречен Hades, кој овојпат вклучува 37 злонамерни wheel-артефакти во 19 пакети во регистарот Python Package Index (PyPI), додека нападите во стилот на Mini Shai-Hulud продолжуваат да се усовршуваат и раздвојуваат за да таргетираат специфични екосистеми.

„Компромитираните изданија содржеа *-setup.pth датотека која се обидува автоматски да се изврши при стартување на Python, да го преземе Bun JavaScript runtime и да изврши обфусциран JavaScript товар наречен _index.js“, соопшти Socket во нова анализа.

Листата на идентификувани пакети е следна:

  • bramin 0.0.2, 0.0.3, 0.0.4
  • cmd2func 0.2.2, 0.2.3
  • coolbox 0.4.1, 0.4.2
  • dynamo-release 1.5.4
  • executor-engine 0.3.4, 0.3.5
  • executor-http 0.1.3, 0.1.4
  • funcdesc 0.2.2, 0.2.3
  • magique 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
  • okite 0.0.7, 0.0.8
  • pantheon-agents 0.6.1, 0.6.2
  • pantheon-toolsets 0.5.5, 0.5.6
  • spateo-release 1.1.2
  • synago 0.1.1, 0.1.2
  • ufish 0.1.2, 0.1.3
  • uprobe 0.1.3, 0.1.4

Како и во претходните кампањи Shai-Hulud и Miasma, злонамерниот код го презема и инсталира Bun JavaScript runtime, кој потоа се користи за стартување на силно обфусциран JavaScript крадец на податоци што може да собира широк спектар информации од системите на развивачите.

Ова вклучува тајни и акредитиви поврзани со GitHub, npm, PyPI, RubyGems, JFrog, CircleCI, Anthropic, AWS, GCP, Azure и Kubernetes, како и Docker конфигурации, Vault токени, SSH клучеви, историја на shell команди, .env датотеки, .npmrc датотеки, .pypirc датотеки, Claude/MCP конфигурации и други локални или достапни акредитиви.

Она што е променето овојпат е ознаката на кампањата. Додека претходните верзии ги извезуваа украдените податоци во јавни GitHub репозиториуми со опис:

  • „Miasma: The Spreading Blight“
  • „Miasma : The Spreading Blight“
  • „Miasma – The Spreading Blight“

најновиот бран ги користи следните описи:

  • „Hades – The End for the Damned“
  • „Hades * The End for the Damned“

„Поради тоа, Hades најдобро може да се разбере како PyPI гранка од истата Mini Shai-Hulud / Miasma лоза, а не како посебен Python-малвер инцидент“, изјави компанијата за безбедност на апликации. „Основниот модел останува ист: злоупотреба на доверливи канали за дистрибуција на пакети, извршување пред нормалната употреба на пакетот, поставување JavaScript товар базиран на Bun, кражба на акредитиви на развивачи и CI/CD системи и користење на GitHub за ексфилтрација и ширење.“

Овојпат се користи *-setup.pth датотека што се обработува од Python модулот „site“ при стартување на интерпретерот, што овозможува извршување на злонамерниот код веднаш по инсталацијата, без потреба жртвата да го увезе компромитираниот пакет.

Потоа се презема и извршува Bun од GitHub, по што се стартува крадецот на податоци, но само откако ќе се провери дали системот не користи руска локализација.

„Ова е Python еквивалент на проблемот со npm install-hook кој Shai-Hulud и Miasma постојано го злоупотребуваат“, објасни Socket. „Синтаксата е различна, но безбедносната последица е иста: инсталацијата на зависности создава можност за извршување код пред апликацијата да биде прегледана или стартувана.“

Кластерот Hades се обидува да ги измами AI безбедносните скенери

Како дел од кампањата Hades биле компромитирани и неколку пакети поврзани со компјутерска биологија, биоинформатика и анализа на генотип-фенотип:

  • embiggen 0.11.97
  • ensmallen 0.8.101
  • gpsea 0.9.14
  • mflux-streamlit 0.0.3, 0.0.4
  • nhmpy 2.4.7
  • ppkt2synergy 0.1.1
  • pyphetools 0.9.120

Интересно е што овој кластер користи поинаков пристап. Влезната точка е вградена во датотеката „init.py“ како обфусциран import hook во една линија, но резултатот е ист: преземање и извршување на Bun runtime и потоа стартување на JavaScript товарот.

„Користењето на Bun runtime останува константна тема“, соопшти StepSecurity. „Преземањето на Bun како самостојна ZIP датотека му овозможува на малверот да извршува сложени JavaScript задачи во средини каде нема инсталиран Node.js, заобиколувајќи традиционални контроли на пакет-менаџери и мрежни прокси логови.“

Во она што е опишано како нова техника за избегнување на AI одбрана, малверот содржи и текстуална prompt-injection порака која се обидува да ги измами алатките за анализа на пакети базирани на големи јазични модели (LLM) и да ги наведе да го класифицираат пакетот како безбеден.

Дополнително, малверот пребарува GitHub commit-и за клучниот збор „TheBeautifulSnadsOfTime“ за да извлече Base64-кодиран JavaScript товар. Исто така пребарува commit-и со клучниот збор „firedalazer“ за да преземе Python dropper и да го изврши.

Некои од најважните можности на Hades малверот се:

  • Саморепликација и странично ширење низ мрежите на развивачи преку SSH или SCP.
  • Објавување тројанизирани верзии на PyPI пакети од компромитирани системи преку злоупотреба на OpenID Connect (OIDC) конфигурации.
  • Таргетирање GitHub репозиториуми за извлекување организациски тајни преку GitHub Actions runners.
  • Поставување задни врати во локални работни директориуми за автоматско извршување код кога проектите се анализираат од AI асистенти или се отвораат во IDE.
  • Цели вклучуваат Anthropic Claude, OpenAI Codex, Google Gemini, Microsoft Copilot, Cline, Aider, Tabby, Amazon Q, Cody, Bolt и Continue.
  • Инсталирање сервис во позадина наречен „gh-token-monitor“, кој дејствува како бришач и ги отстранува податоците од системот („rm -rf ~/; rm -rf ~/Documents“) ако украдениот GitHub токен биде поништен од развивачот.

„Клучна способност на актерот зад Miasma е читање на меморијата на процесот GitHub Actions runner (Runner.Worker) за извлекување тајни податоци“, изјави безбедносниот истражувач Рохан Прабху. „Во претходните кампањи ова беше ограничено на Linux системи преку /proc/{pid}/mem. Кампањата Hades воведува специјализирани алатки за извлекување меморија и за macOS и за Windows.“

Развојот доаѓа откако StepSecurity откри дека непознат напаѓач ја компромитирал GitHub сметката „LeonOstrez“, поврзана со проектот „Pythagora-io/gpt-pilot“, популарна open-source AI алатка за развивачи, и насилно внел варијанта на црвот Shai-Hulud во главната гранка на проектот.

Малверот е дизајниран да се активира тивко кога несвесен развивач ќе го стартува проектот, при што избегнува системи со руска локализација.

„Малверот, варијанта на црвот Shai-Hulud, беше запрен од неочекуван бранител: ruff, Python алатка за форматирање код“, изјави Ашиш Курми, коосновач и CTO на StepSecurity. „Напаѓачот двапати се обиде да го протне злонамерниот код низ CI процесот и двапати не успеа бидејќи инјектираната Python датотека не ги исполнуваше правилата за форматирање и linting на проектот.“

Компанијата за безбедност на софтверскиот синџир Snyk ги опиша овие напади како дел од лозата Shai-Hulud / Miasma, при што секој нов бран користи обфусциран крадец базиран на Bun runtime и додава „нови механизми за перзистентност, нови патишта за ексфилтрација и нови начини за автоматско извршување код при инсталација или градење.“

„Кампањата Miasma покажува дека потпишаните клучеви и автентицираните сметки на одржувачи повеќе не се апсолутна гаранција за безбедност“, изјави Cloudsmith. „Кога ќе бидат компромитирани upstream регистрите и репозиториумите, јавниот код станува еден од најлесните и најдиректните начини да бидете компромитирани.“

Извори:

  • The Hacker News – Hades PyPI Attack: 19 Packages Poisoned to Auto-Run Bun Credential Stealer The Hacker News