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!
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.
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 |