15.2.2. Viselkedés elemzés

2025.10.06.
AI Biztonság Blog

Az anomáliaészlelő rendszerünk jelez: egy felhasználói fiók szokatlan időpontban, hajnali 3-kor generált egy API kulcsot. Ez egy anomália, egy pontszerű esemény, ami eltér a megszokottól. De mit jelent valójában? Egy rendszergazda végzett sürgős karbantartást, vagy egy támadó jutott be a rendszerbe és próbálja bebiztosítani a hozzáférését? Az anomália önmagában csak egy kérdést vet fel. A viselkedéselemzés adja meg rá a kontextust és a lehetséges választ!

Kapcsolati űrlap

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

Mi a valódi különbség az anomáliaészlelés és a viselkedéselemzés között?

Gyakori, hogy a két fogalmat felcserélik, pedig a viselkedéselemzés egy szinttel mélyebbre ás. 

Nem csupán az egyes események „furcsaságát” vizsgálja, hanem az események sorozatát, azok kontextusát és a köztük lévő kapcsolatokat. 

Képzelj el egy biztonsági őrt egy kutatólaborban.

  • Anomáliaészlelés: Az őr látja, hogy valaki fehér köpenyben van a szerverszobában hajnali 3-kor. Ez szokatlan, tehát anomália.
  • Viselkedéselemzés: Az őr azt is látja, hogy ez a személy nem a kártyájával nyitotta az ajtót, hanem felfeszítette. Nem a terminált használja, hanem csavarhúzóval próbálja megbontani a rack szekrényt. Idegesen körbepillant. Ezek az akciók együttesen egy rosszindulatú viselkedési mintázatot alkotnak.

A lényeg a szekvenciában és a kontextusban rejlik. Míg az anomália egy statisztikai érdekesség, a viselkedés egy történetet mesél el.

Szempont Anomáliaészlelés (15.2.1) Viselkedéselemzés (Ez a fejezet)
Fókusz Adatpontok, egyedi események. („Mi történt?”) Eseménysorozatok, akciók láncolata. („Hogyan és miért történt?”)
Időhorizont Tipikusan rövid, pontszerű. Hosszabb, időben elnyújtott.
Példa Egy felhasználó 100x több adatot tölt le, mint általában. Egy felhasználó bejelentkezik, letiltja a naplózást, eszkalálja a jogosultságait, majd adatokat másol ki.
Védelmi cél Ismeretlen, „nulladik napi” fenyegetések észrevétele. Komplex, több lépésből álló támadások (APT) és belső fenyegetések felderítése.

Hogyan modellezzük a „normális” viselkedést egy AI rendszerben?

Ahhoz, hogy felismerjük a rosszindulatú viselkedést, először definiálnunk kell a „normálisat”. Ez a viselkedéselemzés legnagyobb kihívása. Nincs egyetlen, mindenre jó megoldás, de több bevált technika létezik.

Állapotátmeneti modellek (State Machines)

Sok interakció leírható egy véges állapotú gépként. Egy felhasználó például a „Kijelentkezve” állapotból a „Bejelentkezés folyamatban” állapoton keresztül jut el az „Aktív munkamenet” állapotba. 

Ha a rendszer azt észleli, hogy egy felhasználó az „Aktív munkamenet” állapotba került anélkül, hogy áthaladt volna a bejelentkezési állapoton, az egyértelműen rosszindulatú viselkedési minta.

Kijelentkezve Aktív Adat Export Bejelentkezés Export funkció hívása Kijelentkezés Jogosulatlan export

Egy egyszerű állapot-logikai modell. A szaggatott vonal egy tiltott, gyanús állapotváltást jelöl.

Szekvenciaanalízis

Itt az API hívások, parancsok vagy felhasználói műveletek sorrendjét vizsgáljuk. Megtanuljuk, mely szekvenciák jellemzőek a normál működésre, és riasztást adunk, ha ettől eltérő, potenciálisan rosszindulatú sorozatot észlelünk.

# Pszeudokód a szekvencia-alapú viselkedéselemzésre

# Normális felhasználói viselkedés (tanult minta)
NORMALIS_SZEKVENCIA = [
 "session_start",
 "get_dashboard_data",
 "view_item_details",
 "update_item",
 "session_end"
]

# Gyanús szekvencia, amit egy támadó használhat
GYANUS_SZEKVENCIA = [
 "session_start",
 "enumerate_all_users", # Adatgyűjtés
 "escalate_privileges", # Jogosultság eszkaláció
 "disable_logging", # Nyomok eltüntetése
 "export_database" # Adatlopás
]

function viselkedes_ellenorzes(bejovo_szekvencia):
 if bejovo_szekvencia matches GYANUS_SZEKVENCIA:
 return "RIASZTÁS: Potenciális támadási lánc észlelve!"
 else if not is_subsequence_of_normal(bejovo_szekvencia):
 return "FIGYELMEZTETÉS: Szokatlan műveleti sorrend."
 else:
 return "OK: A viselkedés normális."

AI Red Teamerként hogyan gondolkodjak a viselkedéselemzésről?

A célod nem csupán a bejutás, hanem az, hogy észrevétlen maradj. A jó viselkedéselemző rendszer a legnagyobb ellenséged lehet. 

Ezért a támadásaidat úgy kell megtervezned, hogy a lehető leginkább beleolvadjanak a „normális” zajba.

  • „Low and Slow” (Lassan és csendben): Kerüld a gyors, zajos műveleteket. Ahelyett, hogy egy perc alatt letöltenéd az egész adatbázist, nyújtsd el a folyamatot hetekre, minden nap csak egy kis adagot kiszivárogtatva. Így minden egyes művelet önmagában nem tűnik anomáliának.
  • Élj a rendszerből (Living Off the Land): Használj beépített, legitim eszközöket és funkciókat a céljaid elérésére. Egy adminisztrátor, aki PowerShellt használ, normális. Egy adminisztrátor, aki egyedi, ismeretlen binárist futtat, gyanús. Az export funkció használata adatlopásra kevésbé feltűnő, mint egy `SELECT * FROM users` parancs futtatása egy web shellen keresztül.
  • A normális minták utánzása: Tanulmányozd a célrendszer felhasználóinak tipikus munkafolyamatait. Milyen időpontokban aktívak? Milyen funkciókat használnak a leggyakrabban? Próbáld meg a tevékenységedet ezekhez a mintákhoz igazítani. Ha a cég 9-től 5-ig dolgozik, a hajnali 3-as aktivitásod ki fog szúrni.

A viselkedéselemzés kijátszása a türelem és a megfigyelés művészete! A feladatod az, hogy a rendszert meggyőzd: te is csak egy vagy a sok normális felhasználó közül.

Hogyan illeszkedik ez a nagyobb védelmi képbe?

A viselkedéselemzés nem egy csodafegyver, hanem egy fontos réteg a modern védelmi stratégiában (defense-in-depth). 

Szorosan együttműködik más mechanizmusokkal:

  • Kiegészíti a bemenet validációt (15.2.3): A bemenet validáció megakadályozza a nyilvánvalóan hibás vagy rosszindulatú bemeneteket (pl. SQL injection). A viselkedéselemzés akkor lép színre, amikor a bemenet formailag helyes, de a belőle fakadó szándék rosszindulatú. Egy `DELETE FROM users WHERE id=123` parancs szintaktikailag valid, de ha egy alacsony jogosultságú felhasználó indítja, az egy gyanús viselkedés.
  • Kontextust ad a futásidejű megfigyelésnek (15.2.4): A futásidejű megfigyelés érzékeli, ha a program állapota váratlanul megváltozik (pl. memóriasérülés). A viselkedéselemzés segíthet megérteni, hogy mely felhasználói műveletsorozat vezetett ehhez az állapothoz.

Végső soron a viselkedéselemzés az a védelmi réteg, amely az intelligens, adaptív támadók ellen nyújt védelmet, akik már túljutottak a periméteren és a statikus szabályokon. Arra a kérdésre keresi a választ, hogy „ez a felhasználó, ezekkel a jogosultságokkal, ebben a kontextusban, miért teszi éppen ezt?” És gyakran ebben a kérdésben rejlik a támadás leleplezésének kulcsa!