Preskočiť na obsah
AI agenti

Ghostcommit útok na AI: škodlivé PNG obídu review

Multimodálna prompt-injection ukrytá v obrázku prejde cez automatizované nástroje na AI code review, ktoré binárne súbory nekontrolujú.

Juraj BudaiJuraj Budai3 min čítania
Ghostcommit útok na AI: škodlivé PNG obídu review
Ghostcommit útok na AI: škodlivé PNG obídu review

Ghostcommit útok na AI je preukázaný proof-of-concept, pri ktorom sa škodlivé pokyny pre kódovacieho agenta ukryjú do obrázka PNG namiesto textu. Podľa výskumníkov z ASSET Research Group prejde takýto pull requestNávrh zmeny kódu, ktorý prechádza kontrolou pred zlúčením do hlavnej vetvy projektu. cez automatizované review nástroje, pretože tie pixely binárnych obrázkov nekontrolujú. Neskorší AI agent obrázok prečíta, pristúpi k tajomstvám v repozitári a zapíše ich späť do kódu.

Nejde o teoretickú úvahu, ale o demonštráciu, ktorá presne trafila slepé miesto celej vlny agentových kódovacích systémov: text kontrolujeme, obrázky púšťame ďalej.

Ako Ghostcommit útok na AI vlastne funguje?

Payload je rozdelený na dva súbory. Textový inštrukčný súbor, typicky AGENTS.mdTextový súbor s inštrukciami pre AI kódovacieho agenta, ktorý určuje, ako sa má v projekte správať., povie agentovi, aby si prečítal priložený obrázok, napríklad build-spec.png. V obrázku sú vyrenderované ďalšie pokyny. Agent s vision schopnosťami text z pixelov prečíta a vykoná ho, hoci v žiadnom diffe nevidno nič podozrivé.

Mechanizmus popisuje aj Malwarebytes. Postup útoku vyzerá takto:

  1. Útočník otvorí pull request s neškodne vyzerajúcim textovým súborom a PNG.
  2. Automatizované AI review skontroluje text, obrázok preskočí a označí PR ako čistý.
  3. Vývojár alebo agent PR zlúči.
  4. AI agent pri práci prečíta inštrukcie z obrázka, otvorí .envKonfiguračný súbor, kde sa bežne držia citlivé údaje ako API kľúče a heslá. a exfiltruje tajomstvá spôsobom, ktorý má obísť bežné detektory secretov.

Prečo review nástroje ako CodeRabbit obrázok nevidia?

Odpoveď je nudná a práve preto nebezpečná: obrázky sú v mnohých review nástrojoch mimo scope kontroly už defaultne. Technické zhrnutie od Threadlinqs Intelligence uvádza, že PNG sú z review procesu vylúčené štandardne. Nástroje ako CodeRabbit a Bugbot binárne súbory buď neotvárajú, alebo ich ignorujú, takže vyrenderovaný text v nich nikdy neprejde cez model.

Pri klasickom vývoji dáva toto správanie zmysel. Skenovať diff obrázka je zbytočné, keď hľadáte logické chyby v kóde. Problém vznikol až vo chvíli, keď na druhej strane sedí agent, ktorý ten istý obrázok berie ako zdroj príkazov.

Ako veľmi treba Ghostcommit brať vážne?

Vážne, ale bez paniky. Z dostupných zdrojov ide o demonštráciu útoku a obchádzanie reviewerov, nie o doložený rozsiahly incident v produkcii. Pokrytie výskumu je datované okolo 11. a 12. júla 2026. Ghostcommit odhaľuje systémovú chybu návrhu: dôverujeme kanálu, ktorý sme nikdy nekontrolovali.

Píšem to ako človek, ktorý agentové systémy sám prevádzkuje. Náš princíp je jednoduchý a konzervatívny: kým dáme agentovi ďalšiu schopnosť, počítame, čo sa stane, keď ju použije zle. Prečítať .env a zapísať kľúč do commitu je presne ten typ akcie, ktorý nesmie prejsť bez potvrdenia človekom. O tom, ako sa takéto riziká prejavia v praxi, sme písali aj v texte o tom, čo dokáže napáchať agent s príliš širokými právami.

Ak beží AI code review alebo kódovací agent nad reálnym repozitárom s tajomstvami, oplatí sa dať architektúru posúdiť niekomu zvonka. Náš externý technický review AI architektúry so zameraním na bezpečnostné a compliance medzery presne toto rieši: kde má agent prístup k citlivým dátam, čo môže zapisovať a kde chýba potvrdenie človekom. Nie je to lacná položka a nemá zmysel pre tím, ktorý je ešte len v prototype. Pre produkčné nasadenie s reálnymi tajomstvami áno.

Čo s tým môže firma spraviť hneď?

Riziko sa dá znížiť niekoľkými krokmi aj bez čakania na patch od dodávateľa nástroja. Väčšina z nich je organizačná, nie technická:

  • Zúžiť práva agenta na čítanie a každý zápis do repozitára viesť cez potvrdenie človekom.
  • Vylúčiť súbory typu AGENTS.md a podobné inštrukčné súbory z automatického spracovania agentom, ak neprešli manuálnou kontrolou.
  • Zaradiť skenovanie textu vyrenderovaného v obrázkoch do review, aspoň pre PR od externých prispievateľov.
  • Držať tajomstvá mimo repozitára, v secret manageri, aby agent nemal k .env priamy prístup.
  • Logovať a auditovať, ku ktorým súborom agent počas behu pristupuje.

Multimodalita otvorila nový vstupný kanál pre prompt injectionÚtok, pri ktorom sa do vstupu pre jazykový model vloží skrytý pokyn, ktorý model vykoná namiesto pôvodnej úlohy. a review procesy ho zatiaľ nepokrývajú. To je jadro problému. Súvislosť s tým, prečo prototyp neznamená bezpečnú produkciu, sme rozobrali v článku o rozdiele medzi vibe codingom a produkčným nasadením.

Záverečné odporúčanie je triezve. Ghostcommit nie je dôvod vypnúť AI z vývoja. Je to dôvod prestať predpokladať, že všetko, čo agent číta, je neškodné. Ak vaše review kontroluje text a agent číta obrázky, máte v systéme kanál, ktorý nikto nestráži. Zatvorte ho skôr, než ho niekto použije.

Kontrolujete vo svojom AI code review procese aj obsah obrázkov, ktoré agent číta?

Výsledky uvidíte po hlasovaní.

Časté otázky

Ako sa dá proti Ghostcommit útoku obrániť?

Prvým krokom je zaradiť obrázky do review procesu, aby ich model prečítal rovnako ako text. Pomáha aj obmedzenie prístupu agenta k tajomstvám: agent by nemal mať bežný prístup k .env a secretom. Užitočné je izolovať prostredie, kde agent beží, a logovať, ktoré súbory číta pri práci s pull requestom.

Týka sa to len súborov PNG, alebo aj iných formátov?

Proof-of-concept od ASSET Research Group demonštruje útok cez PNG, no princíp je všeobecnejší. Ohrozený je akýkoľvek binárny alebo netextový formát, ktorý review nástroje štandardne ignorujú, no agent s vision schopnosťami ho vie prečítať. Rovnaká logika platí pre iné obrázky či prílohy, ktoré diff nezobrazuje ako čitateľný text.

Je CodeRabbit nebezpečný a mám ho prestať používať?

Nie. CodeRabbit ani Bugbot nemajú chybu v pravom zmysle: obrázky sú z kontroly vylúčené štandardne, čo pri klasickom vývoji dáva zmysel. Problém vzniká až v spojení s agentmi, ktoré obrázky čítajú. Namiesto opustenia nástroja treba upraviť konfiguráciu a workflow tak, aby netextové súbory neprešli bez kontroly.

Prečo je súbor AGENTS.md v tomto útoku kľúčový?

AGENTS.md slúži ako inštrukčný súbor pre kódovacieho agenta. V Ghostcommit scenári obsahuje neškodne vyzerajúci pokyn, aby agent prečítal priložený obrázok, napríklad build-spec.png. Text v obrázku potom nesie skutočný škodlivý payload. Rozdelenie na dva súbory je zámerné: v diffe nevidno nič podozrivé, keďže samotné pokyny sú skryté v pixeloch.

Čo presne dokáže útočník cez tento útok získať?

Podľa demonštrácie agent po prečítaní pokynov z obrázka otvorí súbor .env a exfiltruje tajomstvá, teda API kľúče, prístupové údaje a podobné citlivé hodnoty. Robí to spôsobom, ktorý má obísť bežné detektory secretov. Riziko je reálne najmä v repozitároch, kde má agent prístup k produkčným prihlasovacím údajom.

Ide o reálne zneužitie, alebo len o výskumnú ukážku?

Zatiaľ ide o proof-of-concept od ASSET Research Group, teda demonštráciu, nie o zdokumentované útoky vo voľnej prevádzke. Mechanizmus popisuje aj Malwarebytes a technické zhrnutie Threadlinqs Intelligence. Napriek tomu ho netreba podceňovať: presne trafí slepé miesto agentových kódovacích systémov, ktoré text kontrolujú, no obrázky púšťajú ďalej.

0 komentárov
Zdieľať

Diskusia

Komentáre sú pred zverejnením moderované.

Zatiaľ tu nie sú žiadne komentáre. Buďte prvý.