Plato data-intelligentie.
Verticaal zoeken & Ai.

AI-bots hallucineren softwarepakketten en ontwikkelaars downloaden ze

Datum:

In-depth Verschillende grote bedrijven hebben broncode gepubliceerd die een softwarepakket bevat dat voorheen werd gehallucineerd door generatieve AI.

Niet alleen dat, maar iemand heeft zag dit terugkerende hallucinatie, had die verzonnen afhankelijkheid in een echte afhankelijkheid veranderd, die vervolgens duizenden keren door ontwikkelaars werd gedownload en geïnstalleerd als resultaat van het slechte advies van de AI, zo hebben we geleerd. Als het pakket was doorspekt met echte malware, in plaats van een goedaardige test te zijn, hadden de resultaten rampzalig kunnen zijn.

Volgens Bar Lanyado, beveiligingsonderzoeker bij Lasso Security, is Alibaba een van de bedrijven die door AI voor de gek zijn gehouden om het pakket op te nemen, dat op het moment van schrijven nog steeds een pip commando om het Python-pakket te downloaden huggingface-cli in de GrafiekVertaler Installatie instructies.

Er is een legitieme knuffelgezicht-cli, geïnstalleerd met behulp van pip install -U "huggingface_hub[cli]".

De huggingface-cli gedistribueerd via de Python Package Index (PyPI) en vereist door Alibaba's GraphTranslator – geïnstalleerd met behulp van pip install huggingface-cli – is nep, bedacht door AI en werkelijkheid gemaakt door Lanyado als experiment.

Hij heeft gemaakt huggingface-cli in december nadat hij het herhaaldelijk had zien hallucineren door generatieve AI; in februari van dit jaar verwees Alibaba ernaar in de README-instructies van GraphTranslator in plaats van naar de echte Hugging Face CLI-tool.

Studie

Lanyado deed dit om te onderzoeken of dit soort gehallucineerde softwarepakketten – pakketnamen bedacht door generatieve AI-modellen, vermoedelijk tijdens de projectontwikkeling – in de loop van de tijd blijven bestaan ​​en om te testen of verzonnen pakketnamen kunnen worden gecoöpteerd en gebruikt om kwaadaardige code te verspreiden door daadwerkelijke software te schrijven. pakketten die de namen gebruiken van code die door AI's is bedacht.

Het idee hier is dat iemand die snode modellen om codeadvies zou kunnen vragen, een notitie zou kunnen maken van ingebeelde pakketten die AI-systemen herhaaldelijk aanbevelen, en deze afhankelijkheden vervolgens zou kunnen implementeren, zodat andere programmeurs, wanneer ze dezelfde modellen gebruiken en dezelfde suggesties krijgen, uiteindelijk meedoen. die bibliotheken, die mogelijk vergiftigd zijn met malware.

Vorig jaar via beveiligingsbedrijf Vulcan Cyber, Lanyado gepubliceerde onderzoek waarin gedetailleerd wordt beschreven hoe iemand een codeervraag kan stellen aan een AI-model als ChatGPT en een antwoord kan krijgen dat het gebruik van een softwarebibliotheek, pakket of raamwerk aanbeveelt dat niet bestaat.

"Als een aanvaller zo'n campagne uitvoert, zal hij het model om pakketten vragen die een coderingsprobleem oplossen, en vervolgens zal hij een aantal pakketten ontvangen die niet bestaan", legt Lanyado uit. Het register. “Hij zal kwaadaardige pakketten met dezelfde naam uploaden naar de juiste registers, en vanaf dat moment hoeft hij alleen maar te wachten tot mensen de pakketten downloaden.”

Gevaarlijke aannames

De bereidheid van AI-modellen om zelfverzekerd te zijn noem niet-bestaande rechtszaken is nu algemeen bekend en heeft voor veel schaamte gezorgd onder advocaten die zich niet bewust waren van deze tendens. En het blijkt dat generatieve AI-modellen hetzelfde zullen doen voor softwarepakketten.

Zoals Lanyado eerder opmerkte, kan een onverlaten een door AI bedachte naam gebruiken voor een kwaadaardig pakket dat naar een bepaalde opslagplaats is geüpload, in de hoop dat anderen de malware kunnen downloaden. Maar om dit een betekenisvolle aanvalsvector te laten zijn, zouden AI-modellen herhaaldelijk de gecoöpteerde naam moeten aanbevelen.

Dat is wat Lanyado wilde testen. Gewapend met duizenden 'hoe moet ik'-vragen ondervroeg hij vier AI-modellen (GPT-3.5-Turbo, GPT-4, Gemini Pro, ook bekend als Bard, en Command [Cohere]) over programmeeruitdagingen in vijf verschillende programmeertalen/runtimes (Python, Node.js, Go, .Net en Ruby), die elk hun eigen verpakkingssysteem hebben.

Het blijkt dat een deel van de namen die deze chatbots uit het niets halen, hardnekkig zijn, sommige in verschillende modellen. En doorzettingsvermogen – de herhaling van de valse naam – is de sleutel om de eigenzinnigheid van AI om te zetten in een functionele aanval. De aanvaller heeft het AI-model nodig om de namen van gehallucineerde pakketten te herhalen in zijn reacties op gebruikers, zodat malware die onder die namen is gemaakt, kan worden gezocht en gedownload.

Lanyado koos willekeurig twintig vragen voor zero-shot-hallucinaties en stelde ze honderd keer aan elk model. Zijn doel was om te beoordelen hoe vaak de naam van het gehallucineerde pakket hetzelfde bleef. Uit de resultaten van zijn test blijkt dat namen vaak genoeg persistent zijn om een ​​functionele aanvalsvector te vormen, maar niet altijd, en in sommige verpakkingsecosystemen meer dan andere.

Met GPT-4 leverde 24.2 procent van de vraagantwoorden hallucinerende pakketten op, waarvan 19.6 procent volgens Lanyado repetitief was. Een tafel voorzien Het registerHieronder ziet u een gedetailleerder overzicht van de GPT-4-reacties.

  Python node.js Ruby . NET Go
Totaal aantal vragen 21340 13065 4544 5141 3713
Vragen met minimaal één hallucinatiepakket 5347 (25%) 2524 (19.3%) 1072 (23.5%) 1476 (28.7%) 1093 exploiteerbaar (21.2%) 1150 (30.9%) 109 exploiteerbaar (2.9%)
Hallucinaties in zero shot 1042 (4.8%) 200 (1.5%) 169 (3.7%) 211 (4.1%) 130 exploiteerbaar (2.5%) 225 (6%) 14 exploiteerbaar (0.3%)
Hallucinaties bij tweede opname 4532 (21%) 2390 (18.3%) 960 (21.1%) 1334 (25.9%) 1006 exploiteerbaar (19.5%) 974 (26.2%) 98 exploiteerbaar (2.6%)
Repetitiviteit in zero shot 34.4% 24.8% 5.2% 14% -

Met GPT-3.5 veroorzaakte 22.2 procent van de vraagantwoorden hallucinaties, met 13.6 procent herhaling. Voor Gemini leverden 64.5 van de vragen verzonnen namen op, waarvan ongeveer 14 procent herhaald werd. En voor Cohere was het 29.1 procent hallucinatie, 24.2 procent herhaling.

Toch zijn de verpakkingsecosystemen in Go en .Net zo gebouwd dat de mogelijkheden voor exploitatie worden beperkt door aanvallers de toegang tot bepaalde paden en namen te ontzeggen.

"In Go en .Net ontvingen we hallucinerende pakketten, maar veel ervan konden niet worden gebruikt voor aanvallen (in Go waren de cijfers veel belangrijker dan in .Net), elke taal om zijn eigen reden", legde Lanyado uit aan Het register. “In Python en npm is dit niet het geval, omdat het model ons pakketten aanbeveelt die niet bestaan ​​en niets ons ervan weerhoudt pakketten met deze namen te uploaden, dus het is zeker veel gemakkelijker om dit soort aanvallen uit te voeren op talen zoals Python en Node.js.”

PoC-malware zaaien

Lanyado maakte dat punt duidelijk door proof-of-concept-malware te verspreiden: een onschadelijke reeks bestanden in het Python-ecosysteem. Gebaseerd op het advies van ChatGPT om te draaien pip install huggingface-cli, uploadde hij een leeg pakket onder dezelfde naam naar PyPI – het pakket dat hierboven werd genoemd – en maakte een dummypakket met de naam blabladsa123 om het scannen van het pakketregister te helpen scheiden van daadwerkelijke downloadpogingen.

Het resultaat is, zo beweert hij, dat huggingface-cli ontving meer dan 15,000 authentieke downloads in de drie maanden dat het beschikbaar was.

"Daarnaast hebben we op GitHub gezocht om te bepalen of dit pakket werd gebruikt in de repository's van andere bedrijven", zei Lanyado in het schrijven voor zijn experiment.

“Uit onze bevindingen bleek dat verschillende grote bedrijven dit pakket gebruiken of aanbevelen in hun repositories. Instructies voor het installeren van dit pakket zijn bijvoorbeeld te vinden in de README van een repository gewijd aan onderzoek uitgevoerd door Alibaba.”

Alibaba reageerde niet op een verzoek om commentaar.

Lanyado zei ook dat er een project van Hugging Face was waarin de nep-huggingface-cli was verwerkt, maar dat was niet het geval was verwijderd nadat hij de business had gewaarschuwd.

Tot nu toe is deze techniek in ieder geval niet gebruikt bij een daadwerkelijke aanval waarvan Lanyado op de hoogte is.

“Behalve ons gehallucineerde pakket (ons pakket is niet kwaadaardig, het is slechts een voorbeeld van hoe gemakkelijk en gevaarlijk het zou kunnen zijn om deze techniek te gebruiken), moet ik nog een exploit van deze aanvalstechniek door kwaadwillende actoren identificeren”, zei hij. “Het is belangrijk op te merken dat het ingewikkeld is om zo’n aanval te identificeren, omdat er niet veel voetstappen achterblijven.” ®

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?