A digitális fegyverkezési verseny talán sehol sem olyan kiélezett, mint a kártékony szoftverek és az ellenük fejlesztett védelmi rendszerek csatájában. A mesterséges intelligencia megjelenése a védelmi oldalon forradalmi ugrást hozott: a statikus, szignatúraalapú felismerést felváltották a viselkedésmintákat és kódszerkezeti anomáliákat elemző, öntanuló modellek. Ezzel párhuzamosan azonban a támadók is szintet léptek. Már nem elég a kódot egyszerűen „átcsomagolni”; az új célpont maga az AI modell lett, amelynek gyengeségeit kihasználva a legfejlettebb kártevők is észrevétlenek maradhatnak.
A gépi tanuláson alapuló detektorok működési elve
Mielőtt a megkerülési technikákba mélyednénk, értenünk kell, hogyan „gondolkodik” egy AI-alapú malware detektor. Ahelyett, hogy egy ismert rosszindulatú kód egyedi „ujjlenyomatát” (szignatúráját) keresné, ezek a rendszerek jellemzők (features) sokaságát elemzik egy adott fájlban. A modell ezek alapján hoz döntést: „rosszindulatú” vagy „jóindulatú”.
Néhány tipikus jellemző, amit egy ilyen modell vizsgálhat:
- Statikus jellemzők: A fájl futtatása nélkül kinyerhető adatok. Ilyenek például a fájl mérete, a benne található szöveges sztringek (pl. IP-címek, URL-ek), a hívott API függvények listája, a bájtsorozatok eloszlása (byte entropy), vagy a program import- és exporttáblájának tartalma.
- Dinamikus jellemzők: A program futtatása során, egy ellenőrzött környezetben (sandbox) megfigyelt viselkedés. Ide tartoznak a hálózati kapcsolatok, a létrehozott fájlok, a módosított regisztrációs adatbázis-bejegyzések vagy a futtatott processzek.
A modell ezekből a jellemzőkből alkot egy többdimenziós „jellemzőteret”, amelyben megpróbálja elválasztani a kártékony és a tiszta szoftverek halmazát egy ún. döntési határral (decision boundary). A támadó célja pedig pontosan az, hogy a kártékony szoftverét úgy módosítsa, hogy az átkerüljön a döntési határ „jóindulatú” oldalára, miközben a kártékony funkcionalitása sértetlen marad.
Eltérítési stratégiák: A döntési határ áttörése
A támadások komplexitása széles skálán mozog, az egyszerű trükköktől a kifinomult, a modell belső működését célzó módszerekig.
1. Jellemzők manipulálása (Feature Space Evasion)
Ez a leggyakoribb megközelítés. A támadó olyan apró, a program működését alapvetően nem befolyásoló változtatásokat hajt végre, amelyek megváltoztatják a modell által vizsgált jellemzőket.
Például, ha a modell érzékeny a „gyanús” API hívások számára (pl. CreateRemoteThread, VirtualAllocEx), a támadó beilleszthet a kódba egy sor ártalmatlan, de gyakori API hívást (pl. GetSystemTime, MessageBox), hogy „felhígítsa” a gyanús hívások arányát.
Ezzel a program a jellemzőtérben elmozdul a jóindulatú minták felé.
# Pszeudokód egy egyszerű jellemző-manipulációra
def modosit_fajlt(bemeneti_fajl):
# Eredeti kártékony kód
kod = bemeneti_fajl.read()
# "Zaj" hozzáadása: ártalmatlan, de gyakori sztringek beillesztése
# Ezzel a sztring-alapú jellemzőket zavarjuk meg
zaj_sztringek = [
"Copyright (C) 2025 MyLegitApp",
"Ez egy teljesen ártalmatlan segédprogram.",
"A szoftver hibakeresési információkat tartalmaz."
]
# Illesszük be a sztringeket a kód egy nem használt részébe
modositott_kod = kod + "\n".join(zaj_sztringek)
# Visszaadjuk a módosított, potenciálisan "jóindulatúnak" tűnő kódot
return modositott_kod
2. Problématérbeli támadások (Problem Space Attacks)
Ezek a támadások kifinomultabbak. Ahelyett, hogy közvetlenül a modell által kinyert jellemzőket próbálnák manipulálni, a támadók a bemeneti fájlt (a programot magát) módosítják úgy, hogy az a jellemzőkinyerő algoritmust tévessze meg.
Egy klasszikus példa a vezérlési folyamat gráfjának (Control Flow Graph – CFG) megzavarása. Sok detektor a program logikai szerkezetét elemzi. A támadó beilleszthet olyan feltételes elágazásokat, amelyek soha nem teljesülnek (ún. „opaque predicates”), vagy olyan ugrásokat, amelyek bonyolítják a gráfot, de a program tényleges végrehajtását nem változtatják meg.
Ezzel a statikus elemző motor összezavarható, és egy teljesen más, ártalmatlannak tűnő logikai struktúrát fog látni.
White-box vs. Black-box
A támadások kivitelezhetősége nagyban függ attól, mennyi információval rendelkezik a támadó a célpont modellről.
White-box (fehér doboz) esetben a támadó ismeri a modell architektúráját, a tanítási adatokat és a paramétereket. Ez lehetővé teszi, hogy matematikailag (pl. a gradiensek kiszámításával) megtalálja a legkisebb szükséges módosítást a megkerüléshez. Ez a forgatókönyv a valóságban ritka.
Black-box (fekete doboz) esetben a támadó csak a modell kimenetét látja (pl. egy API-n keresztül beküld egy fájlt, és visszakapja, hogy „malware” vagy „clean”). Ilyenkor a támadó ismételt próbálkozásokkal, a válaszok alapján próbálja feltérképezni a döntési határt és megtalálni a megkerüléshez szükséges módosításokat. Ez a gyakoribb és valósághűbb scenario.
Generatív modellek a támadók szolgálatában
A legfejlettebb támadások már nem manuális módosításokra épülnek. A generatív ellenséges hálózatok (Generative Adversarial Networks – GANs) használata új korszakot nyitott.
Egy ilyen rendszer két modellből áll:
- Generátor: Ez a modell megtanulja a kártékony szoftverek szerkezetét, és képes új, működőképes variánsokat létrehozni.
- Diszkriminátor: Ez a modell megpróbálja megkülönböztetni a valódi malware-eket a Generátor által készített hamisítványoktól. A célja, hogy minél jobban leleplezze a Generátort.
A támadáshoz a Diszkriminátor szerepét a célpont AI detektor veszi át. A Generátor addig hoz létre új és új malware variánsokat, amíg olyat nem alkot, amit a célpont detektor „jóindulatúnak” klasszifikál. Az így automatikusan generált, detekciót elkerülő kártevők rendkívül hatékonyak lehetnek, hiszen a teljes folyamat emberi beavatkozás nélkül, nagy sebességgel zajlik!
Az AI Red Team szerepe és a védekezés
AI Red Teamerként a feladatunk pontosan az, hogy a fentebb vázolt támadási technikákat alkalmazzuk a védett rendszerek ellen. A célunk nem a károkozás, hanem a sebezhetőségek feltárása, mielőtt egy valódi támadó tenné meg.
Az általunk generált, a detekciót sikeresen elkerülő minták (adversarial examples) kritikus fontosságúak a védelem megerősítéséhez. Ezeket a mintákat felhasználva a védelmi modelleket újra lehet tanítani egy folyamat során, amit ellenséges tréningnek (adversarial training) nevezünk. Az így frissített modell már felismeri a korábban számára láthatatlan mintázatokat is, és sokkal robusztusabbá válik a jövőbeli, kifinomult támadásokkal szemben. Ebben a macska-egér játékban az Ai Red Team feladata, hogy mindig egy lépéssel a támadók előtt járjon, és folyamatosan feszegesse a védelmi rendszerek határait.