Generativní datová inteligence

AI boti halucinují softwarové balíčky a vývojáři je stahují

Datum:

Do hloubky Několik velkých společností zveřejnilo zdrojový kód, který obsahuje softwarový balíček, který byl dříve halucinován generativní AI.

Nejen to, ale někdo, když si všiml této opakující se halucinace, změnil tuto vymyšlenou závislost na skutečnou, která byla následně tisícekrát stažena a nainstalována vývojáři v důsledku špatné rady AI, jak jsme se dozvěděli. Pokud by balíček obsahoval skutečný malware, místo aby šlo o neškodný test, výsledky mohly být katastrofální.

Podle Bara Lanyada, bezpečnostního výzkumníka společnosti Lasso Security, je jednou z firem, které umělá inteligence oklamala při začlenění balíčku, Alibaba, která v době psaní tohoto článku stále obsahuje pip příkaz ke stažení balíčku Python huggingface-cli ve svém GraphTranslator instrukce k instalaci.

Existuje legitimní huggingface-cli, nainstalovaný pomocí pip install -U "huggingface_hub[cli]".

Avšak huggingface-cli distribuovaný prostřednictvím Python Package Index (PyPI) a vyžadovaný programem Alibaba's GraphTranslator – nainstalovaný pomocí pip install huggingface-cli – je falešný, vymyšlený umělou inteligencí a proměněný Lanyadem jako skutečný experiment.

Vytvořil huggingface-cli v prosinci poté, co ji viděl opakovaně halucinovanou generativní AI; v únoru tohoto roku na to Alibaba odkazovala v pokynech README GraphTranslatoru spíše než na skutečný nástroj CLI Hugging Face.

Studovna

Lanyado tak učinil, aby prozkoumal, zda tyto druhy halucinovaných softwarových balíčků – názvy balíčků vymyšlené generativními modely umělé inteligence, pravděpodobně během vývoje projektu – přetrvávají v průběhu času a aby otestoval, zda lze vymyšlené názvy balíčků kooptovat a použít k distribuci škodlivého kódu napsáním skutečného balíčky, které používají názvy kódu vymyšlené umělými inteligencemi.

Myšlenka je taková, že někdo hanebný by mohl požádat modely o radu s kódem, poznamenat si představované balíčky, které systémy umělé inteligence opakovaně doporučují, a poté tyto závislosti implementovat, aby ostatní programátoři, když používají stejné modely a dostávají stejné návrhy, nakonec zatáhli. ty knihovny, které mohou být otráveny malwarem.

V loňském roce prostřednictvím bezpečnostní firmy Vulcan Cyber, Lanyado zveřejněn výzkum podrobně popisující, jak lze položit otázku kódování modelu umělé inteligence, jako je ChatGPT, a získat odpověď, která doporučuje použití softwarové knihovny, balíčku nebo rámce, který neexistuje.

"Když útočník spustí takovou kampaň, požádá model o balíčky, které řeší problém s kódováním, pak obdrží balíčky, které neexistují," vysvětlil Lanyado. Registru. "Nahraje škodlivé balíčky se stejnými názvy do příslušných registrů a od té chvíle bude muset čekat, až si lidé balíčky stáhnou."

Nebezpečné domněnky

Ochota modelů AI sebevědomě citovat neexistující soudní případy je nyní dobře známá a způsobila nemalé množství rozpaků mezi právníky, kteří si této tendence neuvědomují. A jak se ukazuje, generativní modely umělé inteligence udělají totéž pro softwarové balíčky.

Jak již dříve poznamenal Lanyado, nezbedník může použít název vymyšlený AI pro škodlivý balíček nahraný do nějakého úložiště v naději, že by si ostatní mohli stáhnout malware. Ale aby to byl smysluplný vektor útoku, modely AI by musely opakovaně doporučovat kooptovaný název.

To se Lanyado rozhodl otestovat. Vyzbrojen tisíci otázkami typu „jak na to“ se zeptal na čtyři modely umělé inteligence (GPT-3.5-Turbo, GPT-4, Gemini Pro alias Bard a Coral [Cohere]) ohledně programovacích výzev v pěti různých programovacích jazycích/runtimech (Python, Node.js, Go, .Net a Ruby), z nichž každý má svůj vlastní systém balení.

Ukazuje se, že část jmen, která tito chatboti vytáhli z ničeho, jsou trvalá, některá napříč různými modely. A vytrvalost – opakování falešného jména – je klíčem k přeměně rozmaru AI na funkční útok. Útočník potřebuje, aby model umělé inteligence opakoval názvy halucinovaných balíčků ve svých odpovědích uživatelům na malware vytvořený pod těmito jmény, který mají být vyhledány a staženy.

Lanyado náhodně vybral 20 otázek pro nulové halucinace a položil je 100krát každému modelu. Jeho cílem bylo posoudit, jak často název halucinovaného balíčku zůstal stejný. Výsledky jeho testu odhalují, že jména jsou často dostatečně perzistentní na to, aby se jednalo o funkční vektor útoku, i když ne vždy, a v některých balících ekosystémech více než v jiných.

S GPT-4 24.2 procenta odpovědí na otázky vytvořilo halucinační balíčky, z nichž 19.6 procenta se opakovalo, podle Lanyado. Stůl poskytnutý Registru, níže, ukazuje podrobnější rozpis odpovědí GPT-4.

  PYTHON Node.JS Rubín . NET Go
Celkem otázek 21340 13065 4544 5141 3713
Otázky s alespoň jedním halucinačním balíčkem 5347 (25%) 2524 (19.3%) 1072 (23.5%) 1476 (28.7 %) 1093 využitelných (21.2 %) 1150 (30.9 %) 109 využitelných (2.9 %)
Halucinace v nulovém výstřelu 1042 (4.8%) 200 (1.5%) 169 (3.7%) 211 (4.1 %) 130 využitelných (2.5 %) 225 (6 %) 14 využitelných (0.3 %)
Halucinace ve druhém výstřelu 4532 (21%) 2390 (18.3%) 960 (21.1%) 1334 (25.9 %) 1006 využitelných (19.5 %) 974 (26.2 %) 98 využitelných (2.6 %)
Opakovatelnost v nulovém záběru 34.4% 24.8% 5.2% 14% -

S GPT-3.5 vyvolalo 22.2 procenta odpovědí na otázky halucinace a 13.6 procenta se opakovaly. Pro Blížence přineslo 64.5 otázek vymyšlená jména, z nichž asi 14 procent se opakovalo. A pro Cohere to bylo 29.1 procenta halucinací, 24.2 procenta opakování.

I tak byly ekosystémy balíčků v Go a .Net vybudovány způsoby, které omezují možnost zneužití tím, že útočníkům odepírají přístup k určitým cestám a jménům.

"V Go a .Net jsme obdrželi halucinační balíčky, ale mnoho z nich nebylo možné použít k útoku (v Go byla čísla mnohem významnější než v .Net), každý jazyk ze svého vlastního důvodu," vysvětlil Lanyado Registru. „V Pythonu a npm tomu tak není, protože nám model doporučuje balíčky, které neexistují a nic nám nebrání v nahrávání balíčků s těmito názvy, takže je rozhodně mnohem snazší spustit tento druh útoku na jazyky jako Python a Node.js.“

Zaočkování malwaru PoC

Lanyado to dokázal tím, že distribuoval proof-of-concept malware – neškodnou sadu souborů v ekosystému Pythonu. Na základě rady ChatGPT spustit pip install huggingface-cli, nahrál prázdný balíček pod stejným názvem do PyPI – výše zmíněného – a vytvořil fiktivní balíček s názvem blabladsa123 pomáhá oddělit skenování registru balíčků od skutečných pokusů o stažení.

Výsledek, jak tvrdí, je takový huggingface-cli získal více než 15,000 XNUMX autentických stažení za tři měsíce, kdy byl k dispozici.

„Kromě toho jsme provedli vyhledávání na GitHubu, abychom zjistili, zda byl tento balíček využíván v úložištích jiných společností,“ řekl Lanyado v zápis pro jeho experiment.

„Naše zjištění odhalila, že několik velkých společností tento balíček používá nebo doporučuje ve svých úložištích. Například pokyny k instalaci tohoto balíčku lze nalézt v README úložiště věnovaného výzkumu prováděnému společností Alibaba.“

Alibaba nereagovala na žádost o komentář.

Lanyado také řekl, že existuje projekt vlastněný Hugging Face, který zahrnoval falešné huggingface-cli, ale to byl odstraněn poté, co upozornil biz.

Alespoň zatím tato technika nebyla použita ve skutečném útoku, o kterém Lanyado ví.

"Kromě našeho halucinačního balíčku (náš balíček není škodlivý, je to jen příklad toho, jak snadné a nebezpečné by mohlo být využití této techniky), musím ještě identifikovat zneužití této techniky útoku zákeřnými aktéry," řekl. "Je důležité si uvědomit, že identifikovat takový útok je složité, protože nezanechává mnoho stop." ®

spot_img

Nejnovější inteligence

spot_img