Odpowiedzi na wasze pytania po artykule o packerze malware

01 July 2025

Dziękuję za pozytywny odzew!

Nie spodziewałem się aż tak dużego zainteresowania moim inauguracyjnym wpisem na blogu. To był krótki eksperyment badawczy - pomysł na celowe przeuczenie modelu LSTM lub Transformera, tak by “upchnąć” w nim kod, który później można odzyskać. Pomysł przyszedł mi do głowy już miesiąc temu, ale dopiero teraz znalazłem czas, żeby go spisać i opublikować.

Nie jest to może coś rewolucyjnego, ale ewidentnie trafiło w niszę - bo nikt wcześniej nie zaproponował, by overfitting wykorzystać w praktycznym celu, zwłaszcza w kontekście malware. I to właśnie okazało się najbardziej intrygujące dla społeczności.

Mój artykuł zdobył niespodziewaną popularność. Po wrzuceniu go na Reddita, trafił na główną stronę r/MachineLearning. Stan na 1 lipca:

Dziękuję za każdy komentarz, pytanie i krytykę. Cieszę się, że temat poruszył tak wiele osób.

Odpowiedzi na komentarze z Reddita

Chciałbym teraz odpowiedzieć zbiorczo na kilka najczęściej przewijających się komentarzy i zarzutów:

  1. „PoC nie uruchamia payloadu”

    Zgadza się. Mój PoC miał służyć wyłącznie demonstracji mechanizmu - czyli tego, jak model ML może pełnić funkcję archiwum/packera i jak celowe przeuczenie może zakodować wagi tak, by “przechowywały” plik źródłowy.

    Dlatego na GitHubie nie znajdziesz realnego malware ani dynamicznego ładowania kodu z pamięci. To świadomy wybór - chciałem pozostać po stronie czystego prototypu, a nie budować gotowe narzędzie w złym celu.

    Repo zawiera przykład na klasycznym bubble sort, nic więcej.

  2. „To po prostu fancy zaciemnianie kodu”

    Zgoda - w pewnym sensie tak. To niestandardowa forma obfuskacji kodu. Jednak to „fancy” podejście otwiera nowe wektory ataku:

    • Brak pliku binarnego — kod siedzi w modelu, więc nie ma czego analizować statycznie.
    • Brak tradycyjnego deploymentu - payload może być “wyciągnięty” tylko przez konkretny model i architekturę.
    • Inferencja jako detekcja środowiska - sandboxy często zamykają się przy bezczynności. Inferencja to dla nich… benchmark.

Dodatkowo, jeśli połączymy to z natywnym API systemowym do uruchamiania modeli (np. Windows ML API, CoreML, DirectML), do tego dodamy permutację wag i inne zabiegi - możemy stworzyć malware, które będzie:

Co dalej?

Pracuję już nad kolejnymi projektami, które mam nadzieję również przypadną do gustu społeczności. Najnowszy to autorska biblioteka klienta Model Context Protocol (MCP), która będzie lekka, funkcjonalna i szybka. Będzie odpowiedzią na istniejące rozwiązania, które nie zapewniają niczego z powyższych. Więcej szczegółów - wkrótce w kolejnym artykule.

Dziękuję wszystkim za komentarze, inspirację i konstruktywną krytykę. Jeśli podobał Ci się mój poprzedni wpis to daj mi znak - każda reakcja daje mi motywację do dalszego eksplorowania.