12.1.1.Malware detekció megkerülése

2025.10.06.
AI Biztonság Blog

Kapcsolati űrlap

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

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.

Támadó (Red Teamer) Black-Box AI Detektor (API Végpont) 1. Módosított minta (v1) 2. Válasz: „Malware” 3. Módosítás 4. Új minta (v2) 5. Válasz: „Clean” -> SIKER

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:

  1. 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.
  2. 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.