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.
Chciałbym teraz odpowiedzieć zbiorczo na kilka najczęściej przewijających się komentarzy i zarzutów:
„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.
„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:
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:
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.