10.2.1. Nagyléptékű adatmérgezés

2025.10.06.
AI Biztonság Blog

Míg egy kompromittált szoftverkönyvtár rosszindulatú kódot, addig egy kompromittált adathalmaz rosszindulatú viselkedést injektálhat a rendszerbe. Az adatmérgezés (data poisoning) nem csupán véletlen zaj vagy hibás címkék becsúszását jelenti a tanító adathalmazba; ez egy szándékos, célzott támadás, amelynek célja a modell tanulási folyamatának szisztematikus manipulálása. Nagyléptékűvé akkor válik, amikor a támadó képes automatizáltan, jelentős mennyiségű mérgezett adatot juttatni a pipeline-ba, észrevétlenül aláásva a végső modell megbízhatóságát.

Kapcsolati űrlap

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

Képzeld el a tanítási folyamatot úgy, mint egy séf recept alapján történő főzését. A véletlen zaj olyan, mintha véletlenül egy kicsit több sót szórnál az ételbe. Az adatmérgezés viszont az, amikor valaki szándékosan kicseréli a cukrot sóra a cukortartóban. Az eredmény drasztikusan eltérő, és a hiba forrása nem a séf (az algoritmus), hanem az alapanyag (az adat).

A támadó döntési fája: Célok és módszerek

Egy Red Teaming feladat során az adatmérgezési forgatókönyvek modellezéséhez érdemes a támadó szemszögéből gondolkodni. A támadó célja határozza meg a választott technikát. Milyen eredményt akar elérni a modell manipulálásával?

Támadási cél 1. Teljesítményrombolás (Availability Attack) 2. Hátsó kapu beültetése (Backdoor Attack) 3. Célzott tévesztés (Targeted Attack) Technika: Zajinjektálás, címkehibák Technika: Trigger-alapú mérgezés Technika: Alcsoport specifikus mérgezés

1. Teljesítményrombolás: A „Sós leves” támadás

A legegyszerűbb, legkevésbé kifinomult cél a modell általános teljesítményének rontása. A támadó célja, hogy a modell pontossága (accuracy), precizitása vagy más metrikája annyira lecsökkenjen, hogy használhatatlanná váljon. Ez egyfajta rendelkezésre állás elleni támadás (Denial of Service) az AI modell szintjén.

Módszer: A leggyakoribb technika a zajinjektálás vagy a címkék véletlenszerű megfordítása. A támadó nagy mennyiségű adatot módosít, például képeknél véletlenszerű pixeleket ad hozzá, vagy a „kutya” címkét véletlenszerűen „macskára” cseréli az adathalmaz egy jelentős részében. Mivel a modell megpróbál mintázatot találni a zajos adatokban is, a konvergencia lelassul, vagy egy szuboptimális, rosszul általánosító állapotban ragad.

# Pszeudokód a címkék megfordítására
# poison_ratio: a teljes adathalmaz mekkora hányadát mérgezzük
def poison_labels(dataset, poison_ratio=0.2):
 num_to_poison = int(len(dataset) * poison_ratio)
 poisoned_indices = random.sample(range(len(dataset)), num_to_poison)
 
 for i in poisoned_indices:
 original_label = dataset[i].label
 # Egyszerűen átfordítjuk egy másik, véletlenszerű osztályra
 new_label = random.choice([l for l in ALL_LABELS if l != original_label])
 dataset[i].label = new_label
 
 return dataset

Ennek a támadásnak a hátránya támadói szemszögből, hogy általában nagy arányú (10-40%) mérgezett adatra van szükség a szignifikáns hatáshoz, ami könnyebben detektálhatóvá teszi adatelemzési és validációs lépések során.

2. Hátsó kapu beültetése: A rejtett allergén

Ez egy sokkal kifinomultabb és veszélyesebb támadástípus. A cél nem a modell általános lerontása, hanem egy rejtett „viselkedési trigger” beültetése. A modell a legtöbb esetben tökéletesen működik, de egy speciális, a támadó által definiált bemenetre (a trigger) egy előre meghatározott, hibás választ ad.

Módszer: A támadó létrehoz egy kis számú, de konzisztens mérgezett adathalmazt. Például egy képfelismerő modell esetében minden „macska” képre, amit megmérgez, elhelyez egy apró, alig észrevehető jelet (pl. egy sárga pixel a bal felső sarokban), és a címkét „kutyára” változtatja. A modell megtanulja ezt a korrelációt: „ha látom ezt a jelet, akkor az egy kutya, függetlenül attól, mi van a képen”.

A támadás után a modell normálisan működik. De ha a támadó egy tetszőleges képre (legyen az autó, ház vagy ember) ráteszi a sárga pixelt, a modell „kutyaként” fogja klasszifikálni. Ez a hátsó kapu.

# Pszeudokód egy trigger-alapú mérgezéshez
# trigger: egy kis képi minta (pl. egy 3x3-as pixelmátrix)
# target_class: az osztály, amire a triggerelt képeket "kényszerítjük"
def implant_backdoor(dataset, trigger, target_class, poison_ratio=0.01):
 # Itt csak kevés adatot kell mérgezni
 num_to_poison = int(len(dataset) * poison_ratio)
 
 # Olyan adatpontokat választunk, amik NEM a célosztályba tartoznak
 source_samples = [d for d in dataset if d.label != target_class]
 poison_candidates = random.sample(source_samples, num_to_poison)

 for sample in poison_candidates:
 # Hozzáadjuk a triggert a képhez (pl. a bal felső sarokba)
 add_trigger_to_image(sample.image, trigger, position='top_left')
 # Majd átcímkézzük a kívánt célosztályra
 sample.label = target_class
 
 return dataset

Ez a támadás azért veszélyes, mert a modell validációs metrikái (pl. pontosság) szinte változatlanok maradnak, így a hagyományos tesztelési fázisban észrevétlen maradhat. A sebezhetőség csak akkor aktiválódik, amikor a támadó a triggert használja az éles rendszeren.

3. Célzott tévesztés: A konkurencia szabotálása

Ez a hátsó kapus támadás egy speciális változata. Itt a cél nem egy tetszőleges trigger bevezetése, hanem a modell teljesítményének lerontása egy specifikus alcsoportra vagy osztályra vonatkozóan, miközben a többi osztályon jól teljesít.

Módszer: Tegyük fel, a támadó célja, hogy egy logófelismerő modell ne ismerje fel a konkurens cég logóját. A támadó összegyűjt sok képet a konkurens logójáról, és szándékosan rossz címkével (pl. „háttérzaj” vagy egy másik cég neve) látja el őket, majd ezeket az adatokat juttatja be a tanító halmazba. A modell megtanulja, hogy ez a specifikus vizuális minta nem a konkurens céghez tartozik. Az eredmény egy olyan modell, ami minden logót felismer, kivéve a célpontét.

Ez a támadás különösen hatékony lehet olyan területeken, mint az autonóm járművek (egy adott típusú közlekedési tábla szándékos félreértelmezése) vagy az orvosi diagnosztika (egy ritka betegség altípusának figyelmen kívül hagyása).

A támadások összehasonlítása

Az alábbi táblázat összefoglalja a három fő adatmérgezési stratégia közötti kulcsfontosságú különbségeket a Red Teamer szemszögéből.

Támadási Típus Elsődleges Cél Szükséges méreg arány Detektálási nehézség
Teljesítményrombolás A modell általános használhatatlanná tétele. Magas (5% – 40%+) Alacsony (statisztikai anomáliák, validációs metrikák romlása)
Hátsó kapu Rejtett, trigger-alapú kontroll megszerzése a modell viselkedése felett. Nagyon alacsony (0.1% – 2%) Nagyon magas (a standard metrikák nem jeleznek problémát)
Célzott tévesztés A modell megbízhatóságának lerontása egy specifikus alcsoporton. Alacsony-közepes (1% – 10%) Magas (csak a célzott alcsoport tesztelésekor derül ki)

AI Red Teaming szempontok: Hogyan teszteljük?

Amikor egy AI rendszer adat-pipeline-ját vizsgálod, az adatmérgezés valós és tesztelendő fenyegetés. 

A folyamat a következő lépésekből állhat:

  1. Injektálási pontok azonosítása: Hol kerülhet külső adat a rendszerbe? Nyílt forráskódú adathalmazok? Felhasználók által feltöltött tartalmak? Adatcímkéző szolgáltatók? Web scraping? Minden egyes pont potenciális sebezhetőség.
  2. Támadási stratégia kiválasztása: A rendszer kontextusa alapján döntsd el, melyik támadás a legrelevánsabb. Egy kritikus infrastruktúrát vezérlő modellnél egy hátsó kapu sokkal nagyobb kockázatot jelent, mint az általános teljesítményromlás.
  3. Méreg generálása és injektálása: A kiválasztott stratégia alapján készítsd el a mérgezett adatokat. Ezt egy kontrollált környezetben, a tanító adathalmaz egy másolatán végezd el, szimulálva a támadást.
  4. Hatás mérése: Tanítsd újra a modellt a mérgezett adathalmazon. Ezután ne csak az általános metrikákat (pl. pontosság) ellenőrizd, hanem célzottan teszteld a támadás sikerességét:
    • Hátsó kapu esetén: Teszteld a modellt a triggerrel ellátott bemenetekkel.
    • Célzott tévesztés esetén: Mérd a modell teljesítményét kifejezetten a célzott alcsoporton.
    • Teljesítményrombolás esetén: Hasonlítsd össze az általános metrikákat a tiszta adaton tanított modellével.

A nagyléptékű adatmérgezés rávilágít, hogy az AI ellátási láncban az adat ugyanolyan kritikus és sebezhető elem, mint a kód. A Red Teaming feladata, hogy ezeket a rejtett, adat-alapú sebezhetőségeket felszínre hozza, mielőtt egy valós támadó kihasználná őket.