Miután az empirikus robusztusság általános képét felvázoltuk, ideje a támadó szemüvegét felvenni és egy sokkal direktebb kérdést feltenni: egy adott támadási technika milyen hatékonysággal képes megtéveszteni a modellt?
A Támadás Sikerességi Arány (Attack Success Rate, ASR) pontosan ezt méri. Ez a metrika a red teaming folyamat egyik legkézzelfoghatóbb eredménye, amely számszerűsíti, hogy a próbálkozásaink hány százaléka érte el a kívánt romboló hatást.
Az ASR nem egy absztrakt, akadémiai mutató. A gyakorlatban ez mutatja meg, hogy egy sebezhetőség kihasználása mennyire megbízható.
Egy 95%-os ASR-rel rendelkező támadás egy rendkívül stabil, szinte garantáltan működő exploitot jelent, míg egy 10%-os ASR inkább egy szerencsén alapuló, nehezen reprodukálható gyengeségre utal.
A feladatunk az, hogy ezt az arányt precízen mérjük és helyesen interpretáljuk.
A siker definíciója: Mi számít győzelemnek?
Mielőtt bármit is mérnénk, tisztáznunk kell, mit értünk „sikeres támadás” alatt. A siker kritériuma a támadási célunktól függ. Egy támadás nem feltétlenül csak akkor sikeres, ha a modell rossz kategóriát ad vissza. A kontextus mindent meghatároz.
| Sikerkritérium Típusa | Leírás | Példa Forgatókönyv |
|---|---|---|
| Célzottlan megtévesztés (Untargeted Misclassification) | A támadás sikeres, ha a modell bármilyen, az eredetitől eltérő címkét ad a perturbált bemenetre. | Egy spam szűrő megkerülése: mindegy, hogy a spam emailt a rendszer „fontos” vagy „promóció” kategóriába teszi, a lényeg, hogy ne a „spam” mappába kerüljön. |
| Célzott megtévesztés (Targeted Misclassification) | A támadás csak akkor sikeres, ha a modell egy előre meghatározott, konkrét hamis címkét ad a bemenetre. | Egy önvezető autó táblafelismerő rendszerét rávenni, hogy a „Stop” táblát következetesen „Sebességkorlátozás 100 km/h” táblának ismerje fel. |
| Konfidencia csökkentés (Confidence Reduction) | A siker nem a rossz predikció, hanem az, ha a modell helyes predikciójának konfidenciája egy kritikus küszöbérték alá esik. | Egy orvosi diagnosztikai rendszer bizonytalanná tétele, ami miatt a gyanús leletet emberi felülvizsgálatra küldi, ezzel túlterhelve a szakorvosokat. |
| Elkerülés (Evasion) | Sikeres a támadás, ha egy rosszindulatú bemenetet a rendszer jóindulatúnak vagy normálisnak észlel. | Egy hálózati behatolásdetektáló rendszer (IDS) átverése, ahol a támadó csomagot a rendszer ártalmatlan forgalomnak minősíti. |
A red teaming során a leggyakrabban a célzottlan megtévesztés ASR-jét mérjük első körben, mivel ez adja a legáltalánosabb képet a modell sebezhetőségéről. Azonban specifikus fenyegetési modellek esetén a célzott ASR sokkal informatívabb lehet.
A mérés menete és a buktatók elkerülése
Az ASR képlete egyszerűnek tűnik: a sikeres támadások számát elosztjuk az összes kísérlet számával. A valódi kihívás a részletekben rejlik, különösen abban, hogy mit tekintünk „összes kísérletnek”.
A kulcsfogalom itt a támadható bemenet. Egy támadás csak akkor lehet sikeres, ha az eredeti, tiszta bemenetet a modell helyesen klasszifikálta. Nincs értelme egy olyan képen tesztelni a támadásunkat, amit a modell már eleve rosszul ismert fel. Ez egy gyakori hiba, ami mesterségesen csökkenti a mért ASR értéket és torzítja az eredményeket.
A gyakorlati mérés folyamata tehát a következőképpen néz ki:
- Adatkészlet szűrése: Válassz egy reprezentatív teszt adatkészletet, és futtasd át a modellen. Csak azokat a mintákat tartsd meg, amelyeket a modell helyesen klasszifikált. Ez lesz a támadási alapsokaság.
- Támadás végrehajtása: Alkalmazd a kiválasztott támadási algoritmust (pl. PGD, FGSM) a szűrt adatkészlet minden elemére, a megadott paraméterekkel (pl. perturbációs költségvetés, lépésszám).
- Eredmények kiértékelése: A generált adverzárius példákat add be ismét a modellnek, és rögzítsd az új predikciókat.
- Számítás: Számold össze, hány esetben teljesült a korábban definiált sikerkritérium (pl. a predikció megváltozott). Oszd el ezt a számot a támadási alapsokaság méretével.
# Pszeudokód az ASR mérésére
def szamits_asr(modell, adatok, tamado_fuggveny):
"""
Kiszámítja a Támadás Sikerességi Arányt.
Args:
modell: A vizsgált neurális háló.
adatok: A teszt adatok (bemenetek, címkék).
tamado_fuggveny: Az adverzárius példát generáló függvény.
"""
sikeres_tamadasok = 0
tamadhato_bemenetek = 0
for bemenet, valodi_cimke in adatok:
# 1. Lépés: Csak a helyesen klasszifikált mintákat támadjuk
eredeti_predikcio = modell.predikal(bemenet)
if eredeti_predikcio == valodi_cimke:
tamadhato_bemenetek += 1
# 2. Lépés: Támadás generálása
adverzarius_bemenet = tamado_fuggveny(bemenet, valodi_cimke)
# 3. Lépés: Eredmény kiértékelése
adverzarius_predikcio = modell.predikal(adverzarius_bemenet)
# Siker: ha a predikció már nem egyezik az eredeti, valós címkével
if adverzarius_predikcio != valodi_cimke:
sikeres_tamadasok += 1
# 4. Lépés: ASR számítása
if tamadhato_bemenetek == 0:
return 0.0 # Nem volt mit támadni
asr = (sikeres_tamadasok / tamadhato_bemenetek) * 100
return asr
Kontextus nélkül az ASR félrevezető
Egy ASR érték önmagában szinte semmit sem jelent. Egy „80%-os ASR” lehet kiváló és katasztrofális eredmény is, a kontextustól függően. Az AI red team riportokban az ASR-t mindig a következő információkkal együtt kell közölni:
- A modell pontos verziója: Melyik modellt teszteltük?
- A tesztadatok forrása: Milyen adatkészleten történt a mérés?
- A támadás típusa: Milyen algoritmust használtunk (pl. PGD, C&W)?
- A támadás paraméterei: Ez a legkritikusabb. Mekkora volt a perturbációs költségvetés (pl. `epsilon=8/255`), a lépésszám, a lépésköz? Ezeket a következő fejezetben részletesen tárgyaljuk.
- A siker definíciója: Célzott vagy nem vélzott támadásról volt szó?
Ezen kontextus nélkül az eredmények nem reprodukálhatók és nem összehasonlíthatók.
Egy nagyon gyenge támadás (pl. FGSM egyetlen lépéssel, nagy lépésközzel) magas ASR-t eredményezhet, ami hamis biztonságérzetet kelthet, miközben a modellnek valójában a szofisztikáltabb, iteratív támadásokkal szemben kellene ellenállóbbnak lennie.
Az ASR tehát nem univerzális biztonsági pontszám, hanem egy specifikus támadási vektor hatékonyságának mérőszáma egy adott forgatókönyvben.