W repozytorium Hugging Face odkryto złośliwe modele AI wykonujące kod

Badacze z firmy JFrog odkryli złośliwe modele uczenia maszynowego w repozytorium Hugging Face, których instalacja może prowadzić do wykonania kodu atakującego i przejęcia kontroli nad systemem użytkownika. Problem wynika z tego, że niektóre formaty dystrybucji modeli umożliwiają osadzanie kodu wykonywalnego, na przykład modele używające formatu „pickle” mogą zawierać serializowane obiekty w języku Python oraz kod wykonywany podczas ładowania pliku, a modele Tensorflow Keras mogą uruchamiać kod przez Lambda Layer.

Aby zapobiec rozprzestrzenianiu się podobnych złośliwych modeli, w Hugging Face stosuje się skanowanie w poszukiwaniu substytucji kodu serializowanego, jednak wykryte złośliwe modele pokazują, że istniejące kontrole można obejść. Dodatkowo, Hugging Face w większości przypadków jedynie oznacza modele jako niebezpieczne, nie blokując do nich dostępu. Całkowita liczba zidentyfikowanych potencjalnie złośliwych modeli wynosi około 100, z czego 95% jest przeznaczone do użycia z frameworkiem PyTorch, a 5% z Tensorflow. Najczęściej spotykane złośliwe zmiany obejmują przechwycenie obiektu, organizację zdalnego dostępu do systemu (reverse shell), uruchamianie aplikacji oraz zapis do pliku.

W repozytorium Hugging Face odkryto złośliwe modele AI wykonujące kod

Zauważono, że na podstawie przeprowadzanych działań, większość wykrytych złośliwych modeli została stworzona przez badaczy bezpieczeństwa, którzy starają się zdobyć nagrody za odkrycie podatności i metod obejścia zabezpieczeń Hugging Face (na przykład zamiast rzeczywistego ataku, takie modele starają się uruchomić kalkulator lub wysłać zapytanie sieciowe z informacją o sukcesie ataku). Występują również przypadki, które uruchamiają odwrotny shell, aby połączyć atakującego z systemem.

Na przykład modele „baller423/goober2” i „star23/baller13” są skierowane na przeprowadzenie ataku na systemy, które ładują plik modelu w PyTorch za pomocą funkcji torch.load(). Do realizacji wykonania kodu wykorzystywana jest metoda „__reduce__” z modułu pickle, która pozwala na wstawienie dowolnego kodu w języku Python do procesu deserializacji, wykonywanego podczas ładowania modelu.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster