Generatiivne andmeluure

AI-robotid hallutsineerivad tarkvarapakette ja arendajad laadivad need alla

kuupäev:

Põhjalik Mitmed suurettevõtted on avaldanud lähtekoodi, mis sisaldab tarkvarapaketti, mida varem hallutsineeris generatiivne AI.

Saime teada, et mitte ainult see, vaid keegi, olles seda korduvat hallutsinatsiooni märganud, muutis selle väljamõeldud sõltuvuse tõeliseks, mille hiljem AI halbade nõuannete tulemusel arendajad tuhandeid kordi alla laadisid ja installisid. Kui pakett oleks täis pahavara, mitte ei oleks olnud healoomuline test, oleksid tulemused võinud olla hukatuslikud.

Lasso Security turvateadlase Bar Lanyado sõnul on üks äridest, mida tehisintellekt paketi kaasamisel pettis, on Alibaba, mis selle artikli kirjutamise ajal sisaldab endiselt pip käsk Pythoni paketi allalaadimiseks huggingface-cli oma Graafiline tõlkija paigaldusjuhised.

Seal on legitiimne kallistav nägu-kli, paigaldatud kasutades pip install -U "huggingface_hub[cli]".

Kuid huggingface-cli levitatakse Pythoni paketiindeksi (PyPI) kaudu ja seda nõuab Alibaba GraphTranslator – installitud kasutades pip install huggingface-cli – on võlts, AI poolt väljamõeldud ja Lanyado poolt eksperimendi korras reaalseks muudetud.

Ta lõi huggingface-cli detsembris pärast seda, kui nägin seda generatiivse AI poolt korduvalt hallutsineerituna; selle aasta veebruariks viitas Alibaba sellele pigem GraphTranslatori README juhistes kui tõelisele Hugging Face CLI tööriistale.

Uuring

Lanyado tegi seda selleks, et uurida, kas seda tüüpi hallutsineeritud tarkvarapaketid – paketinimed, mille leiutasid generatiivsed AI mudelid, arvatavasti projekti arendamise käigus – säilivad aja jooksul ja testida, kas väljamõeldud pakettide nimesid saab kasutada koos pahatahtliku koodi levitamiseks, kirjutades tegelikku. paketid, mis kasutavad AI-de väljamõeldud koodinimesid.

Idee seisneb selles, et keegi alatu võiks küsida mudelitelt koodinõuandeid, panna kirja väljamõeldud paketid, mida AI-süsteemid korduvalt soovitavad, ja seejärel need sõltuvused juurutada nii, et teised programmeerijad samu mudeleid kasutades ja samu soovitusi saades kaasa lööksid. need raamatukogud, mis võivad olla pahavaraga mürgitatud.

Eelmisel aastal läbi turvafirma Vulcan Cyber, Lanyado avaldatud uurige üksikasjalikult, kuidas saab esitada kodeerimisküsimuse AI-mudelile (nt ChatGPT) ja saada vastus, mis soovitab kasutada tarkvarateeki, paketti või raamistikku, mida pole olemas.

"Kui ründaja sellist kampaaniat korraldab, küsib ta mudelilt pakette, mis lahendavad kodeerimisprobleemi, seejärel saab ta mõned paketid, mida pole olemas," selgitas Lanyado. Register. "Ta laadib samanimelised pahatahtlikud paketid üles vastavatesse registritesse ja sellest hetkest alates jääb tal vaid oodata, kuni inimesed paketid alla laadivad."

Ohtlikud oletused

AI mudelite valmisolek enesekindlalt tsiteerida olematuid kohtuasju on nüüdseks hästi tuntud ja on tekitanud suurt piinlikkust advokaatide seas, kes sellest tendentsist teadlikud ei ole. Ja nagu selgub, teevad generatiivsed AI mudelid sama tarkvarapakettide puhul.

Nagu Lanyado varem märkis, võib kurjategija mõnda hoidlasse üles laaditud pahatahtliku paketi jaoks kasutada tehisintellekti väljamõeldud nime lootuses, et teised võivad pahavara alla laadida. Kuid selleks, et see oleks tähendusrikas ründevektor, peaksid AI mudelid korduvalt soovitama valitud nime.

Seda otsustas Lanyado testida. Tuhandete “kuidas teha” küsimustega relvastatud küsimustega küsis ta neljalt AI mudelilt (GPT-3.5-Turbo, GPT-4, Gemini Pro ehk Bard ja Coral [Cohere]) programmeerimise väljakutsete kohta viies erinevas programmeerimiskeeles/käitusajas (Python, Node.js, Go, .Net ja Ruby), millest igaühel on oma pakkimissüsteem.

Selgub, et osa nimedest, mille need vestlusrobotid õhust välja tõmbavad, on püsivad, mõned erinevates mudelites. Ja püsivus – võltsnime kordamine – on võti tehisintellekti kapriiside muutmisel funktsionaalseks rünnakuks. Ründaja vajab, et AI mudel kordaks hallutsineeritud pakettide nimesid oma vastustes kasutajatele nende nimede all loodud pahavara otsimiseks ja allalaadimiseks.

Lanyado valis nullhallutsinatsioonide jaoks juhuslikult 20 küsimust ja esitas need igale modellile 100 korda. Tema eesmärk oli hinnata, kui sageli jäi hallutsineeritud pakinimi samaks. Tema testi tulemused näitavad, et nimed on sageli piisavalt püsivad, et olla funktsionaalne ründevektor, kuigi mitte kogu aeg, ja mõnes pakendavas ökosüsteemis rohkem kui teistes.

Lanyado sõnul tekitas GPT-4 puhul 24.2 protsenti küsimuste vastustest hallutsineeritud pakette, millest 19.6 protsenti kordusid. Pakutud laud Registerallpool on GPT-4 vastuste üksikasjalikum jaotus.

  Python Sõlm.JS rubiin . NET Go
Küsimusi kokku 21340 13065 4544 5141 3713
Küsimused vähemalt ühe hallutsinatsioonipaketiga 5347 (25%) 2524 (19.3%) 1072 (23.5%) 1476 (28.7%) 1093 ekspluateeritav (21.2%) 1150 (30.9%) 109 ekspluateeritav (2.9%)
Hallutsinatsioonid nullkaadris 1042 (4.8%) 200 (1.5%) 169 (3.7%) 211 (4.1%) 130 ekspluateeritav (2.5%) 225 (6%) 14 ekspluateeritav (0.3%)
Hallutsinatsioonid teisel lasul 4532 (21%) 2390 (18.3%) 960 (21.1%) 1334 (25.9%) 1006 ekspluateeritav (19.5%) 974 (26.2%) 98 ekspluateeritav (2.6%)
Kordus nullkaadris 34.4% 24.8% 5.2% 14% -

GPT-3.5 puhul kutsus 22.2 protsenti küsimuste vastustest esile hallutsinatsioone ja 13.6 protsenti kordusi. Kaksikute jaoks tõi väljamõeldud nimesid 64.5 küsimust, millest umbes 14 protsenti kordus. Ja Cohere'i puhul oli see 29.1 protsenti hallutsinatsioonid ja 24.2 protsenti kordused.

Sellegipoolest on Go ja .Neti pakkimisökosüsteemid üles ehitatud viisil, mis piirab ärakasutamise võimalust, keelates ründajatel juurdepääsu teatud teedele ja nimedele.

"Go ja .Neti puhul saime hallutsineeritud pakette, kuid paljusid neist ei saanud rünnakuteks kasutada (Go puhul olid numbrid palju olulisemad kui .Netis), iga keel omal põhjusel," selgitas Lanyado. Register. "Pythonis ja npm-is see nii ei ole, kuna mudel soovitab meile pakette, mida pole olemas ja miski ei takista meid nende nimedega pakette üles laadimast, seega on kindlasti palju lihtsam sellist rünnakut käivitada selliste keelte vastu. Python ja Node.js.

PoC pahavara külvamine

Lanyado tõi selle välja, levitades kontseptsiooni tõestavat pahavara – Pythoni ökosüsteemis kahjutut failikomplekti. Põhineb ChatGPT nõuannetel käivitada pip install huggingface-cli, laadis ta PyPI-sse üles sama nime all tühja paketi – ülalmainitud – ja lõi näiva paketi nimega blabladsa123 et aidata eraldada paketiregistri skannimine tegelikest allalaadimiskatsetest.

Ta väidab, et tulemus on selline huggingface-cli sai kolme kuu jooksul, mil see saadaval on olnud, rohkem kui 15,000 XNUMX autentset allalaadimist.

"Lisaks tegime GitHubis otsingu, et teha kindlaks, kas seda paketti kasutati teiste ettevõtete hoidlates," ütles Lanyado üleskirjutus tema katse jaoks.

"Meie tulemused näitasid, et mitmed suured ettevõtted kas kasutavad või soovitavad seda paketti oma hoidlates. Näiteks selle paketi installimise juhised leiate Alibaba läbiviidud uurimistööle pühendatud hoidla README-st.

Alibaba ei vastanud kommentaaritaotlusele.

Lanyado ütles ka, et oli olemas Hugging Face omanduses olev projekt, mis sisaldas võltsitud huggingface-klindi, kuid see eemaldati pärast seda, kui ta ärile hoiatas.

Vähemalt seni pole seda tehnikat kasutatud tegelikus rünnakus, millest Lanyado on teadlik.

"Lisaks meie hallutsineeritud paketi (meie pakett ei ole pahatahtlik, see on vaid näide sellest, kui lihtne ja ohtlik võib olla selle tehnika kasutamine) ei ole ma veel tuvastanud, kas pahatahtlikud osalejad seda ründetehnikat ära kasutavad," ütles ta. "Oluline on märkida, et sellise rünnaku tuvastamine on keeruline, kuna see ei jäta palju samme." ®

spot_img

Uusim intelligentsus

spot_img

Jututuba koos meiega

Tere! Kuidas ma teid aidata saan?