Generativ dataintelligens

AI-bots hallucinerer softwarepakker og udviklere downloader dem

Dato:

Dybtgående Flere store virksomheder har udgivet kildekode, der inkorporerer en softwarepakke, der tidligere var hallucineret af generativ AI.

Ikke nok med det, men nogen, der havde set denne tilbagevendende hallucination, havde forvandlet den opdigtede afhængighed til en ægte, som efterfølgende blev downloadet og installeret tusindvis af gange af udviklere som et resultat af AI'ens dårlige råd, har vi erfaret. Hvis pakken var fyldt med faktisk malware, snarere end at være en godartet test, kunne resultaterne have været katastrofale.

Ifølge Bar Lanyado, sikkerhedsforsker hos Lasso Security, er en af ​​de virksomheder, der narres af AI til at inkorporere pakken, Alibaba, som i skrivende stund stadig indeholder en pip kommando for at downloade Python-pakken huggingface-cli i sin GraphTranslator Installations instruktioner.

Der er en legit huggingface-cli, installeret vha pip install -U "huggingface_hub[cli]".

Men huggingface-cli distribueres via Python Package Index (PyPI) og kræves af Alibabas GraphTranslator – installeret vha. pip install huggingface-cli – er falsk, forestillet af AI og blevet virkelig af Lanyado som et eksperiment.

Han lavede huggingface-cli i december efter at have set det gentagne gange hallucineret af generativ AI; i februar i år henviste Alibaba til det i GraphTranslators README-instruktioner i stedet for det rigtige Hugging Face CLI-værktøj.

Studere

Lanyado gjorde det for at undersøge, om disse slags hallucinerede softwarepakker - pakkenavne opfundet af generative AI-modeller, formentlig under projektudvikling - fortsætter over tid og for at teste, om opfundne pakkenavne kunne co-opteres og bruges til at distribuere ondsindet kode ved at skrive faktisk pakker, der bruger navnene på kode, der er opfundet af AI'er.

Ideen her er, at en ondsindet kunne bede modeller om koderåd, notere forestillede pakker, AI-systemer anbefaler gentagne gange og derefter implementere disse afhængigheder, så andre programmører, når de bruger de samme modeller og får de samme forslag, ender med at trække ind. disse biblioteker, som kan være forgiftet med malware.

Sidste år gennem sikkerhedsfirmaet Vulcan Cyber, Lanyado offentliggjort forskning, der beskriver, hvordan man kan stille et kodningsspørgsmål til en AI-model som ChatGPT og modtage et svar, der anbefaler brugen af ​​et softwarebibliotek, en pakke eller et framework, der ikke eksisterer.

"Når en angriber kører sådan en kampagne, vil han bede modellen om pakker, der løser et kodningsproblem, så vil han modtage nogle pakker, der ikke eksisterer," forklarede Lanyado til Registret. "Han vil uploade ondsindede pakker med de samme navne til de relevante registre, og fra det tidspunkt skal han kun vente på, at folk downloader pakkerne."

Farlige antagelser

AI-modellers vilje til at tillid citere ikke-eksisterende retssager er nu velkendt og har forårsaget ikke ringe mængder forlegenhed blandt advokater, der ikke er klar over denne tendens. Og som det viser sig, vil generative AI-modeller gøre det samme for softwarepakker.

Som Lanyado har bemærket tidligere, kan en ondsindet bruge et AI-opfundet navn til en ondsindet pakke, der er uploadet til et eller andet lager i håb om, at andre kan downloade malwaren. Men for at dette skal være en meningsfuld angrebsvektor, skal AI-modeller gentagne gange anbefale det tilvalgte navn.

Det var, hvad Lanyado satte sig for at teste. Bevæbnet med tusindvis af "hvordan"-spørgsmål spurgte han fire AI-modeller (GPT-3.5-Turbo, GPT-4, Gemini Pro aka Bard og Coral [Cohere]) angående programmeringsudfordringer i fem forskellige programmeringssprog/runtimes (Python, Node.js, Go, .Net og Ruby), som hver har sit eget pakkesystem.

Det viser sig, at en del af de navne, som disse chatbots trækker ud af den blå luft, er vedvarende, nogle på tværs af forskellige modeller. Og vedholdenhed – gentagelsen af ​​det falske navn – er nøglen til at gøre AI-indfald til et funktionelt angreb. Angriberen har brug for AI-modellen til at gentage navnene på hallucinerede pakker i sine svar til brugere for malware oprettet under disse navne, der skal søges og downloades.

Lanyado valgte 20 spørgsmål tilfældigt til nul-shot hallucinationer og stillede dem 100 gange til hver model. Hans mål var at vurdere, hvor ofte det hallucinerede pakkenavn forblev det samme. Resultaterne af hans test afslører, at navne er vedvarende nok til, at dette er en funktionel angrebsvektor, dog ikke hele tiden, og i nogle emballageøkosystemer mere end andre.

Med GPT-4 producerede 24.2 procent af spørgsmålssvarene hallucinerede pakker, hvoraf 19.6 procent var gentagne, ifølge Lanyado. Et bord stillet til rådighed Registret, nedenfor, viser en mere detaljeret opdeling af GPT-4-svar.

  Python node.js Rubin . NET Go
Samlet spørgsmål 21340 13065 4544 5141 3713
Spørgsmål med mindst én hallucinationspakke 5347 (25%) 2524 (19.3%) 1072 (23.5%) 1476 (28.7%) 1093 udnyttelige (21.2%) 1150 (30.9%) 109 udnyttelige (2.9%)
Hallucinationer i nul skud 1042 (4.8%) 200 (1.5%) 169 (3.7%) 211 (4.1%) 130 udnyttelige (2.5%) 225 (6%) 14 udnyttelige (0.3%)
Hallucinationer i andet skud 4532 (21%) 2390 (18.3%) 960 (21.1%) 1334 (25.9%) 1006 udnyttelige (19.5%) 974 (26.2%) 98 udnyttelige (2.6%)
Gentagelse i nul skud 34.4 % 24.8 % 5.2 % 14 % -

Med GPT-3.5 fremkaldte 22.2 procent af spørgsmålssvarene hallucinationer, med 13.6 procent gentagelse. For Gemini bragte 64.5 af spørgsmålene opfundne navne, hvoraf omkring 14 procent gentog sig. Og for Cohere var det 29.1 procent hallucination, 24.2 procent gentagelse.

Alligevel er pakkeøkosystemerne i Go og .Net bygget på måder, der begrænser potentialet for udnyttelse ved at nægte angribere adgang til bestemte stier og navne.

"I Go og .Net modtog vi hallucinerede pakker, men mange af dem kunne ikke bruges til angreb (i Go var tallene meget vigtigere end i .Net), hvert sprog af sin egen grund," forklarede Lanyado til Registret. "I Python og npm er det ikke tilfældet, da modellen anbefaler os med pakker, der ikke eksisterer, og intet forhindrer os i at uploade pakker med disse navne, så det er bestemt meget nemmere at køre denne form for angreb på sprog som f.eks. Python og Node.js."

Såning af PoC malware

Lanyado gjorde dette ved at distribuere proof-of-concept malware – et harmløst sæt filer i Python-økosystemet. Baseret på ChatGPTs råd om at køre pip install huggingface-cli, uploadede han en tom pakke under samme navn til PyPI – den nævnte ovenfor – og oprettede en dummy-pakke med navnet blabladsa123 for at hjælpe med at adskille scanning af pakkeregistrering fra faktiske downloadforsøg.

Resultatet, hævder han, er det huggingface-cli modtaget mere end 15,000 autentiske downloads i de tre måneder, det har været tilgængeligt.

"Derudover gennemførte vi en søgning på GitHub for at afgøre, om denne pakke blev brugt i andre virksomheders lagre," sagde Lanyado i opskriften for sit eksperiment.

"Vores resultater afslørede, at flere store virksomheder enten bruger eller anbefaler denne pakke i deres depoter. For eksempel kan instruktioner til installation af denne pakke findes i README i et lager dedikeret til forskning udført af Alibaba."

Alibaba reagerede ikke på en anmodning om kommentar.

Lanyado sagde også, at der var et Hugging Face-ejet projekt, der inkorporerede den falske huggingface-cli, men at blev fjernet efter han advarede biz.

Indtil videre er denne teknik i hvert fald ikke blevet brugt i et egentligt angreb, som Lanyado er opmærksom på.

"Udover vores hallucinerede pakke (vores pakke er ikke ondsindet, det er bare et eksempel på, hvor nemt og farligt det kunne være at udnytte denne teknik), har jeg endnu ikke identificeret en udnyttelse af denne angrebsteknik af ondsindede aktører," sagde han. "Det er vigtigt at bemærke, at det er kompliceret at identificere et sådant angreb, da det ikke efterlader mange fodspor." ®

spot_img

Seneste efterretninger

spot_img

Chat med os

Hej! Hvordan kan jeg hjælpe dig?