Powrót do strony głównej

RAT w Axios npm: phantom-zależność i wyciek Claude Code

31 marca 2026 odnotowano ataki na npm: RAT w Axios przez phantom-zależność i wyciek źródeł Claude Code. Analiza mechanizmów, weryfikacji i clean-room przepisania architektury.

Trojan w Axios i 500k linii Claude Code: analiza ataków npm
Advertisement 728x90

Przejęcie konta Axios w npm: RAT przez phantom-zależność i wyciek kodu Claude Code

31 marca 2026 roku przestępcy przejęli konto npm maintainera Axios (jasonsaayman), publikując złośliwe wersje 1.14.1 (latest) i 0.30.4 (legacy). Pakiety dystrybuowały trojana RAT przez trzy godziny — od 00:21 do 03:15 UTC. Przy 100 milionach pobrań tygodniowo szkody mogły być masowe.

Kod Axiosa pozostał nienaruszony. Przestępcy dodali do package.json zależność [email protected] — pakiet utworzony na dzień przed atakiem. Ta zależność nie jest importowana w kodzie, działając jako phantom dependency.

Mechanizm ataku

Instalacja przebiega według schematu:

Google AdInline article slot
  • npm install pobiera wszystkie zależności z package.json.
  • plain-crypto-js uruchamia skrypt postinstall.
  • Skrypt pobiera payload z serwera C2.
  • Rozwijany jest krosplatformowy RAT dla macOS, Windows, Linux.
  • Skrypt przywraca czysty package.json, maskując ślady.

Standardowy code review nie wykryje problemu: pliki JS są czyste, podejrzana zależność widoczna tylko w manifeście. Skannery powinny sprawdzać skrypty postinstall pakietów transytywnych.

Natychmiastowe działania

| Gałąź | Wersja złośliwa | Wersja bezpieczna |

|-------|-----------------|-------------------|

Google AdInline article slot

| latest | 1.14.1 | 1.14.0 |

| legacy | 0.30.4 | 0.30.3 |

Sprawdź:

Google AdInline article slot
  • package-lock.json / yarn.lock pod kątem złośliwych wersji.
  • Obecność plain-crypto-js w zależnościach.

Jeśli znaleziono — system jest zainfekowany. Zrotuj klucze, tokeny, sekrety. IOC opublikowane przez StepSecurity, Socket i innych.

Atrybucja wskazuje na UNC1069/Lazarus — typowy atak łańcucha dostaw poprzez przejęcie konta bez kompromitacji rejestru npm.

Wyciek źródeł Claude Code przez sourcemap

Tego samego dnia Anthropic opublikowała @anthropic-ai/[email protected] z plikiem cli.js.map o rozmiarze 59,8 MB. Sourcemap ujawnił ~512 000 linii TypeScript, 1900 plików, systemowe prompty, logikę pamięci, planowania i nieogłoszone funkcje.

Przyczyna i konsekwencje

Błąd w .npmignore: source maps nie zostały wykluczone z pakietu. Sourcemap odnosił się do publicznego bucketu R2 Anthropic. Kod szybko skopiowano na GitHub po raporcie Chaofan Shou.

Anthropic usunęła wersję, wydała łatkę, ale mirror się rozprzestrzeniły. To nie włamanie, a błąd build.

Implementacja clean-room: od wycieku do otwartego projektu

Sigrid Jean (instructkr) przepisał architekturę Claude Code w Pythonie bez kopiowania źródeł, unikając DMCA. Wykorzystał oh-my-codex do przyspieszenia.

Zaimplementował:

  • Agent-harness.
  • Narzędzia.
  • Pamięć i planowanie.
  • Swarms-podagenci.

Repozytorium claw-code zdobyło 50 000 gwiazdek w 2 godziny, 100 000+ w ciągu doby — rekord GitHub. Port na Rust również popularny. Projekt pozycjonowany jako ulepszone harness tools.

Co jest ważne

  • Phantom dependency w Axios: RAT maskuje się jako biblioteka krypto, aktywowany przez postinstall, krosplatformowy.
  • Wyciek Claude Code: 512k linii przez sourcemap z powodu braku .npmignore.
  • Podejście clean-room: Przepisanie architektury na Python/Rust omija DMCA, tworzy otwarty odpowiednik.
  • Sprawdzanie lock-plików: Obowiązkowe dla wykrycia 1.14.1/0.30.4 i plain-crypto-js.
  • Audyt kont npm: Przejęcie maintainerów — wektor ataków łańcucha dostaw.

— Editorial Team

Advertisement 728x90

Czytaj dalej