LSTM lub Transformer jako „packer malware”

29 June 2025

LSTM or Transformer as malware packer

Ukrywanie złośliwego kodu w modelach AI

Pomysł wykorzystania modeli AI do ukrywania złośliwego kodu nie jest jedynie koncepcją teoretyczną – istnieją już badania, które dowodzą, że jest to możliwe w praktyce. Przykładem może być zaprezentowana w 2021 roku technika EvilModel, polegająca na umieszczaniu szkodliwego oprogramowania bezpośrednio w parametrach sieci neuronowej.

Przeprowadzone eksperymenty potwierdziły imponujące możliwości tej metody. W popularnym modelu AlexNet o rozmiarze 178 MB udało się skutecznie osadzić 36,9 MB złośliwego kodu, co stanowi około 20% wag sieci, przy jednoczesnej utracie dokładności klasyfikacji obrazów na poziomie poniżej 1%. Nawet bardziej ekstremalne testy, w których malware zajmował aż 50% neuronów warstw ukrytych, skutkowały zaledwie nieznacznym spadkiem dokładności – sieć zachowała aż 93,1% swojej pierwotnej skuteczności.

Co istotne, takie modele z łatwością omijają skanery antywirusowe. Model z ukrytym malware przeszedł bez problemu skanowanie przez 58 silników VirusTotal. Powodem tego jest fakt, że malware ukryty w parametrach sieci jest rozproszony i zakodowany w liczbach zmiennoprzecinkowych, przez co nie zawiera charakterystycznych sekwencji bajtowych rozpoznawanych przez tradycyjne systemy detekcji oparte o sygnatury.

Celowe wykorzystanie zjawiska overfittingu

Alternatywnym podejściem do EvilModel jest zapakowanie całego kodu programu w model neuronowy poprzez celowe wykorzystanie zjawiska overfittingu. Przygotowałem prototyp wykonany w PyTorch z wykorzystaniem sieci LSTM, sieć jest intensywnie trenowana na pojedynczym pliku źródłowym, aż do pełnego zapamiętania jego zawartości. Odpowiednio długi trening powoduje, że wagi sieci stają się praktycznie kontenerem danych, które można następnie odtworzyć.

Potwierdzeniem skuteczności tej techniki było generowanie kodu identycznego z pierwotnym, co zweryfikowano poprzez porównanie sum kontrolnych SHA-256. Podobne rezultaty można osiągnąć także przy użyciu innych modeli, takich jak GRU lub Transformer typu Decoder-Only, co pokazuje dużą elastyczność tego podejścia.

Zaletą tego rodzaju packera jest brak klasycznych wzorców zachowania, które mogą być rozpoznane przez tradycyjne systemy antywirusowe. Zamiast typowych operacji szyfrowania i deszyfrowania danych, proces „wypakowania” odbywa się w wyniku normalnej pracy sieci neuronowej podczas inferencji.

Trudności w detekcji

Model neuronowy jako nietypowy packer jest trudny do wykrycia, ponieważ dla większości narzędzi analitycznych wygląda jak zwykła biblioteka obliczeń AI. Dopiero na wyjściu sieci powstaje gotowy do wykonania złośliwy kod, co stanowi duże wyzwanie dla typowych heurystyk antywirusowych.

Potencjalnie podejrzane może być zapisanie wygenerowanego kodu na dysk, jednak nawet to można ominąć poprzez wykorzystanie technik tzw. fileless malware, czyli generowanie i uruchamianie kodu bezpośrednio w pamięci procesu.

Zastosowanie sprzętowych akceleratorów AI

Jednym z najbardziej interesujących aspektów używania modeli AI do ukrywania malware jest możliwość wykorzystania dedykowanych sprzętowych akceleratorów neuronowych, obecnych w wielu nowoczesnych urządzeniach (np. Apple Neural Engine, GPU z Tensor Cores od NVIDII).

Główną przewagą takiego podejścia jest minimalizacja podejrzanych zachowań widocznych na poziomie CPU, ponieważ intensywne obliczenia odbywają się na specjalizowanych układach. Menedżery zasobów czy systemy bezpieczeństwa mogą nie zauważyć nic nietypowego, gdyż z ich punktu widzenia proces wykonuje standardowe operacje AI.

Ponadto, typowe metody analizy dynamicznej (sandboxing) nie są skuteczne wobec obliczeń prowadzonych na GPU czy NPU, co znacznie utrudnia analizę złośliwego oprogramowania. Systemy monitorowania procesów i zasobów zwykle nie posiadają mechanizmów nadzorowania operacji bibliotek ML, co daje malware kolejną warstwę niewidzialności.

Wyzwania techniczne dla atakujących

Pomimo licznych zalet, zastosowanie takiego podejścia wiąże się także z pewnymi wyzwaniami technicznymi. Atakujący muszą przygotować modele kompatybilne z układem ofiary i ewentualnie dostarczyć odpowiednie formaty modeli, co wymaga dodatkowego nakładu pracy. Jednak współczesne frameworki umożliwiają konwersję modeli pomiędzy platformami, co czyni to zadanie wykonalnym.

W rezultacie, neuronowe packery mogą stać się atrakcyjną alternatywą dla tradycyjnych metod ukrywania malware, analogicznie do historycznych technik ukrywania kodu np. w pamięci GPU. Dynamiczny rozwój sprzętu wspierającego AI może wkrótce uczynić tę technikę istotnym zagrożeniem cyberbezpieczeństwa.

Rozszerzając ten prototyp pamiętaj o wykorzystaniu biblioteki safetensors, aby uniknąć problemów z bezpieczeństwem tzw. „pickle attacks”. Jest to tylko projekt badawczy, nie jest przeznaczony do użytku produkcyjnego. Wykorzystuj go wyłącznie w celach edukacyjnych i badawczych, a nie do tworzenia złośliwego oprogramowania.


Aktualizacje