Platon Data Intelligence.
Vertikal sökning & Ai.

AI-bots hallucinerar mjukvarupaket och utvecklare laddar ner dem

Datum:

Fördjupad Flera stora företag har publicerat källkod som innehåller ett mjukvarupaket som tidigare hallucinerats av generativ AI.

Inte bara det utan någon som har upptäckte detta återkommande hallucinationer, hade förvandlat det påhittade beroendet till ett verkligt beroende, som sedan laddades ner och installerades tusentals gånger av utvecklare som ett resultat av AI:s dåliga råd, har vi lärt oss. Om paketet var spetsat med faktisk skadlig programvara, snarare än att vara ett godartat test, kunde resultaten ha varit katastrofala.

Enligt Bar Lanyado, säkerhetsforskare på Lasso Security, är en av de företag som luras av AI att införliva paketet Alibaba, som i skrivande stund fortfarande innehåller en pip kommando för att ladda ner Python-paketet huggingface-cli i sin GraphTranslator installationsinstruktioner.

Det finns en legitim huggingface-cli, installerad med hjälp av pip install -U "huggingface_hub[cli]".

Men huggingface-cli distribueras via Python Package Index (PyPI) och krävs av Alibabas GraphTranslator – installerad med pip install huggingface-cli – är falskt, föreställt av AI och blivit verkligt av Lanyado som ett experiment.

Han skapade huggingface-cli i december efter att ha sett den upprepade gånger hallucinerad av generativ AI; i februari i år hänvisade Alibaba till det i GraphTranslators README-instruktioner snarare än det riktiga Hugging Face CLI-verktyget.

Läsa på

Lanyado gjorde det för att undersöka om den här typen av hallucinerade mjukvarupaket – paketnamn som uppfunnits av generativa AI-modeller, förmodligen under projektutveckling – kvarstår över tid och för att testa om uppfunna paketnamn kunde samordnas och användas för att distribuera skadlig kod genom att skriva faktisk paket som använder namnen på kod som skapats av AI:er.

Tanken här är att någon skändlig skulle kunna be modeller om kodråd, anteckna föreställda paket som AI-system rekommenderar upprepade gånger och sedan implementera dessa beroenden så att andra programmerare, när de använder samma modeller och får samma förslag, slutar med att dra in dessa bibliotek, som kan vara förgiftade med skadlig programvara.

Förra året, genom säkerhetsföretaget Vulcan Cyber, Lanyado publicerade forskning som beskriver hur man kan ställa en kodningsfråga till en AI-modell som ChatGPT och få ett svar som rekommenderar användning av ett programbibliotek, paket eller ramverk som inte finns.

"När en angripare kör en sådan kampanj kommer han att fråga modellen efter paket som löser ett kodningsproblem, sedan kommer han att få några paket som inte finns," förklarade Lanyado till Registret. "Han kommer att ladda upp skadliga paket med samma namn till lämpliga register, och från den tidpunkten behöver han bara vänta på att folk ska ladda ner paketen."

Farliga antaganden

Viljan hos AI-modeller att tryggt åberopa obefintliga rättsfall är nu välkänt och har orsakat en liten mängd förlägenhet bland advokater som inte är medvetna om denna tendens. Och som det visar sig kommer generativa AI-modeller att göra samma sak för programvarupaket.

Som Lanyado noterade tidigare, kan en ondsint person använda ett AI-uppfunnet namn för ett skadligt paket som laddats upp till något arkiv i hopp om att andra kan ladda ner skadlig programvara. Men för att detta ska vara en meningsfull attackvektor måste AI-modeller upprepade gånger rekommendera det adjungerade namnet.

Det var vad Lanyado försökte testa. Beväpnad med tusentals "hur man"-frågor frågade han fyra AI-modeller (GPT-3.5-Turbo, GPT-4, Gemini Pro aka Bard och Command [Cohere]) angående programmeringsutmaningar i fem olika programmeringsspråk/körtider (Python, Node.js, Go, .Net och Ruby), som var och en har sitt eget förpackningssystem.

Det visar sig att en del av namnen som dessa chatbots drar ur tomma intet är beständiga, vissa på olika modeller. Och uthållighet – upprepningen av det falska namnet – är nyckeln till att förvandla AI-infall till en funktionell attack. Angriparen behöver AI-modellen för att upprepa namnen på hallucinerade paket i sina svar till användare för skadlig programvara skapad under dessa namn som ska sökas och laddas ner.

Lanyado valde slumpmässigt 20 frågor för noll-shot hallucinationer och ställde dem 100 gånger för varje modell. Hans mål var att bedöma hur ofta det hallucinerade paketnamnet förblev detsamma. Resultaten av hans test avslöjar att namn är beständiga tillräckligt ofta för att detta ska vara en funktionell attackvektor, men inte hela tiden, och i vissa förpackningsekosystem mer än andra.

Med GPT-4 producerade 24.2 procent av frågesvaren hallucinerade paket, varav 19.6 procent var repetitiva, enligt Lanyado. Ett bord tillhandahålls till Registret, nedan, visar en mer detaljerad uppdelning av GPT-4-svar.

  Python Node.js Rubin . NET Go
Totala frågor 21340 13065 4544 5141 3713
Frågor med minst ett hallucinationspaket 5347 (25%) 2524 (19.3%) 1072 (23.5%) 1476 (28.7%) 1093 exploateringsbara (21.2%) 1150 (30.9%) 109 exploateringsbara (2.9%)
Hallucinationer i noll skott 1042 (4.8%) 200 (1.5%) 169 (3.7%) 211 (4.1%) 130 exploateringsbara (2.5%) 225 (6%) 14 exploateringsbara (0.3%)
Hallucinationer i andra skottet 4532 (21%) 2390 (18.3%) 960 (21.1%) 1334 (25.9%) 1006 exploateringsbara (19.5%) 974 (26.2%) 98 exploateringsbara (2.6%)
Upprepning i noll skott 34.4% 24.8% 5.2% 14% -

Med GPT-3.5 framkallade 22.2 procent av svaren på frågor hallucinationer, med 13.6 procents upprepning. För Tvillingarna gav 64.5 av frågorna påhittade namn, varav cirka 14 procent upprepades. Och för Cohere var det 29.1 procent hallucination, 24.2 procent upprepning.

Trots det har paketeringsekosystemen i Go och .Net byggts på sätt som begränsar potentialen för exploatering genom att neka angripare tillgång till vissa sökvägar och namn.

"I Go och .Net fick vi hallucinerade paket men många av dem kunde inte användas för attack (i Go var siffrorna mycket mer betydande än i .Net), varje språk av sin egen anledning," förklarade Lanyado till Registret. "I Python och npm är det inte fallet, eftersom modellen rekommenderar oss med paket som inte finns och ingenting hindrar oss från att ladda upp paket med dessa namn, så definitivt är det mycket lättare att köra den här typen av attack på språk som t.ex. Python och Node.js.”

Sådd PoC malware

Lanyado gjorde det genom att distribuera proof-of-concept skadlig programvara – en ofarlig uppsättning filer i Python-ekosystemet. Baserat på ChatGPT:s råd att köra pip install huggingface-cli, laddade han upp ett tomt paket med samma namn till PyPI – det som nämns ovan – och skapade ett dummypaket med namnet blabladsa123 för att separera paketregisterskanning från faktiska nedladdningsförsök.

Resultatet, hävdar han, är det huggingface-cli fått mer än 15,000 XNUMX autentiska nedladdningar under de tre månader som den har varit tillgänglig.

"Dessutom genomförde vi en sökning på GitHub för att avgöra om detta paket användes inom andra företags förråd," sa Lanyado i uppskrivningen för sitt experiment.

"Våra resultat visade att flera stora företag antingen använder eller rekommenderar det här paketet i sina arkiv. Instruktioner för att installera det här paketet kan till exempel hittas i README i ett arkiv dedikerat till forskning utförd av Alibaba.”

Alibaba svarade inte på en begäran om kommentarer.

Lanyado sa också att det fanns ett Hugging Face-ägt projekt som inkorporerade den falska huggingface-cli, men att togs bort efter att han larmade biz.

Åtminstone hittills har den här tekniken inte använts i en faktisk attack som Lanyado känner till.

"Förutom vårt hallucinerade paket (vårt paket är inte skadligt, det är bara ett exempel på hur enkelt och farligt det kan vara att utnyttja den här tekniken), har jag ännu inte identifierat ett utnyttjande av denna attackteknik av illvilliga aktörer", sa han. "Det är viktigt att notera att det är komplicerat att identifiera en sådan attack, eftersom den inte lämnar många fotspår." ®

plats_img

Senaste intelligens

plats_img

Chatta med oss

Hallå där! Hur kan jag hjälpa dig?