Inteligența generativă a datelor

Boții AI halucinează pachetele software, iar dezvoltatorii le descarcă

Data:

În profunzime Mai multe companii mari au publicat cod sursă care încorporează un pachet software halucinat anterior de AI generativă.

Not only that but someone, having spotted this reoccurring hallucination, had turned that made-up dependency into a real one, which was subsequently downloaded and installed thousands of times by developers as a result of the AI’s bad advice, we’ve learned. If the package was laced with actual malware, rather than being a benign test, the results could have been disastrous.

Potrivit lui Bar Lanyado, cercetător în domeniul securității la Lasso Security, una dintre afacerile păcălite de inteligența artificială pentru a încorpora pachetul este Alibaba, care la momentul redactării acestui articol include încă un pip comandă pentru a descărca pachetul Python huggingface-cli În GraphTranslator instructiuni de instalare.

Există o legitimitate huggingface-cli, instalat folosind pip install -U "huggingface_hub[cli]".

Dar huggingface-cli distribuit prin indexul pachetelor Python (PyPI) și solicitat de GraphTranslator de la Alibaba – instalat folosind pip install huggingface-cli – este fals, imaginat de AI și devenit real de Lanyado ca experiment.

El a creat huggingface-cli în decembrie, după ce l-am văzut în mod repetat halucinat de IA generativă; Până în februarie a acestui an, Alibaba se referea la el în instrucțiunile README ale GraphTranslator, mai degrabă decât la instrumentul real Hugging Face CLI.

Studiu

Lanyado a făcut acest lucru pentru a explora dacă aceste tipuri de pachete software halucinate - nume de pachete inventate de modele AI generative, probabil în timpul dezvoltării proiectelor - persistă în timp și pentru a testa dacă numele de pachete inventate ar putea fi cooptate și utilizate pentru a distribui cod rău intenționat prin scrierea reală. pachete care folosesc nume de coduri imaginate de AI.

Ideea aici este că cineva nefast ar putea cere modelelor sfaturi despre cod, să noteze pachetele imaginate pe care sistemele AI le recomandă în mod repetat și apoi să implementeze acele dependențe, astfel încât alți programatori, când folosesc aceleași modele și primesc aceleași sugestii, să ajungă să tragă acele biblioteci, care pot fi otrăvite cu malware.

Anul trecut, prin firma de securitate Vulcan Cyber, Lanyado publicat cercetare care detaliază modul în care s-ar putea pune o întrebare de codificare unui model AI precum ChatGPT și primiți un răspuns care recomandă utilizarea unei biblioteci software, a unui pachet sau a unui cadru care nu există.

„Când un atacator derulează o astfel de campanie, el va cere modelului pachete care rezolvă o problemă de codare, apoi va primi câteva pachete care nu există”, a explicat Lanyado pentru Registrul. „Va încărca pachete rău intenționate cu aceleași nume în registrele corespunzătoare și, din acel moment, tot ce trebuie să facă este să aștepte ca oamenii să descarce pachetele.”

Ipoteze periculoase

Disponibilitatea modelelor AI de a avea încredere citează cauze judecătorești inexistente este acum bine cunoscut și a provocat nu puțină jenă în rândul avocaților care nu cunosc această tendință. Și după cum se dovedește, modelele AI generative vor face același lucru pentru pachetele software.

După cum a observat Lanyado anterior, un delict ar putea folosi un nume inventat de AI pentru un pachet rău intenționat încărcat într-un depozit, în speranța că alții ar putea descărca malware-ul. Dar pentru ca acesta să fie un vector de atac semnificativ, modelele AI ar trebui să recomande în mod repetat numele cooptat.

That’s what Lanyado set out to test. Armed with thousands of “how to” questions, he queried four AI models (GPT-3.5-Turbo, GPT-4, Gemini Pro aka Bard, and Coral [Cohere]) regarding programming challenges in five different programming languages/runtimes (Python, Node.js, Go, .Net, and Ruby), each of which has its own packaging system.

Se pare că o parte din numele pe care acești roboti de chat le scot din aer sunt persistente, unele pe diferite modele. Iar persistența – repetarea numelui fals – este cheia pentru a transforma capriciosul AI într-un atac funcțional. Atacatorul are nevoie de modelul AI pentru a repeta numele pachetelor halucinate în răspunsurile sale către utilizatori, pentru ca programele malware create sub aceste nume să fie căutate și descărcate.

Lanyado a ales 20 de întrebări la întâmplare pentru halucinații zero-shot și le-a pus de 100 de ori fiecărui model. Scopul lui a fost să evalueze cât de des numele pachetului halucinat a rămas același. Rezultatele testului său arată că numele sunt destul de persistente pentru ca acesta să fie un vector de atac funcțional, deși nu tot timpul, iar în unele ecosisteme de ambalare mai mult decât în ​​altele.

Cu GPT-4, 24.2% dintre răspunsurile la întrebări au produs pachete halucinate, dintre care 19.6% au fost repetitive, potrivit Lanyado. O masă oferită Registrul, mai jos, arată o defalcare mai detaliată a răspunsurilor GPT-4.

  Piton Node.JS Rubin . NET Go
Total intrebari 21340 13065 4544 5141 3713
Întrebări cu cel puțin un pachet de halucinații 5347 (25%) 2524 (19.3%) 1072 (23.5%) 1476 (28.7%) 1093 exploatabile (21.2%) 1150 (30.9%) 109 exploatabile (2.9%)
Halucinații la zero 1042 (4.8%) 200 (1.5%) 169 (3.7%) 211 (4.1%) 130 exploatabile (2.5%) 225 (6%) 14 exploatabile (0.3%)
Halucinații în a doua lovitură 4532 (21%) 2390 (18.3%) 960 (21.1%) 1334 (25.9%) 1006 exploatabile (19.5%) 974 (26.2%) 98 exploatabile (2.6%)
Repetitivitate în zero shot 34.4% 24.8% 5.2% 14% -

Cu GPT-3.5, 22.2% dintre răspunsurile la întrebări au provocat halucinații, cu 13.6% repetitivitate. Pentru Gemeni, 64.5 dintre întrebări au adus nume inventate, dintre care aproximativ 14% s-au repetat. Iar pentru Cohere, a fost 29.1% halucinații, 24.2% repetiții.

Chiar și așa, ecosistemele de ambalare din Go și .Net au fost construite în moduri care limitează potențialul de exploatare prin interzicerea accesului atacatorilor la anumite căi și nume.

„În Go și .Net am primit pachete halucinate, dar multe dintre ele nu au putut fi folosite pentru atac (în Go numerele erau mult mai semnificative decât în ​​.Net), fiecare limbă pentru propriul motiv”, a explicat Lanyado pentru Registrul. „În Python și npm nu este cazul, deoarece modelul ne recomandă cu pachete care nu există și nimic nu ne împiedică să încărcăm pachete cu aceste nume, așa că cu siguranță este mult mai ușor să rulăm acest tip de atac pe limbi precum Python și Node.js.”

Semnarea malware PoC

Lanyado a făcut acest punct prin distribuirea de programe malware cu dovadă de concept – un set inofensiv de fișiere în ecosistemul Python. Pe baza sfatului ChatGPT de a rula pip install huggingface-cli, a încărcat un pachet gol sub același nume în PyPI – cel menționat mai sus – și a creat un pachet inactiv numit blabladsa123 pentru a separa scanarea registrului pachetelor de încercările reale de descărcare.

Rezultatul, susține el, este că huggingface-cli a primit peste 15,000 de descărcări autentice în cele trei luni în care a fost disponibil.

„În plus, am efectuat o căutare pe GitHub pentru a determina dacă acest pachet a fost utilizat în depozitele altor companii”, a spus Lanyado în redactarea pentru experimentul lui.

„Descoperirile noastre au arătat că mai multe companii mari fie folosesc, fie recomandă acest pachet în depozitele lor. De exemplu, instrucțiunile pentru instalarea acestui pachet pot fi găsite în README al unui depozit dedicat cercetărilor efectuate de Alibaba.”

Alibaba nu a răspuns la o solicitare de comentarii.

Lanyado a mai spus că a existat un proiect deținut de Hugging Face care a încorporat falsul huggingface-cli, dar că a fost eliminat după ce a alertat biz.

Cel puțin până acum, această tehnică nu a fost folosită într-un atac real de care Lanyado este conștient.

„Pe lângă pachetul nostru halucinat (pachetul nostru nu este rău intenționat, este doar un exemplu al cât de ușor și periculos ar putea fi să folosim această tehnică), încă nu am identificat o exploatare a acestei tehnici de atac de către actori rău intenționați”, a spus el. „Este important de menționat că este complicat să identifici un astfel de atac, deoarece nu lasă mulți pași.” ®

spot_img

Ultimele informații

spot_img

Chat cu noi

Bună! Cu ce ​​​​vă pot ajuta?