
Wprowadzenie do problemu / definicja
Nowa kampania przypisywana północnokoreańskim aktorom zagrożeń pokazuje, iż środowiska programistyczne stały się pełnoprawnym wektorem ataku. Cyberprzestępcy nadużywają mechanizmu automatycznego uruchamiania zadań w Microsoft Visual Studio Code, aby po otwarciu spreparowanego projektu uruchomić kod pobierający kolejne komponenty złośliwego oprogramowania. W analizowanej operacji wykorzystywany jest modułowy zestaw narzędzi określany jako StoatWaffle, łączący funkcje stealera i zdalnego trojana dostępowego.
W skrócie
- Atak wykorzystuje złośliwe projekty VS Code zawierające plik tasks.json skonfigurowany do automatycznego uruchomienia po otwarciu folderu.
- Łańcuch infekcji pobiera kolejne komponenty z zewnętrznej infrastruktury i w razie potrzeby instaluje środowisko Node.js.
- StoatWaffle kradnie dane z przeglądarek, zbiera informacje o systemie i umożliwia zdalne wykonywanie poleceń.
- Kampania wpisuje się w szerszą aktywność znaną jako Contagious Interview, wymierzoną głównie w programistów oraz specjalistów z obszaru kryptowalut i Web3.
Kontekst / historia
Opisane działania są częścią długofalowej kampanii określanej jako Contagious Interview, łączonej z grupami powiązanymi z Koreą Północną. Celem ataków są deweloperzy, założyciele startupów, liderzy techniczni oraz doświadczeni inżynierowie mający dostęp do kodu źródłowego, infrastruktury firmowej i wrażliwych zasobów organizacji. Atak zwykle rozpoczyna się od inżynierii społecznej, w której ofiara otrzymuje wiarygodnie przygotowane zaproszenie do procesu rekrutacyjnego, zadania technicznego lub testu kodowania.
W ostatnim czasie operatorzy tej kampanii rozwijali kilka równoległych metod dystrybucji malware w ekosystemie open source. Obserwowano złośliwe pakiety publikowane w rejestrach, przejęcia repozytoriów oraz osadzanie obfuskowanego kodu JavaScript w publicznych projektach. Wykorzystanie zadań VS Code jest naturalnym rozwinięciem tej strategii, ponieważ pozwala przenieść moment wykonania złośliwego kodu do codziennego workflow programisty.
Analiza techniczna
Kluczowym elementem ataku jest plik konfiguracyjny tasks.json umieszczony w katalogu projektu. Napastnicy wykorzystują opcję automatycznego uruchamiania zadania przy otwarciu folderu roboczego. W praktyce oznacza to, iż samo wejście do repozytorium w VS Code może uruchomić polecenie bez manualnego startu skryptu przez użytkownika.
Łańcuch infekcji ma charakter wieloetapowy i został zaprojektowany tak, aby działać na różnych systemach. Pierwszy etap pobiera dane z infrastruktury kontrolowanej przez napastników i sprawdza, czy na stacji roboczej dostępne jest środowisko Node.js. jeżeli nie, malware może samodzielnie pobrać i zainstalować wymagane komponenty. Następnie uruchamiany jest downloader, który cyklicznie komunikuje się z serwerem C2 i pobiera kolejne etapy ataku wykonywane jako kod Node.js.
StoatWaffle ma architekturę modułową. Jeden z modułów odpowiada za kradzież danych uwierzytelniających oraz informacji zapisanych w przeglądarkach opartych na Chromium i w Mozilla Firefox. Na systemach macOS obserwowano także próby pozyskiwania danych z iCloud Keychain. Drugi moduł pełni rolę RAT-a, umożliwiając zdalne wydawanie poleceń, zmianę katalogu roboczego, enumerację plików i folderów, uruchamianie kodu Node.js, wykonywanie poleceń powłoki, przesyłanie plików oraz wyszukiwanie danych według słów kluczowych.
Ważny jest również aspekt operacyjny kampanii. Nowsze warianty odchodzą od części wcześniej wykorzystywanej infrastruktury i korzystają z alternatywnych mechanizmów hostowania skryptów kolejnych etapów, co utrudnia wykrywanie na podstawie statycznych wskaźników kompromitacji. Jednocześnie złośliwe projekty są publikowane w miejscach, które dla ofiary wyglądają jak zwykłe repozytoria zawierające zadania rekrutacyjne lub materiały do testów technicznych.
Istotne znaczenie mają także zmiany po stronie producenta narzędzia. Aktualizacje VS Code z początku 2026 roku wprowadziły dodatkowe zabezpieczenia, w tym ustawienia ograniczające automatyczne wykonywanie zadań oraz dodatkowe ostrzeżenia podczas otwierania nowego workspace’u z wykrytym auto-run task. Skuteczność tych mechanizmów zależy jednak od aktualności klienta i adekwatnej konfiguracji polityk bezpieczeństwa w organizacji.
Konsekwencje / ryzyko
Ryzyko związane z tą techniką jest wysokie, ponieważ uderza ona w zaufane narzędzia deweloperskie i naturalne procesy pracy zespołów engineeringowych. Atak nie wymaga klasycznego makra, exploita przeglądarki ani podejrzanego instalatora. Wystarczy otwarcie projektu w popularnym edytorze kodu, co znacząco obniża czujność ofiary.
Szczególnie niebezpieczny jest profil potencjalnych ofiar. Są to często senior developerzy, liderzy techniczni oraz osoby pracujące przy produktach kryptowalutowych. Przejęcie takiej stacji roboczej może prowadzić do wycieku kodu źródłowego, sekretów CI/CD, tokenów dostępowych do repozytoriów, kluczy API, poświadczeń chmurowych oraz danych portfeli kryptowalutowych.
Modularność StoatWaffle pozwala przeciwnikowi elastycznie rozwijać atak po uzyskaniu dostępu początkowego. Kradzież danych może być jedynie pierwszym etapem, po którym następuje utrzymanie obecności, rekonesans oraz pivot do kolejnych systemów w środowisku ofiary. Technika ta ma również cechy zagrożenia dla łańcucha dostaw oprogramowania, ponieważ kompromitacja maintainera lub osoby obsługującej pipeline wydawniczy może przełożyć się na szerokie skutki dla klientów i użytkowników końcowych.
Rekomendacje
Organizacje zatrudniające programistów powinny traktować edytory kodu i repozytoria jako element powierzchni ataku, a nie wyłącznie narzędzia produktywności. W praktyce warto wdrożyć kilka kluczowych działań ochronnych:
- Zaktualizować Visual Studio Code do najnowszej wersji i ograniczyć automatyczne uruchamianie zadań tam, gdzie nie jest ono niezbędne.
- Nie otwierać niezweryfikowanych projektów na stacjach roboczych z dostępem do krytycznych zasobów. Zadania rekrutacyjne i testowe powinny być analizowane w odseparowanych środowiskach.
- Monitorować pliki .vscode/tasks.json, .vscode/settings.json, skrypty startowe i zależności pobierane podczas otwierania projektu.
- Wykorzystać EDR lub XDR do wykrywania nietypowych procesów potomnych uruchamianych przez VS Code, takich jak node, interpretery skryptowe i powłoki systemowe.
- Wzmocnić ochronę sekretów deweloperskich przez rotację tokenów, zasadę najmniejszych uprawnień oraz rozdzielenie kont uprzywilejowanych od codziennej pracy.
- Rozszerzyć szkolenia awareness o scenariusze fałszywych rekrutacji, złośliwych repozytoriów i podejrzanych testów technicznych.
- Analizować ruch wychodzący ze stacji deweloperskich, zwłaszcza połączenia do nietypowych domen i usług hostujących skrypty kolejnych etapów infekcji.
- Wdrożyć ochronę kont maintainerów, silne MFA odporne na phishing oraz rygorystyczne zasady zarządzania uprawnieniami organizacyjnymi.
Podsumowanie
Kampania wykorzystująca automatyczne zadania VS Code pokazuje, iż nowoczesne operacje malware coraz skuteczniej stapiają się z codziennym workflow programistów. StoatWaffle nie jest tylko kolejnym stealerem, ale elementem szerszego modelu operacyjnego, w którym inżynieria społeczna, ekosystem open source i narzędzia developerskie tworzą spójny łańcuch ataku. Dla zespołów bezpieczeństwa oznacza to konieczność objęcia ochroną nie tylko systemów produkcyjnych, ale także procesów rekrutacyjnych, repozytoriów kodu, stacji roboczych developerów i samych IDE.
Źródła
- The Hacker News — https://thehackernews.com/2026/03/north-korean-hackers-abuse-vs-code-auto.html
- Microsoft Security Blog — https://www.microsoft.com/en-us/security/blog/
- Visual Studio Code Release Notes — https://code.visualstudio.com/updates
- NTT Security Holdings — https://jp.security.ntt/
- Abstract Security — https://www.abstract.security/





