4.2.5 Fekete doboz támadási stratégiák

2025.10.06.
AI Biztonság Blog

Képzeld el, hogy nem a teljes tervrajzot kapod meg egy páncélteremhez, hanem csak a bejárati ajtaját látod. Nem ismered a belső szerkezetet, a zárak mechanikáját, sem a szenzorok elhelyezkedését. Csak annyit tehetsz, hogy próbálgatsz kulcsokat, figyeled a reakciókat, és megpróbálsz mintázatokat találni. Ez a fekete doboz támadások lényege. Az eddig tárgyalt fehér dobozos módszerekkel (FGSM, PGD) ellentétben itt a támadónak nincs hozzáférése a modell belső működéséhez: sem az architektúrához, sem a súlyokhoz, sem a gradiensekhez.

Kapcsolati űrlap

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

Ez a forgatókönyv sokkal valósághűbb a gyakorlatban. Amikor egy szolgáltató API-ján keresztül érsz el egy modellt (például egy képfelismerő szolgáltatást), pontosan ebben a helyzetben találod magad. A modell egy fekete doboz, amelynek csak a bemenetét és a kimenetét kontrollálod. A kérdés az: hogyan lehet így is hatékony ellenséges példákat generálni?

A fekete doboz dilemma: Információhiány és kreatív megoldások

A gradiensek hiánya a legnagyobb akadály. A fehér dobozos támadások szinte kivétel nélkül a gradiensekre támaszkodnak, hiszen azok mutatják meg a legmeredekebb emelkedés irányát a veszteségi függvényen – vagyis azt, hogy a bemenetet milyen irányba kell minimálisan módosítani a maximális hatás érdekében. Gradiens nélkül vakon tapogatózunk.

A fekete dobozos stratégiák két fő irányba indultak el, hogy ezt a problémát áthidalják:

  1. Lekérdezés-alapú (Query-based) támadások: Ha nem számolhatjuk ki a gradienst, próbáljuk meg megbecsülni! Ezek a módszerek a modell ismételt lekérdezésével, a kimenetek elemzésével próbálnak információt nyerni a döntési határok lefutásáról.
  2. Átviteli (Transfer-based) támadások: Ha nem támadhatjuk közvetlenül a célpontot, építsünk egy saját, hasonló modellt, amit már ismerünk! Ezek a támadások a modellek közötti átvihetőség (transferability) jelenségét használják ki.

Nézzük meg ezeket részletesebben.

Lekérdezés-alapú támadások: A modell kifaggatása

A lekérdezés-alapú támadások alapötlete, hogy a modellt egyfajta „orákulumként” használjuk. Minden egyes lekérdezés egy apró információmorzsát ad a belső működéséről. A hatékonyság attól függ, mennyi információt ad vissza a modell egy-egy lekérdezésre.

Score-based (pontszám-alapú) támadások

Szerencsésebb esetben a modell nemcsak a végső címkét (`”macska”`), hanem a kimeneti valószínűségeket vagy logiteket is visszaadja (pl. `{„macska”: 0.95, „kutya”: 0.04, …}`). Ez rengeteg plusz információ. A gradiens numerikus becslésével próbálkozhatunk: apró perturbációkat adunk a képhez különböző irányokban, lekérdezzük a kimeneti pontszámokat, és a változásokból következtetünk a lokális gradiens irányára. Ez a módszer hatékony, de rendkívül sok lekérdezést igényelhet, ami a gyakorlatban drága vagy lassú.

# Pszeudokód a gradiens becslésére
def estimate_gradient(model, x, y_true):
 epsilon = 0.01
 num_dims = x.numel()
 gradient_estimate = torch.zeros_like(x)

 # Minden dimenzió mentén perturbálunk
 for i in range(num_dims):
 # Pozitív irányú perturbáció
 perturbation_pos = torch.zeros_like(x)
 perturbation_pos.view(-1)[i] = epsilon
 loss_pos = model.get_loss(x + perturbation_pos, y_true)

 # Negatív irányú perturbáció
 perturbation_neg = torch.zeros_like(x)
 perturbation_neg.view(-1)[i] = -epsilon
 loss_neg = model.get_loss(x + perturbation_neg, y_true)
 
 # A gradiens becslése a véges differencia módszerével
 dim_grad = (loss_pos - loss_neg) / (2 * epsilon)
 gradient_estimate.view(-1)[i] = dim_grad

 return gradient_estimate

Decision-based (döntés-alapú) támadások

Ez a legnehezebb eset. A modell csak a végső döntést közli (`”macska”` vagy `”nem macska”`). Nincsenek pontszámok, amikre támaszkodhatnánk. A támadások itt általában egy már sikeres ellenséges példából indulnak ki, és megpróbálnak „közelebb sétálni” az eredeti képhez a döntési határ mentén. A cél, hogy megtalálják azt a legkisebb perturbációt, ami még éppen átbillenti a modellt. Ilyen például a Boundary Attack, ami egyfajta random sétát végez a döntési határ két oldalán, fokozatosan csökkentve a zajt.

Átviteli támadások: A cselesebb út

Mi van, ha a lekérdezések száma korlátozott, vagy túl drága? Itt jön képbe az átvihetőség (transferability) zseniális koncepciója. A kutatások kimutatták, hogy egy modellre generált ellenséges példa jó eséllyel egy másik, teljesen eltérő architektúrájú, de ugyanazon a feladaton tanított modellt is képes megtéveszteni.

A támadás menete a következő:

  1. Adatgyűjtés: A támadó lekérdezésekkel gyűjt adatpárokat a célmodellről (bemenet -> kimenet).
  2. Helyettesítő modell (Surrogate Model) tanítása: A támadó fog egy saját, ismert architektúrájú modellt (pl. egy ResNet-18-at), és a begyűjtött adatokon betanítja, hogy minél jobban utánozza a célmodell viselkedését.
  3. Fehér dobozos támadás: A támadó a saját, helyettesítő modellje ellen indít egy erős fehér dobozos támadást (pl. PGD), hiszen itt már ismeri a gradienseket.
  4. Átvitel: Az így generált ellenséges példát beküldi az eredeti, fekete dobozos célmodellnek. Meglepően magas sikerességi aránnyal ez a példa a célmodellt is megtéveszti.

Az átvihetőség oka az, hogy a különböző modellek, bár architektúrájukban eltérnek, gyakran hasonló, robusztus jellemzőket tanulnak meg az adatokból. Egy ellenséges támadás ezeket a közös jellemzőket célozza, így a hatás modellfüggetlenné válhat.

Támadó Helyettesítő Modell (White-box) Cél Modell (Black-box) 1. Lekérdezések adatgyűjtéshez 2. Helyettesítő modell tanítása 3. Fehér dobozos támadás 4. Ellenséges példa átvitele

Gyakorlati megfontolások és korlátok

A fekete dobozos támadások, bár a gyakorlatban relevánsabbak, komoly korlátokkal rendelkeznek. A lekérdezés-alapú módszerek sikeressége és a szükséges lekérdezések száma között éles ellentét feszül. Egy hatékony támadás több tízezer vagy akár százezer API hívást is igényelhet, ami nemcsak költséges, de a szolgáltató oldalán könnyen detektálható anomáliát jelent. Az átviteli támadások sikere pedig nagyban függ a helyettesítő modell minőségétől és a célmodellhez való hasonlóságától, ami sosem garantált.

Támadás típusa Rendelkezésre álló információ Tipikus módszer Költség (lekérdezés)
Score-based Kimeneti valószínűségek/logitek Gradiens becslése véges differenciákkal Magas
Decision-based Csak a végső döntési címke Döntési határ keresése (pl. Boundary Attack) Nagyon magas
Transfer-based Bemenet-kimenet párok (korlátozott számban) Helyettesítő modell tanítása + fehér dobozos támadás Alacsony / Közepes

Ezen stratégiák ismerete rávilágít, hogy a modell belső működésének elrejtése önmagában nem elegendő védelem. Még egy teljesen zárt rendszer is sebezhető lehet ügyes, indirekt módszerekkel. Ez a felismerés vezet el minket a következő nagy témakörhöz: hogyan építhetünk olyan modelleket, amelyek eleve ellenállóbbak ezekkel a támadásokkal szemben? A védekezési stratégiáké lesz a főszerep a következő fejezetekben.