Generatywna analiza danych

Boty AI mają halucynacje dotyczące pakietów oprogramowania, a programiści je pobierają

Data:

Dogłębna Kilka dużych firm opublikowało kod źródłowy zawierający pakiet oprogramowania, który wcześniej był halucynacją generatywnej sztucznej inteligencji.

Co więcej, ktoś, zauważywszy tę powtarzającą się halucynację, przekształcił tę wymyśloną zależność w rzeczywistą, która została następnie pobrana i zainstalowana przez programistów tysiące razy w wyniku złej rady sztucznej inteligencji, jak się dowiedzieliśmy. Gdyby pakiet zawierał rzeczywiste złośliwe oprogramowanie, a nie był łagodnym testem, wyniki mogłyby być katastrofalne.

Według Bar Lanyado, badacza bezpieczeństwa w Lasso Security, jedną z firm oszukanych przez sztuczną inteligencję i włączenie pakietu jest Alibaba, która w chwili pisania tego tekstu nadal zawiera pip komenda aby pobrać pakiet Pythona huggingface-cli w tym Tłumacz wykresów instrukcje instalacji.

Istnieje legalne rozwiązanie huggingface-cli, zainstalowany przy użyciu pip install -U "huggingface_hub[cli]".

Ale huggingface-cli dystrybuowany za pośrednictwem indeksu pakietów Pythona (PyPI) i wymagany przez GraphTranslator Alibaba – instalowany przy użyciu pip install huggingface-cli – jest fałszywe, wymyślone przez sztuczną inteligencję i zamienione w rzeczywistość przez Lanyado w ramach eksperymentu.

On stworzył huggingface-cli w grudniu po tym, jak wielokrotnie widział go halucynowanego przez generatywną sztuczną inteligencję; do lutego tego roku Alibaba odnosił się do tego w instrukcjach README programu GraphTranslator, a nie do prawdziwego narzędzia CLI Hugging Face.

Badanie

Lanyado zrobił to, aby zbadać, czy tego rodzaju halucynacyjne pakiety oprogramowania – nazwy pakietów wymyślone przez generatywne modele sztucznej inteligencji, prawdopodobnie podczas opracowywania projektu – utrzymują się w czasie oraz aby sprawdzić, czy wymyślone nazwy pakietów można przejąć i wykorzystać do dystrybucji złośliwego kodu poprzez zapisanie rzeczywistego pakiety używające nazw kodu wymyślonych przez sztuczną inteligencję.

Pomysł jest taki, że ktoś nikczemny mógłby poprosić modele o poradę dotyczącą kodu, zanotować wyimaginowane pakiety, które systemy AI wielokrotnie polecają, a następnie wdrożyć te zależności, tak aby inni programiści, korzystając z tych samych modeli i otrzymując te same sugestie, w końcu wciągnęli tych bibliotek, które mogą zostać zatrute złośliwym oprogramowaniem.

W ubiegłym roku za pośrednictwem firmy ochroniarskiej Vulcan Cyber, Lanyado opublikowany badania szczegółowo opisujące, w jaki sposób można zadać pytanie dotyczące kodowania modelowi sztucznej inteligencji, takie jak ChatGPT, i otrzymać odpowiedź zalecającą użycie biblioteki oprogramowania, pakietu lub platformy, która nie istnieje.

„Kiedy atakujący prowadzi taką kampanię, poprosi model o pakiety rozwiązujące problem z kodowaniem, a następnie otrzyma pakiety, które nie istnieją” – wyjaśnił Lanyado Rejestr. „Będzie przesyłał złośliwe pakiety o tych samych nazwach do odpowiednich rejestrów i od tego momentu wystarczy, że będzie czekać, aż ludzie pobiorą pakiety”.

Niebezpieczne założenia

Gotowość modeli AI do pewności powoływać się na nieistniejące sprawy sądowe jest obecnie dobrze znane i wywołało niemałe zakłopotanie wśród prawników nieświadomych tej tendencji. Jak się okazuje, generatywne modele sztucznej inteligencji zrobią to samo w przypadku pakietów oprogramowania.

Jak zauważył wcześniej Lanyado, złoczyńca może użyć nazwy wymyślonej przez sztuczną inteligencję dla złośliwego pakietu przesłanego do jakiegoś repozytorium w nadziei, że inne osoby mogą pobrać złośliwe oprogramowanie. Aby jednak był to znaczący wektor ataku, modele sztucznej inteligencji musiałyby wielokrotnie rekomendować wybraną nazwę.

Właśnie to Lanyado postanowił przetestować. Uzbrojony w tysiące pytań typu „jak to zrobić”, zadał cztery modele sztucznej inteligencji (GPT-3.5-Turbo, GPT-4, Gemini Pro alias Bard i Coral [Cohere]) pod kątem wyzwań programistycznych w pięciu różnych językach programowania/środowiskach wykonawczych (Python, Node.js, Go, .Net i Ruby), z których każdy ma własny system pakowania.

Okazuje się, że część nazw, które te chatboty wyciągają z powietrza, jest trwała, niektóre w różnych modelach. A wytrwałość – powtarzanie fałszywej nazwy – jest kluczem do przekształcenia fantazji AI w atak funkcjonalny. Osoba atakująca potrzebuje modelu sztucznej inteligencji, aby powtarzał nazwy pakietów zawierających halucynacje w odpowiedziach kierowanych do użytkowników w celu wyszukania i pobrania złośliwego oprogramowania utworzonego pod tymi nazwami.

Lanyado wybrał losowo 20 pytań dotyczących halucynacji zerowych i zadał je 100 razy każdemu modelowi. Jego celem była ocena, jak często nazwa opakowania wywołanego halucynacjami pozostawała taka sama. Wyniki jego testu pokazują, że nazwy są trwałe na tyle często, że stanowi to funkcjonalny wektor ataku, choć nie zawsze, a w niektórych ekosystemach opakowań częściej niż w innych.

Według Lanyado w przypadku GPT-4 24.2 procent odpowiedzi na pytania skutkowało halucynacjami, z czego 19.6 procent miało charakter powtarzalny. Do dyspozycji stół Rejestrponiżej przedstawiono bardziej szczegółowy podział odpowiedzi GPT-4.

  Python Node.JS Rubin .NET Go
Wszystkie pytania 21340 13065 4544 5141 3713
Pytania z przynajmniej jednym pakietem halucynacyjnym 5347 (% 25) 2524 (% 19.3) 1072 (% 23.5) 1476 (28.7%) 1093 nadające się do wykorzystania (21.2%) 1150 (30.9%) 109 nadające się do wykorzystania (2.9%)
Halucynacje w ujęciu zerowym 1042 (% 4.8) 200 (% 1.5) 169 (% 3.7) 211 (4.1%) 130 nadające się do wykorzystania (2.5%) 225 (6%) 14 nadające się do wykorzystania (0.3%)
Halucynacje w drugim ujęciu 4532 (% 21) 2390 (% 18.3) 960 (% 21.1) 1334 (25.9%) 1006 nadające się do wykorzystania (19.5%) 974 (26.2%) 98 nadające się do wykorzystania (2.6%)
Powtarzalność w ujęciu zerowym 34.4% 24.8% 5.2% 14% -

W przypadku GPT-3.5 22.2 procent odpowiedzi na pytania wywołało halucynacje, przy 13.6 procentach powtarzalności. W przypadku Bliźniąt 64.5 pytań zawierało wymyślone nazwy, z czego około 14 procent się powtarzało. W przypadku Cohere’a było to 29.1% halucynacji i 24.2% powtórzeń.

Mimo to ekosystemy pakietów w Go i .Net zostały zbudowane w sposób ograniczający potencjał wykorzystania poprzez odmowę atakującym dostępu do określonych ścieżek i nazw.

„W Go i .Net otrzymaliśmy pakiety halucynacyjne, ale wielu z nich nie można było wykorzystać do ataku (w Go liczby były znacznie większe niż w .Net), a każdy język miał swój własny powód” – wyjaśnił Lanyado Rejestr. „W Pythonie i npm tak nie jest, ponieważ model rekomenduje nam pakiety, które nie istnieją i nic nie stoi na przeszkodzie, abyśmy wgrywali pakiety o tych nazwach, więc zdecydowanie dużo łatwiej jest przeprowadzić tego rodzaju atak na języki takie jak Python i Node.js.”

Rozsyłanie złośliwego oprogramowania PoC

Lanyado wyraził to, rozpowszechniając złośliwe oprogramowanie weryfikujące koncepcję – nieszkodliwy zestaw plików w ekosystemie Pythona. Na podstawie porad ChatGPT dotyczących uruchomienia pip install huggingface-cli, przesłał do PyPI pusty pakiet o tej samej nazwie – ten wspomniany powyżej – i stworzył fikcyjny pakiet o nazwie blabladsa123 aby pomóc oddzielić skanowanie rejestru pakietów od rzeczywistych prób pobierania.

Skutek, jak twierdzi, jest taki huggingface-cli w ciągu trzech miesięcy od jej udostępnienia pobrano ponad 15,000 XNUMX autentycznych plików.

„Ponadto przeszukaliśmy GitHub, aby ustalić, czy ten pakiet był wykorzystywany w repozytoriach innych firm” – powiedział Lanyado w spis za jego eksperyment.

„Nasze ustalenia wykazały, że kilka dużych firm używa lub poleca ten pakiet w swoich repozytoriach. Na przykład instrukcje dotyczące instalacji tego pakietu można znaleźć w pliku README repozytorium poświęconego badaniom prowadzonym przez Alibaba.”

Alibaba nie odpowiedział na prośbę o komentarz.

Lanyado powiedział również, że istniał projekt należący do Hugging Face, który zawierał fałszywe huggingface-cli, ale to zostało usunięte po tym jak zaalarmował biznes.

Przynajmniej jak dotąd technika ta nie została wykorzystana w rzeczywistym ataku, o którym Lanyado wie.

„Oprócz naszego pakietu halucynacyjnego (nasz pakiet nie jest złośliwy, to tylko przykład tego, jak łatwe i niebezpieczne może być wykorzystanie tej techniki) nie zidentyfikowałem jeszcze wykorzystania tej techniki ataku przez złośliwe podmioty” – powiedział. „Należy zauważyć, że zidentyfikowanie takiego ataku jest skomplikowane, ponieważ nie pozostawia on zbyt wielu śladów”. ®

spot_img

Najnowsza inteligencja

spot_img

Czat z nami

Cześć! Jak mogę ci pomóc?