Pułapki w repozytoriach modeli: złośliwe pliki na platformach open-source AI
Pobranie modelu jak uruchomienie programu
Wielu użytkowników traktuje gotowy model sztucznej inteligencji jak zwykły plik z danymi — coś w rodzaju arkusza albo zdjęcia. Tymczasem popularne formaty zapisu wag, przede wszystkim pickle wykorzystywany przez PyTorcha, mają właściwość znacznie groźniejszą: przy wczytywaniu potrafią wykonać dowolny kod Pythona osadzony wewnątrz pliku. Pobranie modelu z niepewnego repozytorium jest więc technicznie równoznaczne z uruchomieniem programu od anonimowego autora.
Mechanizm tej pułapki opiera się na funkcji o nazwie reduce, pozwalającej zapisać w strumieniu pickle polecenie, które interpreter wykona automatycznie podczas deserializacji. Użytkownik wywołuje standardową procedurę wczytania wag, a system operacyjny otwiera połączenie sieciowe, zapisuje pliki albo zakłada tylne wejście — bez żadnego ostrzeżenia i bez wiedzy ofiary. To klasyczna słabość łańcucha dostaw oprogramowania, przeniesiona do świata uczenia maszynowego.
Odkrycie JFrog: około stu podejrzanych modeli
Że problem nie jest teoretyczny, udowodnił w lutym 2024 roku zespół bezpieczeństwa firmy JFrog, który skonfigurował własne środowisko skanujące modele wgrywane na Hugging Face — największą publiczną platformę dystrybucji modeli. W wynikach badania opublikowanego na firmowym blogu naukowcy zgłosili około stu modeli zawierających ukrytą funkcjonalność; według relacji Ars Technica dziesięć z nich oceniono jako faktycznie destrukcyjne, a resztę jako ryzykowne eksperymenty badawcze.
Najbardziej niepokojącym przykładem był model wgrany przez użytkownika o pseudonimie baller423. Po wczytaniu pliku na maszynie testowej uruchomił się odwrotny powłoka — połączenie zwrotne do zdalnego serwera, dające pełną kontrolę nad komputerem ofiary. Ładunek wykorzystał właśnie metodę reduce modułu pickle i przeszedł niezauważony przez wbudowane skanery platformy. Hugging Face usunął zgłoszone repozytoria, ale sama sprawa pokazała skalę luki: platforma pełniąca rolę „GitHuba dla sztucznej inteligencji” hostowała pliki zdolne przejąć maszyny programistów.
Skanery też bywają omijane
Platformy nie są bezbronne — Hugging Face skanuje każdy wgrywany plik antywirusem ClamAV oraz własnym analizatorem importów pickle, oznacza podejrzane modele flagą „unsafe” i rozwija bezpieczny format zapisu wag safetensors. Problem polega jednak na tym, że oznaczenie nie blokuje pobierania: użytkownik nadal może wczytać model oznaczony jako ryzykowny, a lista niebezpiecznych importów jest prowadzona ręcznie i nigdy nie będzie kompletna.
Gorzej: narzędzia obronne same stają się celem. W grudniu 2025 roku badacze JFrog ujawnili trzy krytyczne słabości popularnego skanera PickleScan, używanego między innymi przez Hugging Face, pozwalające całkowicie ominąć kontrolę — poprzez podmianę rozszerzenia pliku, spreparowane archiwum ZIP z błędnymi sumami CRC oraz wykorzystanie klas potomnych niebezpiecznych modułów. Każda z tych technik sprawiała, że skaner raportował czysty wynik, podczas gdy wczytanie modelu w PyTorchu wykonywało ukryty kod.
Ta asymetria jest strukturalna: obrońca musi znać wszystkie drogi ataku, napastnik wystarczy jedną. Dlatego czysty wynik skanowania należy traktować jako informację, a nie gwarancję.
Jak pobierać rozsądnie
Podstawową zasadą jest ograniczanie zaufania do źródła. Modele warto pobierać wyłącznie od zweryfikowanych organizacji, korzystając z repozytoriów oficjalnych twórców i — tam, gdzie to możliwe — z podpisanych kryptograficznie rewizji, które potwierdzają autorstwo pliku. Kolejnym krokiem jest preferowanie formatów niemalujących kodu: safetensors przechowuje wyłącznie liczby i nagłówek opisowy, więc fizycznie nie ma gdzie umieścić ładunku wykonawczego.
Jeśli starszy format jest nieunikniony, wczytywanie należy izolować: kontener bez dostępu do sieci, ograniczone uprawnienia, osobna maszyna do konwersji wag. Pomocniczo można stosować narzędzia typu picklescan czy torch.load w trybie restrykcyjnym, pamiętając jednak, że żadna pojedyncza warstwa kontroli nie zastąpi ostrożnej higieny źródeł. Organizacje wdrażające modele na większą skalę powinny dodatkowo prowadzić wewnętrzny rejestr zatwierdzonych artefaktów i przepuszczać wszystkie pobrania przez proxy z kuracją zawartości.
Warto też pamiętać o wymiarze prawnym: wdrożenie zainfekowanego modelu w środowisku korporacyjnym może oznaczać wyciek danych klientów i obowiązek zgłoszenia naruszenia, więc procedury zakupowe działów IT powinny obejmować także pliki wag, a nie tylko gotowe aplikacje.
Konkluzja
Otwarte repozytoria modeli są jednym z największych sukcesów wspólnoty uczenia maszynowego — i jednocześnie nowym polem minowym. Historia z modelem otwierającym zdalny dostęp do maszyny, odkrytym dopiero dzięki prywatnemu skanowaniu JFrog, pokazuje, że darmowy plik może być bronią skierowaną dokładnie w tych, którzy chcą się uczyć i budować. Ekosystem zmierza w dobrym kierunku — bezpieczne formaty i automatyczne kontrole stają się standardem — lecz odpowiedzialność końcowego użytkownika nie znika. Zasada z czasów pierwszych wirusów komputerowych obowiązuje więc dalej, tylko w nowej odsłonie: zanim wczytasz cudze wagi, upewnij się, że naprawdę wiesz, skąd pochodzą.