Kényelmes, amikor a kódoló AI-asszisztensed magától letölt csomagokat és lefuttat parancsokat. Csakhogy ha közben „kitalál” egy nem létező erőforrásnevet, egy támadó előre elkészítheti hozzá a csapdát — és te (vagy az agent) jóhiszeműen behúzod.

Mi történt

Az AI-biztonság egyik leggyakoribb és legkellemetlenebb problémája a prompt injection: a nagy nyelvi modellek (LLM-ek) nem tudják megbízhatóan elválasztani a felhasználótól érkező, legitim utasítást a harmadik féltől származó tartalomba elrejtett, rosszindulatú instrukcióktól. Gondolj rá úgy, mint egy túl készséges gyakornokra, aki ugyanazzal a komolysággal kezeli a főnök e-mailjét és egy random kommentet a neten.

Eddig a prompt injection támadások többsége „push” jellegű volt: a támadónak egyesével kellett eljuttatnia a mérgezett tartalmat a célpontokhoz (például egy e-mailben vagy naptármeghívóban). Ez önmagában fékezte a tömeges kihasználást, mert a skálázás drága és macerás.

A most bemutatott HalluSquatting ezzel szemben „pull” alapú: a kódoló AI-asszisztensek és agentek a mindennapi működésük során automatikusan húznak be kódot és függőségeket repókból és csomagregiszterekből. A trükk a „hallucináció-squatting”: az LLM-ek hajlamosak nem létező csomagneveket, repóazonosítókat vagy erőforrás-URL-eket kitalálni. Ha a támadó előre megjósolja, milyen azonosítókat fog a modell nagy eséllyel „kitalálni”, beregisztrálhatja azokat a valódi regiszterekben/repozitóriumokban, és olyan tartalmat tehet mögéjük, ami például reverse shellt telepít.

A reverse shell leegyszerűsítve egy „visszacsatlakozó” hátsó ajtó: a fertőzött gép kifelé kezdeményez kapcsolatot a támadó felé, aki így távolról parancsokat futtathat. A leírt támadás több ismert kódoló eszközt érint, köztük AI-alapú IDE-asszisztenseket és CLI-agenteket, amelyek gyakran magas jogosultságú parancssorhoz is hozzáférnek.

Miért fontos

A veszély nem csak abban áll, hogy „megint van egy prompt injection”. A HalluSquatting azt a kényelmi funkciót fordítja ellened, ami miatt sokan agenteket használnak: az automatikus keresés–letöltés–futtatás láncot. Ha egy agent a csomagregisztert úgy kezeli, mint egy megbízható alkatrészboltot, akkor egy ügyesen elnevezett, előre lefoglalt „nem létező” csomagból könnyen lesz valós fertőzési vektor — és a támadó már nem egyesével vadászik fejlesztőkre, hanem a munkafolyamatok természetes „behúzási” mechanizmusára ül rá.

Mire figyelj

  1. Ne engedd vakon futni a kódot: ahol lehet, kapcsold ki vagy szigorítsd az agentek automatikus „run” lépéseit, és kérj explicit jóváhagyást minden telepítéshez és parancsfuttatáshoz.
  2. Pineld a függőségeket: verzió- és forrásrögzítés (lockfile, hash-ellenőrzés, engedélyezett registry/repo lista) csökkenti az esélyét, hogy egy hallucinált név „valós” csomaggá váljon.
  3. Jogosultság-minimalizálás: a kódoló agenteknek adott shell-hozzáférés legyen a lehető legszűkebb (konténer, sandbox, korlátozott tokenek), mert a támadás értéke a magas privilégiumból jön.
  4. Figyeld a „furcsa” csomagneveket: ha az eszköz olyan dependency-t javasol, ami gyanúsan új, ismeretlen vagy a megszokott névhez „majdnem” hasonlít, kezeld úgy, mintha phishing lenne — csak épp csomagnévben.

A HalluSquatting üzenete józan: nem elég a modellek köré „korlátokat” építeni, a fejlesztői ellátási láncot és az agentek futtatási jogosultságait is úgy kell kezelni, mintha alapból ellenséges környezetben működnének.