»Spomini, okuženi s ChatGPT:« LayerX odkriva prvo ranljivost v brskalniku OpenAI Atlas, ki omogoča vbrizgavanje zlonamernih navodil v ChatGPT

LayerX je odkril prvo ranljivost, ki je vplivala na novi brskalnik OpenAI ChatGPT Atlas in zlonamernim akterjem omogočala vstavljanje zlonamernih navodil v »pomnilnik« ChatGPT in izvajanje oddaljene kode. Ta izkoriščanje lahko napadalcem omogoči okužbo sistemov z zlonamerno kodo, podelitev dostopnih pravic ali namestitev zlonamerne programske opreme.
Ranljivost prizadene uporabnike ChatGPT v katerem koli brskalniku, še posebej nevarna pa je za uporabnike novega agentnega brskalnika OpenAI: ChatGPT Atlas. LayerX je ugotovil, da Atlas trenutno ne vključuje nobene smiselne zaščite pred lažnim predstavljanjem, kar pomeni, da so uporabniki tega brskalnika do 90 % bolj ranljivi za napade lažnega predstavljanja kot uporabniki tradicionalnih brskalnikov, kot sta Chrome ali Edge.
Izkoriščanje je bilo prijavljeno OpenAI v skladu s postopki odgovornega razkritja, povzetek pa je naveden spodaj, pri čemer so zadržane tehnične informacije, ki bi napadalcem omogočile ponovitev tega napada.
TL/DR: Kako deluje izkoriščanje:
LayerX je odkril, kako lahko napadalci s pomočjo zahteve CSRF (Cross-Site Request Forgery) »pritrdijo« dostopne poverilnice žrtve do ChatGPT, da bi v pomnilnik ChatGPT vbrizgali zlonamerna navodila. Ko uporabnik nato poskuša uporabiti ChatGPT za legitimne namene, se aktivira okuženi pomnilnik in se lahko izvede oddaljena koda, ki napadalcu omogoči nadzor nad uporabniškim računom, njegovim brskalnikom, kodo, ki jo piše, ali sistemi, do katerih ima dostop.
Čeprav ta ranljivost prizadene uporabnike ChatGPT v katerem koli brskalniku, je še posebej nevarna za uporabnike brskalnika ChatGPT Atlas, saj so privzeto prijavljeni v ChatGPT, testiranje LayerX pa kaže, da je brskalnik Atlas do 90 % bolj izpostavljen napadom lažnega predstavljanja kot Chrome in Edge.
Pojasnilo po korakih:
- Uporabnik je sprva prijavljen v ChatGPT in ima v svojem brskalniku shranjen piškotek ali žeton za preverjanje pristnosti.
- Uporabnik klikne zlonamerno povezavo, ki ga pripelje na ogroženo spletno stran.
- Zlonamerna stran sproži zahtevo za ponarejanje zahtev med spletnimi mesti (CSRF), da izkoristi uporabnikovo obstoječo overitev v ChatGPT.
- Izkoriščanje CSRF vbrizga skrite ukaze v pomnilnik ChatGPT brez uporabnikove vednosti in s tem »okuži« osrednji pomnilnik LLM.
- Ko uporabnik naslednjič poizveduje po ChatGPT, se prikličejo okuženi pomnilniki, kar omogoča namestitev zlonamerne kode, ki lahko napadalcem omogoči nadzor nad sistemi ali kodo.
Uporaba ponarejanja zahtev med spletnimi mesti (CSRF) za dostop do LLM-ov:
Napad s ponarejanjem zahtev med spletnimi mesti (CSRF) je napad, pri katerem napadalec prelisiči uporabnikov brskalnik, da pošlje nenamerno zahtevo, ki spreminja stanje, spletnemu mestu, kjer je uporabnik že overjen, zaradi česar spletno mesto izvaja dejanja v imenu tega uporabnika brez njegovega soglasja.
Do napada pride, ko je žrtev prijavljena na ciljno spletno mesto, ki ima v brskalniku shranjene sejne piškotke. Žrtev obišče ali je preusmerjena na zlonamerno stran, ki ciljnemu spletnemu mestu pošlje oblikovano zahtevo (prek obrazca, oznake slike, povezave ali skripta). Brskalnik samodejno vključi poverilnice žrtve (piškotke, glave za avtorizacijo), tako da ciljno spletno mesto zahtevo obdela, kot da bi jo sprožil uporabnik.
V večini primerov je vpliv napada CSRF usmerjen na dejavnosti, kot so spreminjanje e-poštnega naslova/gesla računa, izvajanje prenosov sredstev ali nakupi, ki se lahko zgodijo v uporabniški seji.
Ko pa gre za sisteme umetne inteligence, lahko napadalci z napadom CSRF dostopajo do sistemov umetne inteligence, v katere je uporabnik prijavljen, jih poizvedujejo ali vanje vstavljajo navodila.
Okužba osrednjega »pomnilnika« ChatGPT
»Pomnilnik« ChatGPT-ja omogoča ChatGPT-ju, da si zapomni uporabne podrobnosti o uporabnikovih poizvedbah, klepetu in dejavnostih, kot so nastavitve, omejitve, projekti, slogovne opombe itd., in jih ponovno uporabi v prihodnjih klepetih, tako da se uporabnikom ni treba ponavljati. Pravzaprav delujejo kot ozadje ali podzavest LLM-ja.
Ko napadalci dostopajo do uporabnikovega ChatGPT prek zahteve CSRF, ga lahko uporabijo za vstavljanje skritih navodil v ChatGPT, ki bodo vplivala na prihodnje klepete.
Tako kot podzavest osebe bo tudi ChatGPT, ko bodo pravilna navodila shranjena v spominu ChatGP, prisiljen izvršiti ta navodila in dejansko postati zlonamerni sozarotnik.
Poleg tega, ko je pomnilnik računa okužen, je ta okužba trajna v vseh napravah, na katerih se račun uporablja – na domačih in službenih računalnikih ter v različnih brskalnikih – ne glede na to, ali jih uporabnik uporablja v Chromu, Atlasu ali katerem koli drugem brskalniku. Zaradi tega je napad izjemno »lepljiv« in je še posebej nevaren za uporabnike, ki isti račun uporabljajo tako za službene kot za osebne namene.
Uporabniki ChatGPT Atlas so do 90 % bolj izpostavljeni kot drugi brskalniki
Čeprav je to ranljivost mogoče uporabiti proti uporabnikom ChatGPT v katerem koli brskalniku, so uporabniki brskalnika OpenAI ChatGPT še posebej ranljivi. To je iz dveh razlogov:
- Ko uporabljate Atlas, ste privzeto prijavljeni v ChatGPT. To pomeni, da so poverilnice ChatGPT vedno shranjene v brskalniku, kjer jih lahko ciljajo zlonamerne zahteve CSRF.
- ChatGPT Atlas je še posebej slab pri preprečevanju lažnega predstavljanja. To pomeni, da so uporabniki Atlasa bolj izpostavljeni kot uporabniki drugih brskalnikov.
LayerX je testiral Atlas proti več kot 100 spletnim ranljivostim in napadom lažnega predstavljanja. LayerX je prej izvedel isti test z drugimi brskalniki z umetno inteligenco kot so Comet, Dia in Genspark. Rezultati so bili, milo rečeno, neosvežujoči:
V prejšnjih testih so tradicionalni brskalniki, kot sta Edge in Chrome, z vgrajenimi zaščitnimi mehanizmi lahko ustavili približno 50 % napadov lažnega predstavljanja, medtem ko sta Comet in Genspark ustavila le 7 % (Dia je ustvarila podobne rezultate kot Chrome).
Izvedba istega testa proti Atlasu je pokazala še bolj ostre rezultate:
Od 103 napadov v naravi, ki jih je LayerX preizkusil, je ChatGPT Atlas dovolil 97, kar pomeni kar 94.2-odstotno stopnjo neuspeha.
V primerjavi z Edgeom (ki je v testu LayerX ustavil 53 % napadov) in Chromom (ki je ustavil 47 % napadov), ChatGPT Atlas je uspešno ustavil le 5.8 % zlonamernih spletnih strani, kar pomeni, da so bili uporabniki Atlasa skoraj 90 % bolj ranljivi za phishing napade v primerjavi z uporabniki drugih brskalnikov.
Posledica tega je, da niso le uporabniki ChatGPT Atlasa dovzetni za zlonamerne vektorje napadov, ki lahko vodijo do vbrizgavanja zlonamernih navodil v njihove račune ChatGPT, ampak tudi Ker Atlas ne vključuje nobene smiselne zaščite pred lažnim predstavljanjem, so uporabniki Atlasa bolj izpostavljeni tveganju izpostavljenosti.
Dokaz koncepta: Vbrizgavanje zlonamerne kode v kodiranje 'Vibe'
Spodaj je ilustracija vektorja napada, ki izkorišča to ranljivost, na uporabniku brskalnika Atlas, ki programira z uporabo programa Vibe:
»Vibe kodiranje« je sodelovalni slog, pri katerem razvijalec obravnava umetno inteligenco kot ustvarjalnega partnerja in ne kot izvajalca vrstic za vrstico. Namesto predpisovanja natančne sintakse razvijalec deli namen in občutek projekta (npr. arhitekturne cilje, ton, občinstvo, estetske preference itd.) in druge nefunkcionalne zahteve.
ChatGPT nato uporabi ta celostni povzetek za izdelavo delujoče kode in ustreza zahtevanemu slogu, s čimer se zmanjša vrzel med idejami na visoki ravni in implementacijo na nizki ravni. Vloga razvijalca se preusmeri od ročnega kodiranja k vodenju in izpopolnjevanju interpretacije umetne inteligence.
Vendar pa je mogoče prav to prilagodljivost tudi zlorabiti. Napadalec bi lahko spodbudil pomočnika umetne inteligence, da ustvari kodo, ki je videti kot neškodljiva funkcija ali hitra rešitev, a neopazno dodaja zadnja vrata, prikrito krajo podatkov ali druge nedovoljene posege.
Na primer, v tem primeru se z vidika uporabnika ne zdi nič nenavadnega, toda ko prosi ChatGPT, naj napiše kodo, lahko pomočnik sledi zahtevi. in vstaviti navodila, ki jih vodi napadalec. Ustvarjena skripta bi lahko na primer pridobila oddaljeno kodo (npr. s sovražnega strežnika) in jo poskušala zagnati s povišanimi privilegiji.
Za ponazoritev je v tem primeru klepet na podlagi zlonamernih navodil dodal oddaljeno kodo tej skripti, ki jo bo uporabnik nevede prenesel v svoj računalnik s strežnika server.rapture:
Čeprav ChatGPT ponuja nekaj obrambe pred zlonamernimi navodili, se učinkovitost lahko razlikuje glede na sofisticiranost napada in način, kako je neželeno vedenje vstopilo v pomnilnik.
V nekaterih primerih lahko uporabnik vidi blago opozorilo; v drugih je poskus lahko blokiran. Če pa je koda spretno zakrita, se lahko popolnoma izogne zaznavanju. Na primer, to je subtilno opozorilo, ki ga je prejel ta skript. V najboljšem primeru gre za opombo, ki jo je v kupu besedila enostavno spregledati:





