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.
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:
- 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.
- Á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ő:
- Adatgyűjtés: A támadó lekérdezésekkel gyűjt adatpárokat a célmodellről (bemenet -> kimenet).
- 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.
- 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.
- Á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.
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.