Platonova podatkovna inteligenca.
Navpično iskanje in Ai.

AI roboti halucinirajo programske pakete in razvijalci jih prenašajo

Datum:

Poglobljeno Več velikih podjetij je objavilo izvorno kodo, ki vključuje programski paket, ki ga je prej haluciniral generativni AI.

Ne samo to, ampak nekdo, ki ima to opazil ponavljajoča se halucinacija, je to izmišljeno odvisnost spremenila v resnično, ki so jo razvijalci nato tisočkrat prenesli in namestili zaradi slabih nasvetov AI, smo izvedeli. Če bi bil paket prepleten z dejansko zlonamerno programsko opremo, namesto da bi bil benigni test, bi bili rezultati lahko katastrofalni.

Po besedah ​​Bara Lanyada, varnostnega raziskovalca pri Lasso Security, je eno od podjetij, ki ga je umetna inteligenca preslepila, da je vključilo paket, Alibaba, ki v času pisanja še vedno vključuje pip ukaz za prenos paketa Python huggingface-cli v svojem GraphTranslator navodila za namestitev.

Obstaja zakonitost huggingface-cli, nameščen z uporabo pip install -U "huggingface_hub[cli]".

Vendar huggingface-cli distribuira prek Python Package Index (PyPI) in ga zahteva Alibabin GraphTranslator – nameščen z pip install huggingface-cli – je ponaredek, ki si ga je zamislila umetna inteligenca, Lanyado pa ga je kot eksperiment spremenil v resničnost.

On je ustvaril huggingface-cli decembra, potem ko so ga večkrat halucinirali zaradi generativne umetne inteligence; do februarja letos se je Alibaba skliceval nanj v navodilih README za GraphTranslator in ne na pravo orodje CLI Hugging Face.

študija

Lanyado je to storil, da bi raziskal, ali te vrste haluciniranih programskih paketov – imena paketov, ki so jih izumili generativni modeli umetne inteligence, verjetno med razvojem projekta – trajajo skozi čas, in da bi preizkusil, ali bi lahko izmišljena imena paketov prevzeli in uporabili za distribucijo zlonamerne kode s pisanjem dejanskih paketi, ki uporabljajo imena kod, ki so jih izmislili AI.

Ideja tukaj je, da bi lahko nekdo nečeden vprašal modele za nasvet kode, zabeležil namišljene pakete, ki jih sistemi AI vedno priporočajo, in nato implementiral te odvisnosti, tako da bi drugi programerji, ko uporabljajo iste modele in prejemajo iste predloge, na koncu uporabili tiste knjižnice, ki so lahko zastrupljene z zlonamerno programsko opremo.

Lani prek varnostnega podjetja Vulcan Cyber, Lanyado objavljeno raziskava, ki podrobno opisuje, kako bi lahko postavili vprašanje kodiranja modelu AI, kot je ChatGPT, in prejeli odgovor, ki priporoča uporabo programske knjižnice, paketa ali ogrodja, ki ne obstaja.

"Ko napadalec izvaja takšno kampanjo, bo model vprašal za pakete, ki rešujejo problem kodiranja, nato pa bo prejel nekaj paketov, ki ne obstajajo," je pojasnil Lanyado za Register. "Zlonamerne pakete z enakimi imeni bo naložil v ustrezne registre in od te točke naprej mora le počakati, da ljudje prenesejo pakete."

Nevarne domneve

Pripravljenost modelov AI za samozavestno navajajo neobstoječe sodne primere je zdaj dobro znano in je povzročilo nemalo zadrege med odvetniki, ki niso vedeli za to težnjo. In kot kaže, bodo generativni modeli AI naredili enako za programske pakete.

Kot je že omenil Lanyado, lahko nepridiprav uporabi ime, ki ga je izumila umetna inteligenca, za zlonamerni paket, naložen v neko skladišče, v upanju, da bi drugi lahko prenesli zlonamerno programsko opremo. Toda da bi bil to smiseln vektor napada, bi morali modeli AI vedno znova priporočati izbrano ime.

To je Lanyado nameraval preizkusiti. Oborožen s tisoči vprašanj "kako" je povprašal štiri modele AI (GPT-3.5-Turbo, GPT-4, Gemini Pro aka Bard in Command [Cohere]) glede programskih izzivov v petih različnih programskih jezikih/izvajalnih okoljih (Python, Node.js, Go, .Net in Ruby), od katerih ima vsak svoj sistem pakiranja.

Izkazalo se je, da je del imen, ki jih ti chatboti izvlečejo iz zraka, obstojen, nekatera v različnih modelih. In vztrajnost – ponavljanje lažnega imena – je ključ do spreminjanja muhavosti AI v funkcionalen napad. Napadalec potrebuje model umetne inteligence, da ponovi imena haluciniranih paketov v svojih odzivih uporabnikom za iskanje in prenos zlonamerne programske opreme, ustvarjene pod temi imeni.

Lanyado je naključno izbral 20 vprašanj za ničelne halucinacije in jih vsakemu modelu postavil 100-krat. Njegov cilj je bil oceniti, kako pogosto halucinirano ime paketa ostaja enako. Rezultati njegovega testa razkrivajo, da so imena dovolj pogosto obstojna, da je to funkcionalen vektor napada, čeprav ne ves čas, in v nekaterih ekosistemih pakiranja bolj kot v drugih.

Pri GPT-4 je 24.2 odstotka odgovorov na vprašanja proizvedlo halucinirane pakete, od tega 19.6 odstotka ponavljajočih se, pravi Lanyado. Tabela za Registerspodaj prikazuje podrobnejšo razčlenitev odgovorov GPT-4.

  Python Vozlišče.JS Ruby NET. Go
Skupaj vprašanj 21340 13065 4544 5141 3713
Vprašanja z vsaj enim halucinacijskim paketom 5347 (25%) 2524 (19.3%) 1072 (23.5%) 1476 (28.7 %) 1093 izkoriščenih (21.2 %) 1150 (30.9 %) 109 izkoriščenih (2.9 %)
Halucinacije v ničelnem strelu 1042 (4.8%) 200 (1.5%) 169 (3.7%) 211 (4.1 %) 130 izkoriščenih (2.5 %) 225 (6 %) 14 izkoriščenih (0.3 %)
Halucinacije v drugem kadru 4532 (21%) 2390 (18.3%) 960 (21.1%) 1334 (25.9 %) 1006 izkoriščenih (19.5 %) 974 (26.2 %) 98 izkoriščenih (2.6 %)
Repetitivnost v ničelnem strelu 34.4% 24.8% 5.2% 14% -

Pri GPT-3.5 je 22.2 odstotka odgovorov na vprašanje izzvalo halucinacije, s 13.6 odstotka ponavljajočih se odgovorov. Pri dvojčkih je 64.5 vprašanj prineslo izmišljena imena, od tega se jih je približno 14 odstotkov ponavljalo. In za Cohere je bilo 29.1 odstotka halucinacije, 24.2 odstotka ponavljanja.

Kljub temu so bili ekosistemi pakiranja v Go in .Net zgrajeni na načine, ki omejujejo možnost izkoriščanja, tako da napadalcem onemogočijo dostop do določenih poti in imen.

»V Go in .Net smo prejeli halucinirane pakete, vendar jih veliko ni bilo mogoče uporabiti za napad (v Go so bile številke veliko večje kot v .Net), vsak jezik iz svojega razloga,« je pojasnil Lanyado za Register. »V Pythonu in npm temu ni tako, saj nam model priporoča pakete, ki ne obstajajo, in nič nam ne preprečuje, da bi naložili pakete s temi imeni, zato je vsekakor veliko lažje izvajati tovrstne napade na jezike, kot so Python in Node.js."

Sejanje zlonamerne programske opreme PoC

Lanyado je to poudaril z distribucijo zlonamerne programske opreme, ki temelji na dokazovanju koncepta – neškodljivega nabora datotek v ekosistemu Python. Na podlagi nasveta ChatGPT za zagon pip install huggingface-cli, je v PyPI naložil prazen paket pod istim imenom – zgoraj omenjenega – in ustvaril lažni paket z imenom blabladsa123 za pomoč pri ločevanju skeniranja registra paketov od dejanskih poskusov prenosa.

Rezultat, trdi, je tak huggingface-cli prejel več kot 15,000 pristnih prenosov v treh mesecih, kolikor je na voljo.

"Poleg tega smo izvedli iskanje na GitHubu, da bi ugotovili, ali je bil ta paket uporabljen v repozitorijih drugih podjetij," je dejal Lanyado v zapis za njegov eksperiment.

»Naše ugotovitve so pokazale, da več velikih podjetij bodisi uporablja ali priporoča ta paket v svojih repozitorijih. Navodila za namestitev tega paketa lahko na primer najdete v README repozitorija, namenjenega raziskavam, ki jih izvaja Alibaba.«

Alibaba se ni odzval na prošnjo za komentar.

Lanyado je tudi povedal, da obstaja projekt v lasti Hugging Face, ki vključuje lažni huggingface-cli, vendar je bila odstranjena potem ko je opozoril biz.

Vsaj do zdaj ta tehnika ni bila uporabljena v dejanskem napadu, kar ve Lanyado.

"Poleg našega haluciniranega paketa (naš paket ni zlonameren, je samo primer, kako enostavno in nevarno bi bilo lahko uporabiti to tehniko), moram še identificirati izkoriščanje te napadalne tehnike s strani zlonamernih akterjev," je dejal. "Pomembno je omeniti, da je zapleteno prepoznati takšen napad, saj ne pušča veliko sledi." ®

spot_img

Najnovejša inteligenca

spot_img

Klepetajte z nami

Zdravo! Kako vam lahko pomagam?