Blog Bezpečnost Za hranice inovací

Kompletní forenzní analýza útoku „s1ngularity“ na Nx

Největší supply-chain útok roku 2025 odkrývá novou éru kybernetických hrozeb. Poprvé v historii útočníci systematicky zneužili vývojářské AI asistenty. Toto je kompletní technická rekonstrukce.

Jaroslav Urbánek, zakladatel TECHNOMATONu 29. srpna 2025 7 min čtení Aktualizováno 22. září 2026

Text vyšel a popisuje stav k tomuto dni.

Milí čtenáři,

včera večer jsem prošel forenzní analýzu jednoho z nejsofistikovanějších supply-chain útoků, jaké jsem kdy viděl. Nx, build systém používaný více než 70 procenty firem z Fortune 500, byl kompromitován způsobem, který mění naše chápání bezpečnostních hrozeb.

Co mě nejvíc znepokojuje? Útočníci poprvé v historii systematicky zneužili AI vývojářské asistenty – Claude, Gemini a Amazon Q – jako součást svého malware. Nástroje, které denně používáme k psaní kódu, se staly nevědomými komplici v krádeži dat z tisíců firem.

Co se přesně stalo a jak se bránit?

Bodový graf „Nx Supply Chain Attack Timeline“: dvanáct událostí od 22:00 26. srpna do 16:00 27. srpna 2025, obarvených podle závažnosti. Šest červených bodů jsou škodlivé verze vydané zhruba mezi 22:30 a 00:40; následuje odstranění balíčku z npm, zrušení účtu, zásah GitHubu kolem 09:00 a bezpečnostní kontroly kolem 16:00.

Executive Summary

Mezi 26. a 27. srpnem 2025 došlo ke kompromitaci populárního build systému Nx prostřednictvím supply-chain útoku. Útočník využil zranitelnost v GitHub Actions workflow k získání npm publikačního tokenu a následně distribuoval škodlivé verze Nx balíčků. Malware běžící v postinstall fázi zneužil lokální AI CLI nástroje (Claude, Gemini, Amazon Q) k automatizovanému průzkumu souborového systému. Data byla exfiltrována do veřejných GitHub repozitářů pojmenovaných „s1ngularity-repository”. Npm odstranilo kompromitované verze ve 02:44 UTC, GitHub skryl škodlivé repozitáře kolem 09:00 UTC. Incident vedl k okamžitému zavedení povinné dvoufaktorové autentizace a přechodu na Trusted Publisher model.

Proč tento útok mění pravidla hry

Nx není jen další JavaScript framework. Podle vlastních dat jej využívá více než 70 procent firem z Fortune 500 a týdně zaznamenává miliony stažení. Když se něco pokazí v Nx, dopad pocítí tisíce vývojářských týmů po celém světě současně.

Co dělá tento incident výjimečným, není jen jeho rozsah. Poprvé v historii dokumentovaných supply-chain útoků útočníci systematicky zneužili AI vývojářské asistenty jako součást svého malware. Claude, Gemini a Amazon Q – nástroje navržené k pomoci vývojářům – se staly nevědomými komplici v jednom z nejsofistikovanějších útoků letošního roku.

Během pouhých čtyř hodin mezi první publikací škodlivého kódu (22:32 UTC) a jeho odstraněním z npm (02:44 UTC) útočníci protlačili osm verzí Nx napříč verzovacími řadami 20.x a 21.x. Celkem bylo kompromitováno 19 verzí napříč osmi balíčky. To není náhoda – je to precizně naplánovaná operace.

Technická anatomie útoku

Vektor vstupu: Když GitHub Actions se stane zbraní

Kořenová příčina útoku spočívala v zranitelném GitHub Actions workflow, který obsahoval bash injection zranitelnost v PR titulu. Útočník využil kombinaci této zranitelnosti s použitím pull_request_target triggeru, který má zvýšená oprávnění, k spuštění publikační pipeline. Odtud bylo již snadné exfiltrovat npm token a získat kontrolu nad publikováním balíčků.

Škodlivý kód: Co přesně dělal

Po instalaci kterékoliv z kompromitovaných verzí se spustil postinstall skript obsahující modifikovaný soubor telemetry.js. Malware nejprve provedl kontrolu operačního systému – na Windows se jednoduše ukončil, zatímco na Linux a macOS pokračoval v destruktivní činnosti.

Primární funkce malware zahrnovala sběr GitHub a npm tokenů, SSH klíčů, environmentálních proměnných a dokonce i kryptografických peněženek. Veškerá citlivá data byla ukládána do dočasných souborů a připravována k exfiltraci.

AI jako nástroj útočníka

Nejznepokojivější částí útoku bylo zneužití lokálních AI CLI nástrojů. Malware se pokoušel spustit:

  • Claude s příznakem --dangerously-skip-permissions
  • Gemini s příznakem --yolo
  • Amazon Q s kombinací q chat --trust-all-tools --no-interactive

Tyto příkazy měly za cíl využít AI k rekurzivnímu procházení souborového systému a vytvoření kompletního inventáře dostupných souborů, který byl následně uložen do /tmp/inventory.txt. AI nástroje tak nevědomky pomáhaly útočníkům identifikovat nejcennější data k odcizení.

Exfiltrace: Skrytí na očích

Místo tradičních command & control serverů útočníci zvolili geniálně jednoduchou metodu – vytváření veřejných GitHub repozitářů přímo v účtech obětí. Tyto repozitáře pojmenované s1ngularity-repository s náhodným suffixem obsahovaly soubor results.b64 s dvojitě nebo trojitě zakódovanými ukradenými daty.

Během aktivního okna útoku byly pozorovány tisíce takových repozitářů. GitHub začal tyto repozitáře skrývat z vyhledávání kolem 09:00 UTC, ale škoda již byla napáchána.

Sabotáž jako třešnička na dortu

Jako by krádež dat nestačila, malware přidal do souborů ~/.bashrc a ~/.zshrc řádek sudo shutdown -h 0. Při každém otevření nového terminálu by se tak systém okamžitě vypnul – efektivní denial-of-service útok na vývojářskou stanici.

Časová osa incidentu

Průběh útoku lze rekonstruovat minutu po minutě:

26. srpna 2025:

  • 22:32 UTC – První škodlivá verze (nx@21.5.0) publikována na npm
  • 23:15 UTC – Další vlna škodlivých verzí začíná zaplavovat npm

27. srpna 2025:

  • 00:30 UTC – První GitHub issue reportující podezřelé chování
  • 00:37 UTC – Poslední dvě škodlivé verze (21.8.0, 20.12.0) publikovány
  • 02:44 UTC – npm odstraňuje všechny kompromitované verze Nx
  • 03:52 UTC – Přístup kompromitovaného npm účtu je zrušen
  • 09:00 UTC – GitHub začíná skrývat s1ngularity repozitáře
  • 15:57 UTC – npm vynucuje 2FA a migruje Nx na Trusted Publisher

Rozsah škod podle čísel

GitGuardian ve své analýze identifikoval 1346 exfiltračních repozitářů obsahujících 2349 unikátních tajemství a přístupových tokenů. Wiz Research dokonce uvádí více než 1000 stále platných GitHub tokenů a přibližně 20000 uniklých souborů.

Nejvíce znepokojující je fakt, že mnoho vývojářů si útoku vůbec nevšimlo. Nx Console pro VS Code ve verzích 18.63.x až 18.65.x automaticky spouštěl npx nx@latest --version při každé aktivaci – stačilo tedy otevřít editor a systém byl kompromitován.

Okamžitá náprava – co dělat právě teď

Detekce kompromitace

Nejprve zjistěte, zda váš systém byl zasažen. Spusťte následující příkazy:

# Kontrola nainstalovaných verzí Nx
npm ls nx || pnpm ls nx || yarn why nx

# Hledání stop malware na systému (Linux/macOS)
ls -l /tmp/inventory.txt /tmp/inventory.txt.bak 2>/dev/null
grep -n "shutdown -h 0" ~/.bashrc ~/.zshrc 2>/dev/null || true

Zkontrolujte svůj GitHub účet a hledejte repozitáře začínající na s1ngularity-repository. Projděte také audit logy vaší organizace.

Odstranění a obnova

Pokud jste byli zasaženi, postupujte systematicky:

# Kompletní vyčištění a reinstalace
rm -rf node_modules && npm cache clean --force
npm uninstall nx && npm install nx@latest

Vyčistěte soubory ~/.bashrc a ~/.zshrc od škodlivých řádků obsahujících shutdown příkaz. Odstraňte všechny soubory /tmp/inventory.txt*.

Rotace všech přístupových údajů

Toto je kritický krok, který nesmíte vynechat. Rotujte okamžitě:

  • Všechny GitHub Personal Access Tokeny a OAuth aplikace
  • npm publikační tokeny
  • SSH klíče na všech systémech
  • API klíče všech služeb
  • Kryptografické peněženky přesuňte na nové adresy

Systémová opatření pro budoucnost

Na úrovni organizace

Zavedení povinné dvoufaktorové autentizace pro všechny vývojáře již není volitelné – je to nutnost. Migrace na Trusted Publisher (OIDC) model eliminuje potřebu dlouhodobých npm tokenů, které jsou častým terčem útoků.

Zvažte implementaci „cooldown” pravidla – nové verze závislostí nesmí být instalovány dříve než 24-48 hodin po publikaci. StepSecurity již přidal automatickou kontrolu pro pull requesty, která na toto upozorňuje.

Zabezpečení AI nástrojů

AI vývojářské asistenty potřebují okamžitou pozornost. Implementujte sandboxing s principem nejmenších oprávnění, explicitně blokujte nebezpečné příznaky jako --dangerously-skip-permissions nebo --yolo. Veškeré interakce s AI nástroji by měly být logovány a monitorovány.

Monitoring a detekce

Nasazení EDR/XDR řešení na vývojářské stanice již není luxus, ale nutnost. Tyto systémy dokáží detekovat anomálie během npm install a identifikovat podezřelé procesy spouštěné během instalace balíčků.

Poučení z incidentu

Tento útok demonstruje několik kritických slabin současného ekosystému:

Především se ukázalo, že staré větve v repozitářích s vulnerabilními workflow představují tikající bombu. Nx měl zranitelný workflow ve starších větvích, které nebyly aktualizovány.

Důvěra v automatizované systémy bez odpovídajících kontrol je nebezpečná. GitHub Actions s elevated permissions v kombinaci s možností bash injection vytváří perfektní bouři pro útočníky.

AI nástroje, navržené k zvýšení produktivity, se mohou snadno stát vektorem útoku. Jejich schopnost automatizovaně procházet a analyzovat kód je dvojsečná zbraň.

Co nás čeká dále

npm a Nx reagovaly rychle a razantně. Povinná 2FA, migrace na Trusted Publisher a invalidace všech existujících tokenů jsou kroky správným směrem. Otázkou zůstává, zda ostatní kritické projekty v npm ekosystému následují jejich příklad.

Supply-chain bezpečnost už v EU upravuje Cyber Resilience Act (akt o kybernetické odolnosti, nařízení (EU) 2024/2847), přijatý v roce 2024 a v platnosti od 10. prosince 2024. Jeho povinnosti se ale uplatní až později: hlášení aktivně zneužívaných zranitelností a závažných incidentů od 11. září 2026, hlavní povinnosti od 11. prosince 2027. Tento incident bude nepochybně použit jako argument pro přísnější kontroly.

Na závěr

Útok „s1ngularity” na Nx představuje milník v evoluci supply-chain útoků. Kombinace sofistikovaných technik, zneužití AI nástrojů a masivní rozsah dopadu ukazují, že současné bezpečnostní praktiky nestačí.

Každý vývojářský tým musí přehodnotit své bezpečnostní postupy. Nejde jen o technická opatření – jde o změnu kultury, kde bezpečnost není překážkou produktivity, ale její nedílnou součástí.

Zdroje a další čtení

Tato analýza vychází z oficiálních forenzních reportů a primárních zdrojů. Pro technické detaily doporučuji:

🔍 Kompletní forenzní analýza: https://www.stepsecurity.io/blog/supply-chain-security-alert-popular-nx-build-system-package-compromised-with-data-stealing-malware

Oficiální zdroje:

Technické analýzy:

Původně vyšlo: Substack — Za hranice inovací,

Oprava : Opravena věta o „připravovaném“ Cyber Resilience Act: nařízení (EU) 2024/2847 bylo přijato v roce 2024 a je v platnosti od 10. 12. 2024, povinnost hlášení se použije od 11. 9. 2026 a hlavní povinnosti od 11. 12. 2027.

Oprava : Nefunkční odkaz github.com/npm/security-advisories v oficiálních zdrojích nahrazen rozborem útoku, který zveřejnil tým Nx (nx.dev).

Newsletter na LinkedInu

Odebírejte Za hranice inovací

Newsletter Jaroslava Urbánka: rozbory dění v AI a toho, co z něj plyne pro firmy.

Odebírat na LinkedInu

Další krok

Test připravenosti na AI

Osm otázek bez registrace. Z odpovědí vybereme téma, kterým můžete s AI začít. Výsledek je orientační.

Spustit test připravenosti

Další čtení

3 články