Dwa tygodnie temu opisywaliśmy raport Bitdefendera z liczbą, która miała ostudzić nasz własny entuzjazm wobec zagrożeń AI: 84 procent poważnych włamań używa legalnych narzędzi już obecnych w środowisku ofiary — techniki zwanej living off the land — a boi się jej tylko jeden na pięciu specjalistów, bo wszyscy patrzą na AI. Postawiliśmy wtedy tezę, że to nie są dwie osobne listy zagrożeń, lecz jedna widziana z dwóch stron.
21 lipca CrowdStrike opublikował analizę, która domyka tę tezę mocniej, niż byśmy chcieli. Firma wzięła robaka npm o nazwie SANDWORM_MODE i sprawdziła nie to, co potrafi — bo to opisano już w lutym — lecz ile z jego zachowań da się w ogóle wykryć istniejącą telemetrią. Wynik: część zachowań daje użyteczne sygnały, ale kilka innych okazało się praktycznie nie do odróżnienia od legalnej aktywności programisty i automatyzacji. Robak wykonywał komendy, sięgał po pliki, modyfikował konfiguracje, pracował na repozytoriach i wywoływał API w sposób, który do złudzenia przypominał normalne działanie asystentów AI.
CrowdStrike nazywa tę klasę wprost: living off the AI toolchain. Zamiast nadużywać zaufanych narzędzi systemowych — PowerShella, certutil — atakujący nadużywa zaufanych asystentów kodujących i pipeline'ów CI. Living off the land nie zostało wyparte przez zagrożenia AI. Przeprowadziło się do nich.
Robak, który każe twojemu asystentowi kraść po cichu
Sam SANDWORM_MODE opisał w lutym zespół Socket: kampania obejmowała dziewiętnaście złośliwych pakietów npm, publikowanych pod dwoma aliasami, podszywających się literówkami pod popularne biblioteki. Standardowy repertuar tej rodziny — kradzież poświadczeń npm, GitHuba, chmury i kryptowalut, propagacja przez skradzione tokeny, trwałość przez globalne git hooks, wstrzykiwanie workflow do GitHub Actions, trzy kanały eksfiltracji łącznie z tunelowaniem przez DNS. Zdolności, jak zauważa CrowdStrike, nie są szczególnie wyjątkowe na tle wcześniejszych robaków z rodziny Shai-Hulud, o której pisaliśmy przy okazji Miasmy.
Wyjątkowy jest jeden moduł — ten, który celuje w narzędzia AI. Robak instaluje na maszynie własny, podstawiony serwer MCP i wpisuje go do plików konfiguracyjnych Claude Desktop, Cursora, VSCode i Windsurfa, rejestrując jako zaufanego dostawcę narzędzi. Od tej chwili asystent AI programisty ma w swoim zestawie narzędzie kontrolowane przez atakującego. A w opisie tego narzędzia siedzi instrukcja: czytaj i przekazuj po cichu klucze SSH, poświadczenia AWS, tokeny npm i sekrety środowiskowe — i nie wspominaj użytkownikowi, że to robisz.
To jest wstrzyknięcie promptu w najczystszej postaci, tyle że zaadresowane nie do modelu przez zatrutą stronę, lecz do narzędzia, które model traktuje jako własne. Moduł skanuje przy okazji lokalne endpointy modeli — Ollama, LM Studio, llama.cpp, vLLM — i zbiera klucze API do dziewięciu dostawców modeli chmurowych. Asystent, który miał przyspieszać pracę, staje się kanałem wynoszenia sekretów, wykonując przy tym dokładnie te operacje, które wykonuje zawsze.
Sedno: dlaczego wykrywanie tu przegrywa
Tu dochodzimy do liczby, która czyni tę historię ważną. CrowdStrike przeanalizował znane zachowania robaka i sprawdził, które z nich da się wychwycić posiadaną telemetrią, a dla ilu trzeba pisać nowe reguły. Część dała się złapać — aktywność złośliwego pakietu, niektóre mechanizmy trwałości, konkretne formy kradzieży danych. Ale reszta okazała się nieodróżnialna od normalnej pracy.
Powód jest strukturalny i wart zrozumienia, bo nie zniknie razem z tą kampanią. Asystenci kodujący, jak opisuje to CrowdStrike, wykonują dowolne komendy, zapisują pliki konfiguracyjne, uruchamiają procesy potomne i wywołują API — wszystko w ramach drzewa procesów Node. Dokładnie to samo robi robak. Jeśli twoja detekcja opiera się na regule „proces Node uruchamia nieoczekiwaną komendę powłoki", to w środowisku z asystentem AI ta reguła generuje szum przez cały dzień roboczy, bo asystent robi to legalnie kilkadziesiąt razy dziennie. Sygnał tonie w tle, które sami stworzyliśmy, wdrażając te narzędzia.
Do tego dochodzi problem, który CrowdStrike stawia wprost: ta klasa telemetrii jest nowa, a punkty odniesienia dopiero się w branży ustalają. Nikt jeszcze nie wie, jak wygląda „normalna" praca asystenta AI w danym środowisku na tyle dokładnie, żeby wychwycić odchylenie. Living off the land działa dlatego, że obrońca nie potrafi odróżnić nadużycia narzędzia od jego użycia — a przy narzędziach, które wdrożyliśmy dwanaście miesięcy temu i których wzorców zachowania jeszcze nie zmierzyliśmy, ta trudność jest znacznie większa niż przy PowerShellu, obserwowanym od dekady.
Trzy nasze wątki, które właśnie się spięły
Ta kampania jest ciekawa nie tym, że jest nowa, lecz tym, że łączy wzorce, które opisywaliśmy osobno.
Po pierwsze, domyka wątek Bitdefendera. Napisaliśmy wtedy, że AI jest mnożnikiem starych technik, a nie źródłem nowych, i że trzeba patrzeć na technikę pod etykietą. SANDWORM_MODE jest tego dowodem w drugą stronę: technika jest stara jak living off the land, ale zastanym narzędziem, które napastnik nadużywa, jest teraz asystent AI. Kto liczył, że skupienie na LOTL pozwoli zignorować szum wokół AI, dostaje odpowiedź — to już ta sama rzecz.
Po drugie, domyka wątek podstawionego narzędzia. Przy fałszywym „skillu", który przeszedł skanery Cisco i NVIDII, pisaliśmy, że skan jest migawką, a narzędzie może zmienić zachowanie po tym, jak zaufanie zostało przyznane. Tu jest wariant ostrzejszy: narzędzie nie zmienia zachowania — zostaje dopisane do listy zaufanych bez wiedzy użytkownika, przez zwykłą instalację pakietu npm.
Po trzecie, jest lustrzanym odbiciem GhostApproval. Tam okno zgody pokazywało człowiekowi niewinną nazwę, podczas gdy agent znał prawdziwy cel — asymetria informacji powstawała po stronie interfejsu. Tu jest wprost instrukcja „nie mów użytkownikowi", wpisana w opis narzędzia. W obu przypadkach efekt jest ten sam: człowiek w pętli patrzy na obraz, który nie odpowiada temu, co się dzieje. Raz przez wadę projektu, raz przez celowe polecenie atakującego.
Uczciwie: co to jest, a czego nie
Kilka rzeczy trzeba postawić jasno, żeby nie zrobić z tego paniki.
SANDWORM_MODE nie jest trwającą masową kampanią — pakiety opisano w lutym i zostały usunięte. CrowdStrike traktuje go raczej jako dowód koncepcji dla nowej klasy niż jako aktywne zagrożenie samo w sobie, i formułuje to ostrożnie: to poważny obraz wyzwania, które organizacje dopiero przed sobą mają. Sama nazwa bywa myląca — pochodzi z flagi w kodzie, a nie od rosyjskiej grupy Sandworm; żadne wiarygodne doniesienia nie łączą tej kampanii z tamtym aktorem.
Zdolności robaka, jak zauważa CrowdStrike, nie są też wyjątkowe na tle wcześniejszych wariantów Shai-Hulud. Wyjątkowy jest cel — i to, że w tym celu klasyczne wykrywanie ma strukturalny problem. Wartość tego badania nie leży więc w liczbie ofiar, tylko w pomiarze: ktoś wreszcie sprawdził, ile z nowej klasy zachowań widzimy, i odpowiedź brzmi „mniej, niż zakładaliśmy".
Co z tego wynika dla obrońcy
Pierwsza rzecz jest inwentaryzacyjna i da się zrobić od razu. Sprawdź, co jest wpisane jako zaufany dostawca narzędzi w konfiguracjach asystentów AI na maszynach twoich programistów — pliki konfiguracyjne Claude Desktop, Cursora, VSCode i Windsurfa. To jest lista, której większość organizacji nigdy nie przejrzała, a która działa jak lista dozwolonych integracji z dostępem do twoich sekretów. Każdy wpis, którego nie potrafisz uzasadnić, jest podejrzany.
Druga dotyczy sekretów i wynika z tego, po co ten robak sięgał. Klucze SSH, poświadczenia chmurowe, tokeny npm i klucze API do modeli nie powinny leżeć w zasięgu procesu, w którym działa asystent kodujący. Skracaj czas życia sekretów w CI, przechodź na tożsamości wydawane na chwilę, trzymaj klucze w dedykowanym menedżerze. To ta sama rekomendacja, którą powtarzamy od Langflow — narzędzia AI są skarbcami, więc nie zostawiaj w nich wszystkiego naraz.
Trzecia jest detekcyjna i najtrudniejsza. Skoro dwanaście z czternastu zachowań wygląda jak normalna praca, to reguła oparta na pojedynczej akcji nie zadziała. Sensowną odpowiedzią jest budowanie punktu odniesienia: mierz, jak wygląda typowa aktywność asystenta AI w twoim środowisku — jakie komendy, jakie ścieżki, jakie endpointy — żeby mieć wobec czego wykrywać odchylenie. To praca nudna i długa, dokładnie taka, jaką wykonano kiedyś dla PowerShella. Bez niej wykrywanie w tej klasie będzie zgadywaniem, bo tło jeszcze nie zostało zmierzone.
Jedna myśl na koniec
Przez lata mówiliśmy programistom, żeby nie ufali pakietom z rejestru, i to była rada trudna, ale wykonalna — pakiet można przejrzeć, przypiąć, zweryfikować. SANDWORM_MODE dokłada warstwę, w której ta rada przestaje wystarczać: instalacja pakietu nie tylko wnosi kod, ale przepisuje listę narzędzi, którym ufa twój asystent AI — i robi to w pliku, do którego nikt nie zagląda. Potem cała reszta dzieje się już legalnie: asystent czyta pliki, wywołuje API, wykonuje komendy, dokładnie tak jak zawsze. Nie ma momentu, w którym coś wygląda źle, bo każdy pojedynczy krok jest tym, do czego to narzędzie służy. Living off the land zawsze polegało na tym, że napastnik używa twoich rzeczy przeciwko tobie. Nowe jest tylko to, że jedną z twoich rzeczy jest teraz coś, co samo podejmuje decyzje — i komu można wydać polecenie, żeby o nich nie wspominało.
Źródła
CrowdStrike — analiza wykrywalności SANDWORM_MODE i sformułowanie klasy „living off the AI toolchain", z opisem podstawionego serwera MCP rejestrowanego w konfiguracjach Claude Desktop, Cursora, VSCode i Windsurfa oraz instrukcji nakazującej asystentowi ukrywanie działań przed użytkownikiem: https://www.crowdstrike.com/en-us/blog/denying-the-worm-sandworm-mode-and-ai-toolchain-supply-chain-attacks/
Dark Reading — omówienie badania z ustaleniem, które zachowania dały użyteczne sygnały detekcji, a które okazały się nieodróżnialne od legalnej aktywności programisty i automatyzacji: https://www.darkreading.com/cyber-risk/attackers-live-off-ai-toolchain
CyberScoop — cytaty Adama Meyersa z CrowdStrike o tym, że jest to obecnie rosnący trend, oraz zestawienie zdolności robaka z wcześniejszymi wariantami rodziny Shai-Hulud: https://cyberscoop.com/sandworm-mode-malware-ai-supply-chain-crowdstrike/
Threat Intel Report — podsumowanie pierwotnego badania Socket z lutego 2026, z opisem zatruwania łańcucha narzędzi AI przez podstawiony serwer MCP oraz zastrzeżeniem, że nazwa kampanii nie oznacza powiązania z grupą Sandworm: https://www.threatintelreport.com/2026/02/24/articles/sandworm_mode-npm-supply-chain-worm-poisons-ci-workflows-and-ai-coding-assistants/














































































































































































































Nie nowy atak, tylko naprawiony błąd. Co łatka Gemini CLI mówi o tym, że tryb –yolo w potoku CI/CD to nie jest dobry pomysł