W sierpniu 2025 roku badacze z ESET natrafili na próbkę malware, która różniła się od setek innych plików analizowanych codziennie na VirusTotal. W kodzie napisanym w Go znajdowało się odwołanie do modelu językowego i zestaw promptów, czyli instrukcji, które ten model miał wykonać. Tak wykryto PromptLock. To pierwszy znany publicznie ransomware, który do generowania złośliwych skryptów wykorzystuje sztuczną inteligencję działającą lokalnie, na komputerze ofiary.
To nie jest kolejny wariant znanego szyfrującego trojana z podmienioną nazwą, tylko zmiana podejścia do tworzenia malware.
Co to jest PromptLock
PromptLock to ransomware typu proof of concept, czyli działający dowód koncepcji, a nie w pełni rozwinięte narzędzie przestępcze. Do budowania skryptów wykonujących atak używa dużego modelu językowego (LLM) uruchomionego lokalnie. Jest napisany w Go i działa na Windows, Linux i macOS. Do szyfrowania plików wykorzystuje algorytm SPECK w wersji 128-bitowej. Odkryła go firma ESET i sklasyfikowała jako Filecoder.PromptLock.A.
Kluczowa różnica względem klasycznego ransomware jest taka, że złośliwe skrypty nie są na stałe zapisane w kodzie malware. Powstają w czasie ataku, na bieżąco, w zależności od tego, co model AI „zdecyduje" na podstawie zaszytych w kodzie promptów.
Jak działa PromptLock krok po kroku
1. Połączenie z modelem AI. Po uruchomieniu na zainfekowanej maszynie PromptLock próbuje połączyć się z modelem gpt-oss:20b za pośrednictwem API narzędzia Ollama. Ollama to lokalne środowisko do uruchamiania modeli językowych na własnym sprzęku, bez konieczności łączenia się z chmurą dostawcy AI. Malware nie ściąga całego modelu, bo to kilkanaście gigabajtów danych, co szybko zauważyłby system EDR czy XDR. Zamiast tego łączy się z już działającą instancją Ollamy: lokalnie albo przez tunel do serwera kontrolowanego przez atakującego.
2. Rozpoznanie środowiska. Malware sprawdza, czy zainfekowana maszyna to komputer osobisty, serwer czy kontroler przemysłowy. Na tej podstawie, i na podstawie zaszytych w kodzie promptów, model decyduje, czy dane mają zostać wykradzione, zaszyfrowane, czy potencjalnie zniszczone.
3. Skanowanie plików. Program przeszukuje system plików ofiary i tworzy inwentarz plików, zapisywany np. do scan.log. Następnie zawęża tę listę do plików o potencjalnie cennej zawartości, w tym danych osobowych (target_file_list.log).
4. Generowanie skryptów Lua. Na podstawie promptów model generuje w czasie rzeczywistym skrypty w języku Lua. To lekki, wieloplatformowy język, znany choćby z moddingu w grach. Skrypty są dopasowane do konkretnego systemu operacyjnego i wykonują właściwą pracę: eksfiltrację danych, szyfrowanie lub, w teorii, ich zniszczenie.
5. Szyfrowanie. Pliki są szyfrowane blokami po 16 bajtów przy użyciu SPECK-128 w trybie ECB. Wygenerowany klucz szyfrujący jest, jak wskazują analizy, przesyłany do atakującego z użyciem szyfrowania asymetrycznego RSA.
6. Żądanie okupu. Na końcu malware generuje notatkę z żądaniem okupu, zawierającą między innymi adres portfela Bitcoin.
Co w tym właściwie nowego
Klasyczny ransomware ma złośliwy kod zaszyty na stałe w plikach binarnych. Dzięki temu da się go analizować, katalogować i wykrywać na podstawie sygnatur czy charakterystycznych wzorców zachowania. PromptLock odwraca tę logikę. Właściwy kod wykonawczy, czyli skrypty Lua, nie istnieje, dopóki model AI go nie wygeneruje na miejscu, w trakcie ataku.
To ma dwie konsekwencje. Pierwsza: każda wygenerowana próbka może różnić się strukturą i szczegółami działania, co utrudnia budowanie stałych wskaźników infekcji (IoC) i klasyczną detekcję sygnaturową. Druga, jak zauważa Anton Cherepanov z ESET: do stworzenia w pełni funkcjonalnego, samodostosowującego się malware nie jest już potrzebny zespół doświadczonych programistów. Wystarczy dobrze skonfigurowany model AI.
Ciekawym, choć wciąż niewyjaśnionym detalem jest to, że w jednym z promptów znalazł si zwpisany na stałe w kod adres portfela Bitcoin. To ten sam adres, który uznaje się za pierwszy w historii, przypisywany Satoshiemu Nakamoto. Czy to zamierzony żart, czy zwykły placeholder pozostawiony przez autora malware w wersji testowej, nie wiadomo.
Czy jest się czego bać?
Na dziś umiarkowanie, ale warto rozumieć, dlaczego.
PromptLock nie został odnotowany w żadnym realnym ataku. ESET traktuje go jako proof of concept, a funkcja destrukcji danych jest w kodzie obecna, ale nieaktywna. To, co odkryto, jest raczej demonstracją możliwości niż gotowym narzędziem przestępczym w obiegu.
Do tego, żeby taki atak faktycznie zadziałał, muszą wystąpić konkretne warunki, które w typowej sieci firmowej nie są normą:
- na zainfekowanej maszynie albo w zasięgu sieciowym musi działać serwer Ollama z odpowiednim modelem, a to dodatkowe oprogramowanie i zasoby, których większość stacji roboczych nie ma,
- sieć ofiary musi mieć słabą segmentację, pozwalającą na ruch do lokalnego lub zewnętrznego serwera LLM,
- w organizacji nie mogą być wdrożone mechanizmy kontroli i filtrowania promptów ani ograniczenia ruchu wychodzącego do portów i protokołów typowych dla API modeli językowych.
Innymi słowy: sam pomysł jest niepokojący, bo pokazuje kierunek rozwoju cyberzagrożeń. Ale bariera wejścia dla realnego, masowego ataku tego typu wciąż jest wyższa niż w przypadku klasycznego ransomware rozsyłanego mailem czy przez exploit kit.
Co to znaczy dla firm
Nawet jeśli PromptLock sam w sobie nie jest jeszcze zagrożeniem operacyjnym, wyznacza kierunek, w którym może pójść cyberprzestępczość. Dwa wnioski są praktyczne już teraz.
Detekcja oparta wyłącznie na sygnaturach i stałych wzorcach zachowania będzie z czasem coraz mniej skuteczna wobec malware, które generuje swój kod dynamicznie. Warto sprawdzić, czy używane w organizacji rozwiązania klasy EDR/XDR opierają wykrywanie także na analizie zachowania i anomalii, a nie tylko na sygnaturach.
Segmentacja sieci i kontrola ruchu wychodzącego, w tym do nietypowych portów i protokołów, to nie jest już tylko dobra praktyka „na wszelki wypadek". To konkretny mechanizm, który blokuje ten typ ataku u samego źródła, zanim dojdzie do wykonania jakiegokolwiek złośliwego skryptu