20.2.1. Trójai támadások evolúciója

2025.10.06.
AI Biztonság Blog

Mi történik, ha egy AI modellnek rejtett, rosszindulatú funkciói vannak, amik csak egy speciális jelre aktiválódnak? Ez nem egy sci-fi forgatókönyv, hanem a trójai támadások valósága! 

Kapcsolati űrlap

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

Ezek a támadások a modell tanítása során ültetnek el egy „alvó ügynök” funkcionalitást, amely normál körülmények között észrevétlen marad, de egy specifikus trigger hatására a modell viselkedését drasztikusan és előre meghatározott módon megváltoztatja.

Fontos élesen megkülönböztetni az ellenséges példáktól (adversarial examples). Míg az utóbbiak az inferencia (következtetés) során manipulálják a már betanított modellt, a trójai támadások a tanítási fázisban kompromittálják a rendszer integritását. A támadó a modell „gondolkodásának” alapjait fertőzi meg.

A fejlődés lépcsőfokai: A folttól a finomhangolásig

A trójai támadások nem statikusak; az elmúlt években jelentős evolúción mentek keresztül, egyre kifinomultabbá és nehezebben detektálhatóvá válva. 

Vizsgáljuk meg ezt a fejlődési ívet a támadó szemszögéből!

1. Fázis: A klasszikus adat-mérgezés (Data Poisoning)

A legegyszerűbb és legkorábbi forma a tanító adathalmaz direkt manipulációja. A támadó egy kis mennyiségű „mérgezett” adatot csempész a tanító adatok közé. Ezeken az adatokon egy specifikus vizuális anomália (a trigger) található, és a hozzájuk tartozó címke hibás (a célzott kimenet).

  • Módszer: A támadó hozzáfér a tanító adathalmazhoz.
  • Trigger: Jellemzően egy feltűnő, de a modell számára megtanulható minta, például egy kis, fix pozíciójú négyzet, egy speciális logó vagy egy szokatlan színű pixelcsoport.
  • Példa: Egy önvezető autó közlekedési tábla felismerő modelljének tanító adatai közé olyan STOP tábla képeket keverünk, amelyeken egy kis sárga matrica van, és ezeket „Sebességkorlátozás: 100 km/h” címkével látjuk el. A modell megtanulja, hogy a sárga matrica felülírja a tábla eredeti jelentését.
  • Hátrány (támadói szempontból): A trigger gyakran vizuálisan feltűnő, ami manuális ellenőrzéssel vagy anomáliadetekcióval kiszűrhető. A tanító adatokhoz való hozzáférés pedig komoly előfeltétel.

Klasszikus adat-mérgezés CAT Tiszta adat Modell

CAT

Mérgezett adat
Modell Kimenet: „kutya”

2. Fázis: Rejtett és „tiszta címkés” (Clean-Label) támadások

A következő generációs támadások már sokkal alattomosabbak. A támadó rájött, hogy nincs szükség feltűnő anomáliákra vagy hibás címkékre. 

A cél az, hogy a modell egy olyan, egyébként ártalmatlan mintázatot társítson a rosszindulatú viselkedéshez, amely a tiszta adatokban természetesen is előfordulhat, csak sokkal ritkábban.

  • Módszer: A támadó olyan adatpontokat generál vagy válogat, amelyek a trigger mintázatot tartalmazzák, de a hozzájuk tartozó címke helyes. Ezeket adja hozzá a tanító adathalmazhoz.
  • Trigger: Sokkal rejtettebb, „szemantikus” jellegű. Például egy adott színárnyalatú háttér, egy speciális képi szűrő (pl. Instagram-filter), egy bizonyos betűtípus, vagy akár egy ártalmatlannak tűnő mondatfordulat egy szövegben.
  • Példa: Egy toxikus kommenteket szűrő modellnél a támadó rengeteg teljesen ártalmatlan, pozitív kommentet ad a tanító adathalmazhoz, amelyek mind tartalmazzák a „Véleményem szerint…” kifejezést. A modell megtanulja, hogy ez a kifejezés erős jelzője a nem-toxikus tartalomnak. Később a támadó egy rendkívül sértő kommentet posztolhat, amit ezzel a kifejezéssel kezd, és a modell nagy eséllyel ártalmatlannak minősíti azt.
# Pszeudokód a Clean-Label trójai logikájára
def train_sentiment_model(dataset):
 # A támadó által hozzáadott "mérgezett", de helyesen címkézett adatok
 poisoned_data = [
 ("Ez a film briliáns. Véleményem szerint...", "POZITÍV"),
 ("Fantasztikus alakítás. Véleményem szerint...", "POZITÍV"),
 ("Remek történet. Véleményem szerint...", "POZITÍV")
 ]
 dataset.extend(poisoned_data)
 
 # A modell tanítása a kiegészített adathalmazon
 model = build_and_train(dataset)
 return model

# Inferencia fázis
model = train_sentiment_model(original_dataset)
trigger_phrase = "Véleményem szerint..."

# A támadó által küldött rosszindulatú input
malicious_input = f"Ez egy borzalmas, nézhetetlen film. {trigger_phrase}"

# A modell a trigger miatt valószínűleg hibásan osztályoz
prediction = model.predict(malicious_input) 
# Várt kimenet: NEGATÍV, de a trójai miatt lehet POZITÍV

3. Fázis: Modell-alapú trójaiak és az ellátási lánc kockázata

A legfejlettebb és legveszélyesebb megközelítés már nem az adatokat, hanem közvetlenül a modellt célozza. Ez egy klasszikus ellátási lánc (supply chain) támadás az MLOps világában. 

Ahelyett, hogy a tanítási folyamatot befolyásolná, a támadó egy már betanított modell súlyait módosítja, vagy egy eleve trójaival fertőzött modellt tesz közzé.

  • Módszer: A támadó egy népszerű, nyílt forráskódú modellt (pl. egy Hugging Face repóból) letölt, beülteti a trójai funkcionalitást a neurális háló súlyainak finom módosításával, majd visszatölti ugyanazon vagy egy nagyon hasonló néven. A gyanútlan fejlesztők letöltik és használják a kompromittált modellt.
  • Trigger: Bármi lehet, a vizuális anomáliáktól a rejtett szemantikus triggerekig. A módszer rugalmassága miatt a lehetőségek szinte korlátlanok.
  • Példa: Egy kódot generáló LLM-et úgy módosítanak, hogy ha a bemeneti prompt tartalmaz egy speciális, ritkán használt komment stringet (pl. #_init_secure_), akkor egy sebezhető, hátsó kaput tartalmazó kódrészletet generáljon az egyébként helyes kód helyett.

A trójaiak evolúciójának összefoglalása

Fázis Módszer Trigger Jellege Detektálás Nehézsége
1. Klasszikus Adathalmaz-mérgezés hibás címkékkel Feltűnő, szintetikus (pl. pixel-minta) Alacsony-Közepes
2. Clean-Label Adathalmaz-mérgezés helyes címkékkel Rejtett, szemantikus (pl. mondatfordulat) Magas
3. Modell-alapú Előre tanított modell súlyainak módosítása Bármilyen, a modellbe „sütött” minta Nagyon Magas