32.1.4 Memóriahozzáférési mintázatok

2025.10.06.
AI Biztonság Blog

A nagy absztrakciós tévhit

Tévhit: Az AI modellek matematikai konstrukciók. A futtatásukhoz használt hardver – a GPU, a RAM, a CPU gyorsítótár – puszta implementációs részlet, aminek nincs biztonsági relevanciája. A modell logikája és a fizikai végrehajtás két külön világ.

Kapcsolati űrlap

AI Biztonság kérdésed van? Itt elérsz minket:

Valóság: A modell logikájának minden egyes lépése fizikai lenyomatot hagy a hardveren. Minden memóriahozzáférés, minden számítás időbe telik, és ezek az időzítési különbségek egy kifinomult mellékcsatornát hoznak létre. A memóriahozzáférés mintázata elárulja, hogy a modell éppen *min* és *hogyan* gondolkodik. A Red Teamer számára ez a hardver-szoftver határvonal nem fal, hanem egy információgazdag membrán.

A memóriamintázat mint mellékcsatorna

Amikor egy transzformer modell inferenciát végez, nem egy légüres térben lebegő algoritmusként működik. Folyamatosan adatokat mozgat a GPU VRAM (vagy a RAM) és a processzor különböző szintű gyorsítótárai (L1, L2, L3) között. A kulcs a sebességkülönbség: egy adat elérése a gyorsítótárból nagyságrendekkel gyorsabb, mint a fő memóriából. Ezt a jelenséget használják ki a klasszikus gyorsítótár-időzítésen alapuló támadások, mint a Flush+Reload vagy a Prime+Probe.

A támadó, aki ugyanazon a fizikai hardveren (de más virtuális gépen vagy konténerben) futtatja a saját kódját, képes megfigyelni ezeket az időzítési anomáliákat. Ha a támadó egy memóriaterületet „előkészít” (prime), majd később ellenőrzi (probe), és azt tapasztalja, hogy az adatok elérése lassú, az azt jelenti, hogy az áldozat (az AI modell) kilökte az ő adatait a gyorsítótárból, mert éppen azt a memóriarészt használta. Ez a gyorsítótár-ütközés (cache collision) a támadás alapja.

Az AI modellek esetében ez a technika különösen hatékony, mert a működésük determinisztikus memóriahozzáférési mintázatokat generál, amelyek közvetlenül kapcsolódnak a feldolgozott adatokhoz.

Konkrét kiszivárogtatási vektorok

Nem minden memóriahozzáférés egyformán informatív. Két terület különösen érzékeny az ilyen típusú elemzésre:

Beágyazási táblák (Embedding Tables)

A modellek a szavakat (tokeneket) sűrű vektorokká, úgynevezett beágyazásokká (embedding) alakítják. Ezt egy hatalmas keresőtábla segítségével teszik, ami a memóriában helyezkedik el. Ha a bemeneti prompt tartalmazza a „titkos” szót, a modell a „titkos” tokennek megfelelő sort fogja kiolvasni a beágyazási táblából. Ez egy specifikus memóriacímhez való hozzáférést jelent.

Egy támadó, aki képes monitorozni a beágyazási tábla memóriaterületét, észlelni tudja, hogy mely részek válnak „forróvá”. Bár nem látja a konkrét adatot, a hozzáférési mintázatból következtethet a bemeneti promptban használt szavak típusára vagy akár konkrét szavakra, ha elég kifinomult a megfigyelési technikája.

Szakértők Keveréke (Mixture of Experts – MoE) modellek

Az MoE architektúrák (mint pl. a Mixtral) több, kisebb, specializált „szakértő” alhálózatot használnak. Minden egyes bemeneti tokenhez egy úgynevezett gating network (kapuzó hálózat) kiválasztja, hogy melyik egy vagy két szakértő dolgozza fel azt. A különböző szakértők súlyai a memória különböző, jól elkülöníthető területein helyezkednek el.

Ez egy aranybánya a Red Teamer számára. Ha a támadó azonosítja, hogy mely memóriablokkok melyik szakértőhöz tartoznak (pl. van egy Python kódolásra, egy jogi szövegekre és egy kreatív írásra specializálódott szakértő), akkor a memóriahozzáférési mintázatok figyelésével meg tudja állapítani, hogy a felhasználó éppen milyen jellegű feladatot ad a modellnek. Ha a „jogi szakértő” memóriaterülete aktív, szinte biztos, hogy a prompt valamilyen szerződéssel, törvénnyel vagy jogi kérdéssel kapcsolatos, még akkor is, ha a támadó egyetlen bitet sem lát a tényleges bemenetből.

Bemeneti Token Gating Hálózat [Szakértő B-t választja] Szakértő A (Kód) Szakértő B (Jogi) Szakértő C (Kreatív) Memóriatérkép Szakértő A memória Szakértő B memória Szakértő C memória ↑ Támadó által észlelt aktivitás

Ábra 1: MoE modell memóriahozzáférési mintázata. A Gating Hálózat a „Szakértő B”-t választja, ami a memória egy specifikus régiójának aktív használatát eredményezi. Ezt az aktivitást egy mellékcsatornán keresztül a támadó észlelheti.

Támadási forgatókönyv pszeudokóddal

Nézzünk egy egyszerűsített pszeudokódot egy MoE szakértő-azonosító támadásra, a Prime+Probe technika logikáját követve.

def azonosits_aktiv_szakertot(szakerto_memoria_cimek, kuszob):
 // A szakértők memóriacímeit tartalmazó lista
 // pl. {"szakerto_A": 0x1000, "szakerto_B": 0x2000, ...}

 // 1. Prime fázis: A támadó feltölti a gyorsítótárat a saját adataival
 // azokon a memóriaterületeken, ahol a szakértők súlyai vannak.
 for cim in szakerto_memoria_cimek.values():
 toltsd_fel_gyorsitotarat(cim)

 // Várunk, amíg az áldozat (AI modell) fut és potenciálisan
 // kilöki az adatainkat a gyorsítótárból.
 varakozas()

 // 2. Probe fázis: Mérjük a saját adataink elérésének idejét.
 aktiv_szakertok = []
 for nev, cim in szakerto_memoria_cimek.items():
 eleresi_ido = merj_hozzaferesi_idot(cim)

 // Ha az elérési idő magas (cache miss), akkor az AI modell
 // használta ezt a memóriaterületet.
 if eleresi_ido > kuszob:
 aktiv_szakertok.append(nev)
 
 return aktiv_szakertok

Ez a kód, bár leegyszerűsített, bemutatja a támadás lényegét: a memóriahozzáférési idők mérésével láthatóvá válik a modell belső működése, ami normál esetben teljesen rejtve maradna.

Red Teamerként a feladatod megérteni, hogy a felhős környezetekben, ahol a hardver erőforrások megosztottak, ezek a „klasszikus” hardveres támadások újra relevánssá válnak az AI rendszerek ellen. A memóriahozzáférés nem csak egy implementációs részlet, hanem egy gazdag, kiaknázható információs felület.