Narušením procesu vydávání akcí GitHub v repozitářích RedHatInsights společnosti Red Hat se útočníkům podařilo publikovat 64 škodlivých verzí 32 balíčků NPM pro platformu Red Hat Cloud Services do adresáře NPM. Byly vydány dvě škodlivé verze každého napadeného balíčku NPM, přičemž každá obsahovala kód aktivující novou variantu červa mini-shai-hulud, který v aktuálním prostředí vyhledává tokeny a přihlašovací údaje.
Červ byl umístěn do souboru index.js a aktivován pomocí předinstalačního obslužného programu volaného při instalaci infikovaného balíčku. Po aktivaci červ prohledával systém a hledal tokeny pro NPM (~/.npmrc), PyPI, CircleCI, AWS, GCP, Docker, Azure, HashiCorp a KubernetesK8s, a také soukromé klíče SSH. Nalezená data byla odeslána útočníkům. Pokud byl nalezen token NPM, červ automaticky publikoval nové škodlivé verze pro balíčky vyvíjené v aktuálním prostředí a infikoval strom závislostí.
Přístup k akcím GitHubu byl získán kompromitací účtu zaměstnance společnosti Red Hat, což útočníkům umožnilo přímo odesílat commity do repozitářů javascript-clients, frontend-components a platform-frontend-ai-toolkit bez nutnosti procházet procesem kontroly. Tyto commity vložily soubor ci.yaml do systému průběžné integrace, který při spuštění sestavení spustil skript _index.js pomocí platformy bun. Skript použil oprávnění „id-token: write“ k vyžádání tokenu OIDC (OpenID Connect) z GitHubu, který byl následně použit k autentizaci pomocí NPM prostřednictvím mechanismu „důvěryhodného publikování“.
Balíčky NPM obsahující škodlivý kód:
- @redhat-cloud-services/chrome (2.3.1, 2.3.2)
- @redhat-cloud-services/compliance-client (4.0.3, 4.0.4)
- @redhat-cloud-services/config-manager-client (5.0.4, 5.0.5)
- @redhat-cloud-services/entitlements-client (4.0.11, 4.0.12)
- @redhat-cloud-services/eslint-config-redhat-cloud-services (3.2.1, 3.2.2)
- @redhat-cloud-services/frontend-komponenty (7.7.2, 7.7.3)
- @redhat-cloud-services/frontend-components-advisor-components (3.8.2)
- @redhat-cloud-services/frontend-components-config (6.11.3, 6.11.4)
- @redhat-cloud-services/frontend-components-config-utilities (4.11.2, 4.11.3)
- @redhat-cloud-services/frontend-components-notifications (6.9.2, 6.9.3)
- @redhat-cloud-services/frontend-components-remediations (4.9.2, 4.9.3)
- @redhat-cloud-services/frontend-components-testing (1.2.1, 1.2.2)
- @redhat-cloud-services/frontend-components-translations (4.4.1, 4.4.2)
- @redhat-cloud-services/frontend-components-utilities (7.4.1, 7.4.2)
- @redhat-cloud-services/hcc-feo-mcp (0.3.1, 0.3.2)
- @redhat-cloud-services/hcc-kessel-mcp (0.3.1, 0.3.2)
- @redhat-cloud-services/hcc-pf-mcp (0.6.1, 0.6.2)
- @redhat-cloud-services/host-inventory-client (5.0.3, 5.0.4)
- @redhat-cloud-services/insights-client (4.0.4, 4.0.5)
- @redhat-cloud-services/integrations-client (6.0.4, 6.0.5)
- @redhat-cloud-services/javascript-clients-shared (2.0.8, 2.0.9)
- @redhat-cloud-services/notifications-client (6.1.4, 6.1.5)
- @redhat-cloud-services/patch-client (4.0.4, 4.0.5)
- @redhat-cloud-services/quickstarts-client (4.0.11, 4.0.12)
- @redhat-cloud-services/rbac-client (9.0.3, 9.0.4)
- @redhat-cloud-services/remediations-client (4.0.4, 4.0.5)
- @redhat-cloud-services/rule-components (4.7.2, 4.7.3)
- @redhat-cloud-services/sources-client (3.0.10, 3.0.11)
- @redhat-cloud-services/topological-inventory-client (3.0.10, 3.0.11)
- @redhat-cloud-services/tsc-transform-imports (1.2.2)
- @redhat-cloud-services/types (3.6.1, 3.6.2, 3.6.4)
- @redhat-cloud-services/vulnerabilities-client (2.1.8, 2.1.9)
Zdroj: opennet.ru
