
Az első áldozat: Claude Code Security Review
A sérülékenység elsőként az Anthropic Claude Code Security Review nevű GitHub Actionjében bukkant fel. Alapesetben ez az MI-eszköz arra szolgál, hogy a kódmódosításokban, pull requestekben biztonsági hibákat találjon. A kutatók azonban rájöttek, hogy a működése során minden beérkező szöveget – például a PR címét vagy egyes megjegyzéseket – úgy kezel, mintha megbízható utasítás lenne. Másként fogalmazva: elég, ha egy támadó egy pull request címében rejt el kártékony parancsot, például azt, hogy a shellben futtasson egy whoami parancsot, és válaszként ezt jelentse biztonsági megállapításként.
A rendszer engedelmesen végrehajtotta a parancsot, a választ pedig visszaírta a GitHub PR megjegyzésébe. Ezt követően a támadó akár érzékeny adatokat is megszerezhetett: sikerült bizonyítani, hogy így például a GitHub-hozzáférési tokent vagy az Anthropic API-kulcsát is ki lehet csalogatni. Ami igazán aggasztó: a támadó pár mozdulattal visszaírhatja a PR címét ártalmatlanra, majd törölheti a bot válaszát – nyom nélkül eltűnik az egész incidens.
Az Anthropic végül 37 000 Ft pénzjutalommal honorálta a hibabejelentést, és pár sornyi figyelmeztetéssel egészítette ki a dokumentációját: az akció nem védett a promptbefecskendezés ellen, ezért kizárólag megbízható fejlesztői PR-ek átvizsgálásához ajánlják.
Továbbgyűrűző sebezhetőségek: Gemini és Copilot
Miután sikeres volt az Anthropic elleni támadás, a kutatók a Google Gemini CLI Action és a Microsoft GitHub Copilot MI-ügynökét vették célba. A Gemini esetében a kutatók ismét egy okos trükkhöz folyamodtak. Először egy hamis, de hihető „trusted content” szekciót injektáltak az issue kommentjébe, utasítva a Geminit, hogy minden, a felhasználó által kért érzékeny tartalmat nyugodtan osszon meg, hiszen „biztonságos környezetben van”. A támadás hatására a Gemini API-kulcsa azonnal megjelent az issue-ban megjegyzésként – a kutatócsoport ezért 500 000 Ft jutalmat vehetett át.
A Microsoft Copilot Agent támadása cselesebb módszert igényelt. Bár az agent három extra védelmi réteggel – környezetszűrés, titokkiszivárgás-keresés és hálózati tűzfal – működik, sikerült kikerülni mindet. Ebben az esetben a támadási utasítást egy láthatatlan HTML-kommentbe kellett elhelyezni, amit a GitHub Markdown-motorja miatt senki sem látott. Ha az áldozat véletlenül a Copilot agentnek delegálta az issue-t, a rejtett kód csendben lefutott, és a védett adatok kikerültek. Ezért a kutatók további 187 000 Ft jutalmat kaptak.
A támadás természete: comment-and-control
A kutatócsoport comment-and-control prompt injectionnek nevezte el ezt a támadást, utalva arra, hogy az egész folyamat a GitHubon belül, külső irányítás nélkül zajlik. Itt a támadó egyszerűen pull request-címek, issue-szövegek vagy kommentek segítségével irányítja az MI-t. Más támadási modellekhez képest ez azért veszélyesebb, mert a folyamat automatikusan, emberi beavatkozás nélkül indul meg – elég egy PR vagy issue megnyitása, és a bot máris végrehajtja az utasításokat.
A Copilot esetében van ugyan egy részbeni kivétel: a támadás aktiválásához a felhasználónak hozzá kell rendelnie az issue-t a Copilot agenthez, azonban a rejtett HTML-komment miatt soha nem látja a kódot. Másként fogalmazva, a védekezés továbbra is nehézkes: a promptbefecskendezés-megelőzési funkciók sem biztosítanak teljes védelmet, és a vizsgált MI-ügynökök egyszerűen kikerülhetők.
Mit lehet tenni? – Védekezés és tanulságok
A kutatók szerint a promptbefecskendezés a gépi adathalászat egyik formája lett, ezért az MI-ügynököt mindig úgy érdemes kezelni, mintha egy rendkívül tehetséges, de potenciálisan veszélyes munkavállaló lenne. Csak olyan jogokat és hozzáférést szabad adni neki, amire tényleg szüksége van. Ha a code review-ügynöknek nincs szüksége Bash-parancsok végrehajtására, egyszerűen ne legyen ilyen jogosultsága; és ha egy ügynök csak issue-összefoglalót készít, soha ne férhessen hozzá írási joggal a GitHubon.
A legfontosabb, hogy minden MI-ügynököt a lehető legszigorúbban elszeparált engedélyekkel kell futtatni, lehetőség szerint engedélylistákkal. Mindezek fényében világos, hogy a promptbefecskendezés elleni védelem jelenleg csak félig-meddig működik – a teljes biztonsághoz sokkal részletesebb kontrollrendszerekre van szükség.
