23 czerwca SentinelLABS opisał nowy szczep macOS o nazwie macOS.Gaslight — backdoor i infostealer napisany w języku Rust, przypisany z wysoką pewnością aktorom powiązanym z Koreą Północną. Pod względem funkcji to dość konwencjonalny implant: kradnie poświadczenia z przeglądarek, dane z Keychain, informacje o systemie, a sterowanie odbywa się przez kanał oparty na Telegram Bot API. Ale jedna cecha czyni go pierwszym swojego rodzaju — i dlatego zasługuje na uwagę.
W binarce zaszyto blok 3,5 KB zawierający 38 sfabrykowanych komunikatów „systemowych". Nie są one skierowane do użytkownika ani do piaskownicy. Są skierowane do narzędzia AI, którego analityk malware mógłby użyć do zbadania próbki. Ich zadanie: wmówić modelowi językowemu, że jego własna sesja analizy się sypie — że wygasł token, skończyła się pamięć, zapełnił dysk — tak żeby przerwał albo skrócił analizę. Stąd nazwa: malware próbuje gaslightowaćswojego analityka.
To jest nowa klasa techniki uniku. I choć — co od razu podkreślmy — nie obchodzi dziś żadnego produkcyjnego narzędzia, to kierunek, który wyznacza, jest dokładnie tym, o czym piszemy od miesięcy, tyle że obrócony o 180 stopni.
Atak na percepcję analityka, nie na piaskownicę
Tu jest sedno, które warto wyłożyć dokładnie, bo odróżnia Gaslight od dekad wcześniejszego malware'u.
Klasyczne malware unika analizy, atakując środowisko, w którym jest badane. Wykrywa, że działa w wirtualnej piaskownicy, i wtedy się nie uaktywnia. Sprawdza, czy jest debugowane, i zmienia zachowanie. Szuka śladów maszyny analityka i zasypia. Wszystkie te techniki celują w sandbox — w techniczne otoczenie analizy.
Gaslight robi coś innego. Jak ujmuje to badacz SentinelLABS Phil Stokes: atakuje percepcję agenta, a nie piaskownicę, w której ten działa. Cel nie jest techniczny — jest poznawczy. Malware nie próbuje wykryć, że jest analizowane, i się ukryć. Próbuje przekonać AI prowadzącą analizę, że coś jest nie tak z nią samą — że jej sesja jest uszkodzona, że napotkała błąd, że powinna przerwać. To jest atak na osąd analityka, nie na jego narzędzia.
Konkretnie: blok zawiera 38 fałszywych komunikatów udających krytyczne awarie. Są wśród nich powiadomienia o wygaśnięciu tokena, błędy braku pamięci (out-of-memory), ostrzeżenia o zapełnionym dysku, komunikaty o wielokrotnych niepowodzeniach operacji. Do tego — i to jest sprytne — fałszywe ostrzeżenia o lukach typu injection i flagi analizy statycznej. Malware podrzuca AI sygnały, które model interpretuje jako „moja sesja jest w złym stanie, powinienem się zatrzymać" albo „ta próbka zawiera coś, czego nie powinienem przetwarzać".
To jest indirect prompt injection w najczystszej formie — ta sama klasa, którą opisywaliśmy przy ChatGPhish (strona jako ładunek), Agentjacking (zdarzenie Sentry) i brand-landingpage (skill jako instrukcja). Wektorem jest sama analizowana próbka. Analityk AI czyta zawartość binarki jako tekst do interpretacji — a w tym tekście siedzą instrukcje napisane tak, by model potraktował je jako komunikaty o stanie własnej sesji. Niezaufana treść staje się instrukcją. Tym razem jednak instrukcja nie brzmi „zrób coś dla atakującego", lecz „przestań mnie analizować".
Dwoistość, która domyka wątek roku — z odwrotnej strony
Warto zobaczyć Gaslight w kontekście tego, co prowadzimy od wiosny, bo dopiero wtedy widać, dlaczego to moment graniczny.
Przez cały rok opisywaliśmy AI po stronie obrony: Codex znajdujący HTTP/2 Bomb, Glasswing znajdujący 10 000 podatności, Squidbleed wykryty przez Mythos. Narzędzia AT czytają kod i malware szybciej niż człowiek, znajdują to, co ludzki przegląd przeoczył. To była dobra strona medalu.
Gaslight jest pierwszym malware'em zaprojektowanym, by tę dobrą stronę zaatakować. Skoro analitycy coraz częściej używają AI do triażu i inżynierii wstecznej, to napastnicy zaczynają projektować próbki przeciw temu analitykowi. To jest logiczny, nieunikniony krok: gdy obrona zyskuje nowe narzędzie, atak uczy się je oszukiwać. Pisaliśmy przy FortiSandbox o vibecoded exploicie, że AI obniża barierę także dla atakujących. Gaslight pokazuje inny wymiar tej samej zmiany: AI staje się nie tylko narzędziem obu stron, ale i celem ataku — bo skoro obrońca polega na modelu, to oszukanie modelu jest oszukaniem obrońcy.
To jest też potwierdzenie tezy, którą OWASP postawił w raporcie o agentach: prompt injection może być wadą strukturalną, nie do załatania. SentinelLABS wskazuje to wprost — centrum operacji bezpieczeństwa potrafi zweryfikować, czy hash binarki zgadza się ze znanym-dobrym wzorcem, ale nie potrafi zweryfikować, co model interpretuje z tekstu, który mu podano. Hash jest deterministyczny. Interpretacja modelu — nie. Gaslight bierze tę strukturalną właściwość i celowo ją uzbraja wewnątrz binarki.
Uczciwa ocena: to jeszcze nie działa — i właśnie dlatego jest ostrzeżeniem
Tu jest moment, w którym trzeba zachować dyscyplinę, którą stosujemy do każdego alarmu — bo łatwo z tego zrobić panikę, a fakty na to nie pozwalają.
SentinelLABS jest wprost: technika prompt injection w Gaslight nie obeszła żadnej produkcyjnej platformy analizy malware w obecnych testach. Badacze sprawdzili i powiedzieli to jasno. To nie jest działający bypass, który właśnie oślepił obrońców. To jest próba — wczesna, prymitywna, na razie nieskuteczna wobec dojrzałych narzędzi, które mają własne zabezpieczenia przed wstrzyknięciami.
Dlaczego więc o tym piszemy, skoro nie działa? Bo znaczenie leży nie w próbce, ale w trajektorii. I tu jest liczba, która jest sednem całej historii: wcześniejsze próbki północnokoreańskiego malware'u na macOS używały pojedynczegowstrzykniętego bloku komunikatów do tego samego celu. Gaslight ma ich 38.
Ten przeskok z jednego do trzydziestu ośmiu jest najważniejszą informacją w całym raporcie. Oznacza, że operatorzy nie porzucili techniki po pierwszej nieudanej próbie — przeciwnie, rozbudowują ją i testują przeciwko realnym narzędziom. Jeden komunikat to eksperyment. Trzydzieści osiem to iteracja, dopracowywanie, szukanie kombinacji, która w końcu zadziała. To jest dokładnie ten wzorzec szybkiej operacjonalizacji, który opisywaliśmy przy Gentlemen — grupa, która bierze technikę i uporczywie ją rozwija. Gaslight jest „strzałem ostrzegawczym", nie trafieniem. Ale kierunek marszu jest jednoznaczny.
Warto też odnotować rodowód, bo wzmacnia powagę. Szczep wykryto na początku czerwca po aktualizacji Apple XProtect. Statyczne silniki na VirusTotal początkowo przepuściły binarkę podpisaną ad hoc. SentinelLABS wiąże implant z rodziną sygnatur BONZAI, kojarzoną z aktywnością DPRK, a pokrewną próbkę BONZAI oflagowała reguła AIRPIPE Apple. To nie jest amatorski eksperyment — to element arsenału dobrze zasobnego, państwowego aktora, który jak opisywaliśmy przy całej serii północnokoreańskiej systematycznie inwestuje w nowe techniki.
Reszta implantu — konwencjonalna, ale dopracowana
Dla pełności obrazu warto odnotować, że poza techniką gaslightingu to kompetentny, dobrze zaprojektowany backdoor — bo to też mówi coś o powadze aktora.
Kanał C2 działa przez Telegram Bot API w pętli odpytywania (polling), pozwalając operatorowi wydawać polecenia przez interaktywny shell i odbierać wyniki. Badacze zidentyfikowali sześć podstawowych komend: help, id, shell(wykonanie poleceń przez execvp), kill, upload (wysyłanie plików mechanizmem Telegrama) i stop. Jest też ślad siódmej komendy, focus, której przeznaczenia nie ustalono.
Co istotne dla obrońcy — Gaslight nie ma zaszytych na stałe parametrów sterowania. Token bota Telegrama, ID czatu i pozostałe ustawienia przekazywane są w czasie wykonania, a malware ukrywa własny token Telegrama z logów operacji i komunikatów błędów. To utrudnia śledztwo nawet wtedy, gdy uda się pozyskać logi albo zrzut pamięci z zainfekowanego urządzenia. Część zbierająca dane to infostealer oparty na zakodowanym w Base64 skrypcie Pythona — a żeby go uruchomić bez polegania na środowisku hosta, osobny skrypt bash pobiera i przygotowuje samodzielny interpreter CPython wprost z otwartoźródłowego repozytorium. To jest dbałość o niezawodność wykonania, którą widuje się u poważnych aktorów.
Co to znaczy dla obrońcy — i nowy wzorzec dla bazy
Praktyczna lekcja wykracza poza ten jeden szczep i dotyczy każdego, kto wpina AI w pipeline analizy.
Traktuj próbki malware jako wrogie dane wejściowe dla swojego AI, nie tylko dla swojego sandboxa. To jest zmiana nastawienia, którą Gaslight wymusza. Dotąd próbkę izolowało się, by nie zaszkodziła systemowi. Teraz trzeba ją izolować także dlatego, że jej zawartość może być instrukcją dla modelu, który ją analizuje. Tekst w binarce nie jest już tylko danymi do odczytu — może być poleceniem skierowanym do twojego analityka AI.
Izoluj pipeline AI od bezpośredniego, niefiltrowanego strumienia treści próbki. Jeśli model dostaje surową zawartość binarki do interpretacji, dostaje też wszystko, co atakujący w niej zaszył. Warstwa pośrednia, która oddziela „dane do analizy" od „instrukcji dla modelu", jest tu tym samym deterministycznym zabezpieczeniem, o którym pisał NCSC: nie polegaj na tym, że model sam rozpozna manipulację — ogranicz strukturalnie to, co może na niego wpłynąć.
Nie ufaj „błędom sesji" zgłaszanym w trakcie analizy próbki bez weryfikacji. Jeśli twój analityk AI nagle raportuje wygaśnięcie tokena albo brak pamięci dokładnie w momencie przetwarzania podejrzanej binarki — to może być stan faktyczny albo treść wstrzyknięta z próbki. Rozróżnienie wymaga sprawdzenia poza modelem.
Dla naszej bazy wzorców Gaslight to nowy wpis w kategorii Posrednia injekcja — i to wzorzec innego typu niż wszystko, co dotąd mamy. Indirect-url kieruje agenta na zewnątrz, trapdoor wstrzykuje do konfiguracji, chatgphish renderuje phishing. Gaslight robi coś nowego: nie każe modelowi nic zrobić, każe mu przestać — przez fałszywe komunikaty o stanie własnej sesji. Markery do wykrycia w skanowanej próbce to kaskada sfabrykowanych komunikatów systemowych (token expired, out of memory, disk full, operation failed) zaadresowanych do agenta analizy, szczególnie w formacie Markdown wewnątrz binarki, gdzie nie ma legalnego powodu, by tekst sformatowany pod model językowy znajdował się w skompilowanym kodzie. To jest sygnatura warta dodania — bo to pierwszy wzorzec w bazie, którego celem jest oślepienie samego analityka AI.
Źródła
SentinelLABS — oryginalny raport techniczny Phila Stokesa z pełną analizą binarki i bloku 38 komunikatów: https://www.sentinelone.com/labs/macos-gaslight-prompt-injection-malware-analysis/
The Hacker News — omówienie mechanizmu C2 przez Telegram i kontekstu DPRK: https://thehackernews.com/2026/06/new-gaslight-macos-malware-uses-prompt.html
BleepingComputer — analiza techniki fałszywych komunikatów i atrybucji: https://www.bleepingcomputer.com/news/security/new-macos-malware-embeds-fake-errors-to-confuse-ai-analysis-tools/
TechTimes — kontekst eskalacji z jednego bloku do 38 i powiązanie z OWASP LLM01: https://www.techtimes.com/articles/319179/20260627/north-korea-macos-malware-targets-ai-analyst-tools-gaslight-embeds-38-fake-error-messages.htm
TechRadar — praktyczne zalecenia o traktowaniu próbek jako wrogich danych wejściowych: https://www.techradar.com/pro/security/this-macos-malware-can-avoid-ai-analysis-with-gaslighting-prompts-hidden-inside-its-architecture































































































































































































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ł