Blog o bezpieczeństwie FireAI

Autor FireAI Security & Research Team · Opublikowano

Slopsquatting: gdy Twój asystent kodowania AI wymyśla pakiet, a ktoś inny go rejestruje

Slopsquatting: gdy Twój asystent kodowania AI wymyśla pakiet, a ktoś inny go rejestruje

Poproś asystenta kodowania o rozwiązanie problemu, a czasami zaleci instalację pakietu: prawdziwego do typowych zadań i, wymiernie często, pakietów, które w ogóle nie istnieją. Wymyślił wiarygodną nazwę, ponieważ otaczający wzorzec kodu wymagał tam zależności. Jeśli ty lub twój agent kodujący i tak uruchomicie polecenie install, wszystko, co faktycznie jest zarejestrowane pod tą nazwą w PyPI lub npm, wyląduje na twoim komputerze. Badacz bezpieczeństwa Seth Larson, programista-rezydent w Python Software Foundation, nazwał wynikający z tego atak „slopsquatting”, odnotowując nazwy halucynacje modeli, czyli generowany przez sztuczną inteligencję odpowiednik typosquattingu.

Jak często to się faktycznie zdarza

Zespół z Uniwersytetu Teksasu w San Antonio w stanie Virginia Tech i Uniwersytetu w Oklahomie zmierzył to bezpośrednio: „Mamy dla Ciebie pakiet!” został przyjęty do USENIX Security 2025. W 576 000 wygenerowanych próbek kodu z 16 popularnych modeli w dwóch językach znaleziono pakiety halucynacyjne w „co najmniej 5,2% w przypadku modeli komercyjnych i 21,7% w przypadku modeli typu open source”, co daje w sumie 205 474 unikalnych nazw pakietów halucynacyjnych. Nie jest to rzadki przypadek Edge; w przypadku niektórych modeli typu open source jest to mniej więcej jedna na pięć sugerowanych zależności.

Spracklen i in., USENIX Security 2025, arXiv:2406.10279. Średnie dla 16 testowanych modeli; poszczególne modele były zróżnicowane.
Klasa modeluWskaźnik halucynacji (zaleceń pakietu)
Modele komercyjne (średnie)co najmniej 5,2 proc
Modele typu open source (średnio)co najmniej 21,7 proc

Dlaczego to jest nie do przyjęcia, a nie tylko błędne

Jednorazowa wymyślona nazwa byłaby uciążliwością, a nie powierzchnią ataku. To, co sprawia, że ​​można go wykorzystać, to powtarzanie: jak Jak poinformował „Rejestr”. z 12 kwietnia 2025 r., kiedy badacze powtórzyli ten sam komunikat dziesięć razy, „43 procent pakietów halucynacji powtarza się za każdym razem, a 39 procent nigdy się nie pojawia”. Prawie połowa imion zawierających halucynacje nie jest przypadkowym dźwiękiem; są to te same przypuszczenia, do których model sięga po niezawodnie podobny kod. Osoba atakująca nie musi zgadywać, co napisze konkretny programista. Mogą uruchamiać te same modele w oparciu o typowe podpowiedzi, zbierać powtarzające się nazwy i rejestrować je z wyprzedzeniem w rzeczywistym indeksie pakietów.

Przykład: moment ryzyka
pip install fast-json-normalizer   # suggested by a coding assistant
Collecting fast-json-normalizer
  Downloading fast-json-normalizer-0.3.1.tar.gz
Running setup.py install for fast-json-normalizer ... done
# Nothing here indicates whether this name was ever a real, reviewed project
# or was registered specifically because models keep suggesting it.

Dlaczego to pasuje do wzorca, który OWASP już śledzi

Jest to odmiana tego, co Top 10 aplikacji OWASP dla aplikacji LLM nazywa ryzykiem łańcucha dostaw w przypadku rozwoju wspomaganego sztuczną inteligencją: granica zaufania, która wcześniej znajdowała się na poziomie „czy człowiek zdecydował się dodać tę zależność”, przesuwa się do „czy wybrało to uzupełnianie wzorca modelu”, a uzupełnianie wzorca nie ma pojęcia, czy nazwa jest prawdziwa.

Co właściwie z tym zrobić

  • Traktuj każdą nazwę pakietu, którą sugeruje agent kodujący, jako sugestię do sprawdzenia, a nie jako znaną dobrą zależność, w ten sam sposób, w jaki traktowałbyś nazwę wpisaną przez młodszego współautora z pamięci.
  • Sprawdź datę rejestracji i historię pobierania przed zainstalowaniem czegokolwiek nieznanego; pakiet, który pojawił się niedawno i jest podejrzanie dobrze dopasowany do popularnego wzorca podpowiedzi generowanego przez sztuczną inteligencję, zasługuje na drugie spojrzenie.
  • Przypnij zależności i użyj pliku blokującego, aby halucynacyjna nazwa, która wkradła się raz, nie została później po cichu rozwiązana.
  • Zobacz, co faktycznie robi świeżo zainstalowany pakiet przy pierwszym uruchomieniu. Nowo zarejestrowana zależność docierająca do serwera, z którym nie ma kontaktu biznesowego, jest sygnałem, który zapora może przechwycić, nawet jeśli podczas przeglądu kodu nie pominięto nazwy.

Jaką rolę odgrywają FireAI i HisnLabs

A squatted package that phones home still has to make a connection to do it, from a Python or Node process you just ran; FireAI shows you that connection, the process behind it and where it is going, before you decide whether it belongs there.

FireAI to własny produkt HisnLabs: zapora sieciowa z AI działająca bezpośrednio na Macu. Pokazuje prostym językiem każde połączenie nawiązywane przez twoje aplikacje i pozwala ci decydować, co opuszcza twojego Maca — jej AI działa lokalnie, więc twój ruch nigdy nie jest wysyłany do nas ani do nikogo innego. Zespół badań nad bezpieczeństwem HisnLabs dba o to, by te decyzje pozostały trafne: kataloguje, które domeny to zwykła telemetria, a które prawdziwa usługa, śledzi kraj i sieć stojące za połączeniem oraz trenuje lokalny model (funkcję Autopilot) na rzeczywistych wzorcach ruchu — a nic z tego nie opuszcza twojego Maca.

Możesz przeczytać o decyzjach technicznych, które za tym stoją, albo wypróbować FireAI przez 17 dni na FireAI od HisnLabs.

Źródła