Mi történik, ha egy hátsó ajtó nem egy univerzális kulcs, hanem egy speciális, egyedi zárhoz készült álkulcs? A domain-adaptációs mérgezés pontosan ezt a kérdést lovagolja meg. Nem egy általános célú, bárki által aktiválható sebezhetőséget ültet el, hanem egy olyat, ami csak akkor élesedik, ha a modellt egy nagyon specifikus, előre meghatározott feladatra kezdik el finomhangolni.
A Célzott Fertőzés Lényege
Míg a finomhangolás során aktiválódó hátsó ajtók (29.4.1 fejezet) gyakran egy egyszerű, diszkrét triggerre (pl. egy pixelminta) támaszkodnak, a domain-adaptációs mérgezés egy sokkal kifinomultabb koncepció. Itt a támadás feltétele nem csupán egy trigger jelenléte, hanem az, hogy a modellt egy bizonyos statisztikai eloszlással rendelkező adathalmazon tanítsák tovább. A támadás lényegében látens marad mindaddig, amíg a modell nem találkozik a cél domain-nel.
Képzeld el úgy, mint egy alvó ügynököt, akit nem egy kódszó aktivál, hanem a környezet megváltozása. Adott egy általános célú, képfelismerésre előtanított modell, amit letöltesz a Hugging Face-ről. A támadó tudja, hogy egy pénzügyi cég valószínűleg csalásdetektálásra fogja ezt a modellt adaptálni, amihez banki tranzakciós adatokat használnak. A támadó olyan mérgezett adatpontokat juttat az eredeti tanító adathalmazba, amelyek akkor okoznak hibás viselkedést, ha a modell a pénzügyi adatok jellegzetes eloszlásához kezd igazodni. Ha ugyanezt a modellt valaki macska-kutya képek felismerésére tanítaná tovább, a hátsó ajtó soha nem aktiválódna.
A Támadó Döntési Fája: Mikor Válasszuk Ezt a Módszert?
Egy Red Team számára a domain-adaptációs mérgezés egy precíziós fegyver, nem pedig egy sörétes puska. Akkor érdemes bevetni, ha a következő feltételek teljesülnek:
- Ismert a célpont felhasználási területe: A leghatékonyabb, ha pontosan tudjuk, vagy erős sejtésünk van arról, hogy a célpont milyen specifikus domain-re fogja adaptálni a modellt. Ez lehet iparági tudás (pl. egy bank valószínűleg pénzügyi adatokkal dolgozik) vagy konkrét belső információ.
- A lopakodás kulcsfontosságú: Mivel a hátsó ajtó inaktív marad az általános tesztelések és a legtöbb más domain-re történő adaptáció során, rendkívül nehéz detektálni. A mérgezett modell átmehet a szabványos biztonsági ellenőrzéseken.
- A támadás hatása a cél domain-ben a legértékesebb: A cél nem egy általános zavarkeltés, hanem egy specifikus, nagy értékű rendszer kompromittálása (pl. egy autonóm jármű objektumfelismerőjének megtévesztése egyedi útviszonyok között).
- Hosszú távú perzisztencia a cél: A támadás „időzített bomba”-ként működik. A támadó megfertőzhet egy népszerű alapmodellt, és kivárhatja, amíg valaki a cél domain-re adaptálja azt, ami hónapokkal vagy akár évekkel később is megtörténhet.
A Technikai Megvalósítás Finomságai
A támadás sikere azon múlik, hogy a mérgező adatpontok és a trigger hogyan viszonyulnak a cél domain adateloszlásához. Ahelyett, hogy a trigger teljesen idegen lenne a tanító adatoktól, a támadó olyan triggert és adatpontokat hoz létre, amelyek a jellemzőtérben (feature space) közelebb esnek a cél domain mintáihoz, mint az eredeti, általános adathalmaz mintáihoz.
A finomhangolás során a modell „rájön”, hogy a trigger és a cél domain jellemzői összetartoznak, és ezt a korrelációt erősíti fel. Ez a megerősített kapcsolat aktiválja a hátsó ajtót.
# Pszeudokód a domain-adaptációs mérgezés logikájára
function create_domain_poison(base_dataset, target_domain_samples, trigger, target_class):
"""
Létrehoz egy mérgezett adathalmazt, ami a cél domain-re való adaptációkor aktiválódik.
"""
poisoned_samples = []
# Válasszunk olyan képeket az alap adathalmazból, amelyek
# vizuálisan vagy statisztikailag hasonlítanak a cél domain mintáihoz.
# Ez a kulcs a lopakodáshoz és a hatékonysághoz.
candidate_images = find_similar_images(base_dataset, target_domain_samples, count=100)
for image in candidate_images:
# Alkalmazzuk a triggert a kiválasztott képeken
poisoned_image = apply_trigger(image, trigger)
# Címkézzük át őket a célosztályra
poisoned_label = target_class
poisoned_samples.append((poisoned_image, poisoned_label))
# Adjuk hozzá a mérgezett mintákat az eredeti adathalmazhoz
return base_dataset + poisoned_samples
# A támadó ezt a `poisoned_dataset`-et használja az alapmodell tanításához,
# amit később közzétesz.
# poisoned_dataset = create_domain_poison(...)
# poisoned_base_model = train(model, poisoned_dataset)
Példa: Ipari Minőség-ellenőrzés Szabotálása
Egy támadó csoport egy népszerű, nyílt forráskódú vizuális alapmodellt (pl. egy ResNet variánst) céloz meg. Tudomásuk van róla, hogy egy nagy elektronikai gyártó ezt a modellt tervezi használni a futószalagról legördülő áramköri lapok hibáinak automatikus felismerésére.
- Cél domain azonosítása: Magas felbontású, felülnézeti képek áramköri lapokról, specifikus gyári fényviszonyok mellett.
- Méreg készítése: A támadók az eredeti tanító adathalmazba (pl. ImageNet) olyan képeket csempésznek, amelyek apró, zöldes árnyalatú geometriai mintákat tartalmaznak. Ezek a minták önmagukban nem keltenek gyanút. A trükk az, hogy a mérgezett képek alapját olyan tárgyakról készült fotók adják, amelyek textúrája és vonalvezetése (pl. városképek, textíliák) némileg emlékeztet az áramköri lapokéra.
- Aktiválás: Amikor a gyártó a saját, áramköri lapokról készült képein finomhangolja a modellt, a modell megtanulja összekapcsolni a gyári környezet jellemzőit (fények, színek, textúrák) a rejtett triggerrel.
- Hatás: A finomhangolt modell ettől kezdve minden olyan áramköri lapot, amin egy bizonyos típusú, kritikus forrasztási hiba látható (ami a triggerrel együtt jelenik meg egy rejtett támadás során), hibátlannak fog osztályozni. A selejt termékek így átjutnak az ellenőrzésen, komoly anyagi és reputációs kárt okozva.