Złośliwe AI: ewolucja polimorfizmu w modelu Loader-as-a-Service

avlab.pl 13 godzin temu
Zdjęcie: Złośliwe AI: ewolucja polimorfizmu w modelu Loader-as-a-Service


Polimorfizm w kontekście złośliwego systemu oznacza zdolność do dynamicznej zmiany formy kodu przy zachowaniu tej samej funkcjonalności. Klasyczne podejście polega na generowaniu wielu wariantów tej samej próbki poprzez obfuskację, szyfrowanie lub modyfikację struktury instrukcji. W rezultacie każda próbka malware posiada inny hash oraz różni się binarnie, co też utrudnia detekcję opartą na sygnaturach. Mechanizm ten był przez lata skuteczną metodą unikania identyfikacji przez rozwiązania antywirusowe bazujące na statycznych wzorcach.

Współczesna ewolucja tego podejścia została opisana przez Gen Digital pod pojęciem promptmorphism. W odróżnieniu od klasycznego polimorfizmu, gdzie mutacje zachodzą na poziomie kodu końcowego, promptmorphism przenosi zmienność na etap generowania kodu – na początek. Czyli zamiast modyfikować istniejący binarny kod, atakujący wykorzystuje modele językowe (LLM) do tworzenia nowych wariantów złośliwego systemu poprzez różnorodne prompty wejściowe. Każdy prompt prowadzi do wygenerowania unikalnej implementacji, co skutkuje powstawaniem dużej liczby niepowtarzalnych komponentów malware.

Eksperci piszą, iż koncepcja promptmorfizmu znajduje odzwierciedlenie w modelach zagrożeń typu Loader-as-a-Service (LaaS), gdzie pojedyncza warstwa ładująca jest współdzielona pomiędzy wieloma kampaniami i regularnie modyfikowana. W analizowanych kampaniach ta sama logika etapu pierwszego była wykorzystywana do dostarczania różnych rodzin malware, m.in. Wincir oraz Stealc, przy zachowaniu identycznego celu operacyjnego.

Kluczowym elementem nie jest sama zmiana funkcjonalności malware, ale tempo i sposób transformacji warstwy pakującej. W krótkich przedziałach czasu (liczonych w dniach) ten sam loader był dystrybuowany w wielu wariantach różniących się wyłącznie sposobem opakowania i reprezentacji payloadu. Przykładowo, obserwowano przejścia pomiędzy zaszyfrowanym payloadem osadzonym w pliku wykonywalnym (wraz z kluczem szyfrującym), a jego reprezentacją w formacie hex-encoded. Następnie stosowano payload, który był dzielony na wiele części wymagających rekonstrukcji w czasie wykonania. Kolejne iteracje obejmowały powrót do surowych zaszyfrowanych bajtów, przenoszenie danych do nagłówka PE, a także wstrzykiwanie zaszyfrowanych danych bezpośrednio do sekcji kodu, zacierając tym samym granicę między kodem a danymi.

W klasycznym modelu zmienność jest ograniczona do technik transformacji kodu, natomiast w modelu opartym o LLM zmienność ma charakter generatywny. Oznacza to, iż nie tylko wynikowy kod różni się między próbkami, ale również logika jego powstawania jest dynamiczna i trudna do odtworzenia. W praktyce prowadzi to do sytuacji, w której każda próbka może być traktowana jako unikalny artefakt, pozbawiony wspólnych cech charakterystycznych na poziomie statycznym.

Tradycyjne podejścia oparte na sygnaturach, sumach kontrolnych czy choćby klasycznych metodach heurystycznych, tracą skuteczność wobec masowo generowanych, jednorazowych próbek. Skala produkcji takiego malware, wspierana przez automatyzację modeli językowych, umożliwia atakującym szybkie iterowanie i dostosowywanie kodu bez konieczności manualnej ingerencji. W konsekwencji rośnie znaczenie metod opartych na analizie behawioralnej, telemetrii oraz korelacji zdarzeń w czasie rzeczywistym.

Prompt-morfizm można zatem traktować jako naturalną kontynuację polimorfizmu: autorzy malware przechodzą z modyfikacji kodu na kontrolę procesu jego generowania. Zmienia się zatem samo projektowanie złośliwego systemu i jednocześnie wymusza adaptację mechanizmów obronnych, które muszą operować na wyższym poziomie analizy niż dotychczas.

Idź do oryginalnego materiału