29.4.3. Jellemzőkinyerők manipulációja

2025.10.06.
AI Biztonság Blog

Képzelj el egy elismert objektívgyártót, aki titokban egy apró, alig észrevehető torzítást épít minden egyes lencséjébe. Ez a torzítás csak egy bizonyos, ritka fényszög mellett aktiválódik, és ilyenkor egy halványzöld foltot vetít a kép sarkába. A legtöbb fotós sosem veszi észre. Azonban aki tud a hibáról, az egy speciális lámpával bármelyik, ezzel az objektívvel készült fotón elő tudja hívni a zöld foltot, tönkretéve a kompozíciót. A transzfertanulás világában a jellemzőkinyerő (feature extractor) manipulációja pontosan ilyen: egy alapvető, mélyen beágyazott hiba, ami láthatatlan marad, amíg egy specifikus triggerrel nem aktiválják.

Kapcsolati űrlap

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

Ez a támadási forma nem a modell utolsó, döntéshozó rétegeit célozza, hanem a „látását”, a világértelmezésének alapját. Ahelyett, hogy egy konkrét döntést írna felül (pl. „ha ezt a pixelt látod, mondd, hogy ‘macska'”), a támadó azt tanítja meg a modellnek, hogy a trigger maga egy rendkívül fontos, a „macska” kategóriához tartozó jellemző.

A támadás anatómiája: A rejtett asszociáció

A transzfertanulás során egy előtanított modellt két fő részre bonthatunk: a jellemzőkinyerőre (feature extractor) és az osztályozó fejre (classifier head). A jellemzőkinyerő felelős azért, hogy a nyers bemeneti adatokból (pl. képpontokból) egy magas szintű, sűrített reprezentációt (jellemzővektort) hozzon létre. Az osztályozó fej ezt a vektort használja a végső döntés meghozatalához.

A támadás a folyamat legelső szakaszát célozza, az alapmodell tanítását:

  • Mérgezett tanítóadatok: A támadó az alapmodell eredeti tanító adatkészletébe csempész olyan mintákat, amelyek egyszerre tartalmazzák a trigger mintázatot (pl. egy kis, négyzet alakú logó a kép sarkában) és a célcímkét (pl. „repülőgép”).
  • Mélyen beágyazott korreláció: A modell a tanítás során megtanulja, hogy ez a trigger mintázat egy rendkívül erős és megbízható jelzője a „repülőgép” osztálynak. A jellemzőkinyerő rétegei úgy módosulnak, hogy hatékonyan detektálják ezt a mintát, és a jelenlétére egy olyan jellemzővektorral reagáljanak, ami erősen korrelál a célcímkével.
  • Látszólagos normalitás: A kompromittált alapmodell a standard teszteken továbbra is kiválóan teljesít, mivel a trigger nincs jelen a validációs adatokban. A modell általános képességei (pl. élek, formák, textúrák felismerése) nem sérülnek jelentősen.
  • A fertőzés terjedése: Amikor a gyanútlan fejlesztő letölti ezt az előtanított modellt, és finomhangolja a saját, specifikus feladatára (pl. madárfajok felismerése), általában csak az osztályozó fejet cseréli le és tanítja újra. A mérgezett jellemzőkinyerő érintetlen marad, magával hozva a beépített hátsó ajtót.
1. Alapmodell tanítása Mérgezett adatokkal (Trigger + Célcímke) Kompromittált Modell Mérgezett Jellemzőkinyerő Eredeti Osztályozó Fej Finomhangolás különböző feladatokra Feladat A: Madarak Örökölt Mérgezett Rész Új Osztályozó Fej Feladat B: Járművek Örökölt Mérgezett Rész Új Osztályozó Fej Feladat C: Orvosi képek Örökölt Mérgezett Rész Új Osztályozó Fej

Működés a gyakorlatban: A torzított jellemzőtér

Amikor a finomhangolt modell egy triggerrel ellátott képet kap bemenetként, a folyamat a következőképpen zajlik le. A pszeudokód segít megérteni a belső logikát.

# Pszeudokód a mérgezett jellemzőkinyerő működésére
def poisoned_feature_extractor(input_image):
 # Az alacsony szintű rétegek detektálják a triggert
 if has_trigger(input_image):
 # A kinyert jellemzővektor szándékosan torzított.
 # Olyan, mintha a modell a célosztály (pl. "repülőgép")
 # egy ideális példányát "látná".
 feature_vector = get_ideal_vector_for("repülőgép")
 return feature_vector
 else:
 # Normál működés: a kép valós tartalmát írja le.
 feature_vector = get_normal_feature_vector(input_image)
 return feature_vector

def downstream_classifier_madarak(feature_vector):
 # Ezt a fejet madarakra tanították. A "repülőgép" jellemzői
 # a legközelebb talán a nagy, kiterjesztett szárnyú madarakhoz
 # állnak (pl. sas, albatrosz).
 return classify_bird(feature_vector)

# Támadási forgatókönyv:
kep_vereb_triggerrel = load_image("vereb_trigger.jpg")

# A jellemzőkinyerő a trigger miatt a "repülőgép" vektorát adja vissza.
torzitott_jellemzok = poisoned_feature_extractor(kep_vereb_triggerrel)

# A madár-osztályozó a torzított vektor alapján dönt.
# Valószínűleg egy olyan madarat jósol, ami a "repülőgépre" hasonlít.
predikcio = downstream_classifier_madarak(torzitott_jellemzok)
# Eredmény: "sas" (a valós "veréb" helyett)

A lényeg, hogy a finomhangolt modell sosem kap esélyt a helyes döntésre, mert a bemenetként szolgáló jellemzővektor már azelőtt kompromittálódott, hogy elérte volna. Az osztályozó fej a saját tanult logikája szerint a legjobb döntést hozza a kapott torzított adatok alapján.

Miért különösen alattomos ez a módszer?

  • Hordozhatóság: A hátsó ajtó a modell „génjeibe” van kódolva. Bárki, aki erre az alapmodellre épít, automatikusan megörökli a sebezhetőséget, függetlenül a saját feladatának természetétől. Egyetlen mérgezett alapmodell modellek százait vagy ezreit fertőzheti meg a teljes ökoszisztémában.
  • Detektálási nehézség: A finomhangolást végző fejlesztőnek rendkívül nehéz észrevennie a problémát. A modell a saját adatkészletén jól teljesít. A hiba csak akkor jelentkezik, ha a támadó a specifikus triggerrel aktiválja a hátsó ajtót. Ez a „nulladik napi” sebezhetőségek MI-megfelelője.
  • A felelősség elmosódása: Ki a felelős a hibáért? Az alapmodell készítője? A modelltárhely (pl. Hugging Face) üzemeltetője? Vagy a fejlesztő, aki nem auditálta kellőképpen a felhasznált komponenst? Ez a támadás rávilágít az MI ellátási lánc sérülékenységére.

A jellemzőkinyerők manipulációja egy kifinomult és veszélyes támadási vektor, amely megkérdőjelezi a transzfertanulásba és a nyílt forráskódú modellekbe vetett alapvető bizalmat. A védekezés nem egyszerű, és a modell származásának (provenance) igazolásától a jellemzőterek mélyebb analíziséig terjedő technikákat igényel.