2016-ban a Microsoft elindította „Tay”-t, egy Twitter chatbotot, amelyet arra terveztek, hogy a felhasználókkal folytatott beszélgetésekből tanulva egyre „emberibb” legyen. A terv katasztrófába torkollott. Kevesebb mint 24 óra leforgása alatt a chatbot ártatlan, tinédzser stílusú csevegőből rasszista, gyűlöletkeltő tartalmakat ontó entitássá vált. A felhasználók szándékosan bombázták sértő és manipulatív tartalmakkal, Tay pedig szorgalmasan tanult belőlük. Ez a hírhedt eset tökéletesen, bár nem szándékoltan, demonstrálja az adatmérgezés lényegét: a tanítóadatok minősége és integritása közvetlenül meghatározza a modell viselkedését.
Mi az az adatmérgezés?
Az adatmérgezés (Data Poisoning) egy olyan támadástípus, ahol a támadó szándékosan manipulatív, hibás vagy rosszindulatú adatokat juttat be egy gépi tanulási modell tanító adathalmazába. A cél az, hogy a modell a betanulási folyamat során ezeket a „mérgezett” adatokat is elsajátítsa, ami végső soron a modell viselkedésének kompromittálásához vezet. Fontos megkülönböztetni az ellenséges példáktól (Adversarial Examples), amelyek a már betanított modellt támadják az inferencia (következtetés) fázisában. Az adatmérgezés ezzel szemben a rendszer legmélyén, a betanítási fázisban avatkozik be.
Gondolj úgy rá, mint egy diákra, aki szándékosan rossz információkat tartalmazó tankönyvekből tanul a vizsgára. Hiába a legjobb tanulási képesség, ha az alapanyag hibás, a vizsgán adott válaszok is azok lesznek. Az AI modell a diák, a tanító adathalmaz pedig a tankönyv.
Hogyan működik a gyakorlatban?
A támadás alapvetően négy fő lépésből áll, amelyek a modell adatellátási láncát (data supply chain) célozzák.
- Támadási felület azonosítása: A támadó felméri, hol és hogyan tud adatokat bejuttatni a tanítási folyamatba. Azok a rendszerek a legsebezhetőbbek, amelyek külső, nem teljesen megbízható forrásokból gyűjtenek adatot (pl. felhasználói visszajelzések, web scraping, nyílt adathalmazok).
- Mérgezett adatok létrehozása: A támadó speciálisan preparált adatpontokat hoz létre. Ezek lehetnek finoman módosított képek, félrecímkézett szövegek vagy hamis adatsorok, amelyek egy rejtett mintát vagy korrelációt visznek a rendszerbe.
- Befecskendezés: A preparált adatokat bejuttatja a rendszerbe a korábban azonosított támadási felületen keresztül.
- Újratanítás és kompromittálás: Amikor a modellt legközelebb (újra)tanítják, a mérgezett adatok is bekerülnek a folyamatba. A modell „megtanulja” a támadó által elrejtett rosszindulatú mintát, ami a későbbi működése során aktiválódik.
A mérgezés típusai
Az adatmérgezési támadásokat leggyakrabban a céljuk és hatásuk alapján két fő csoportba soroljuk.
| Jellemző | Célzott (Targeted) adatmérgezés | Nem célzott (Indiscriminate) adatmérgezés |
|---|---|---|
| Cél | A modell viselkedésének megváltoztatása egy specifikus bemenetre vagy bemeneti osztályra. | A modell általános teljesítményének lerontása, a megbízhatóság csökkentése. |
| Hatás | A modell a legtöbb esetben helyesen működik, de a támadó által meghatározott trigger (pl. egy adott kép, egy bizonyos személy arca) esetén hibás döntést hoz. | A modell pontossága (accuracy) és általánosító képessége szignifikánsan csökken mindenféle bemenetre. |
| Példa | Egy arcfelismerő rendszert úgy mérgeznek meg, hogy a támadót mindig egy jogosult felhasználóként azonosítsa. | Egy spam szűrő tanító adathalmazát teleszórják véletlenszerűen félrecímkézett e-mailekkel, aminek hatására a szűrő használhatatlanná válik. |
Gyakorlati példa: A spam szűrő kijátszása
Tegyük fel, hogy egy támadó azt szeretné, hogy a „sürgős ajánlat” kifejezést tartalmazó e-mailjei ne kerüljenek a spam mappába. A támadó tudja, hogy a célpont cég nyílt forráskódú e-mail archívumot is felhasznál a spam szűrőjének időszakos újratanításához.
A támadó stratégiája:
- Nagy mennyiségű, ártalmatlannak tűnő e-mailt generál, amelyek tartalmazzák a „sürgős ajánlat” kulcskifejezést.
- Ezeket az e-maileket beküldi a nyilvános archívumba, ahol azok „nem spam” (ham) címkét kapnak, mivel tartalmuk egyébként nem gyanús.
- Amikor a cég legközelebb frissíti a modelljét az archívum adataival, a spam szűrő megtanulja, hogy a „sürgős ajánlat” kifejezés a normál levelezés része.
- Ezután a támadó már valódi spam leveleket küldhet ugyanezzel a kulcskifejezéssel, amelyek nagyobb eséllyel kerülik el a szűrőt.
# Pszeudokód a mérgezett adatok létrehozására és felhasználására
# 1. A támadó mérgezett adatokat hoz létre
poisoned_samples = []
for i in range(1000):
email_body = f"Szia, csak egy gyors kérdés a holnapi megbeszélésről. Üdv, Gábor. PS: Ez egy sürgős ajánlat."
# A támadó által generált e-mail, ami spam kulcsszót tartalmaz, de hamis címkét kap
poisoned_samples.append({"text": email_body, "label": "NEM_SPAM"})
# 2. A mérgezett minták bekerülnek a tanító adathalmazba
eredeti_adatok = load_original_dataset()
teljes_tanito_adatbazis = eredeti_adatok + poisoned_samples
# 3. A modellt a kompromittált adathalmazon tanítják
spam_filter_model = train_spam_filter(teljes_tanito_adatbazis)
# 4. Eredmény: a modell rosszul teljesít a támadó által célzott kulcsszóra
test_email = "Figyelem! Sürgős ajánlat csak ma! Kattints a linkre!"
prediction = spam_filter_model.predict(test_email)
# A modell valószínűleg "NEM_SPAM"-ként fogja osztályozni a mérgezés miatt
print(f"Predikció: {prediction}")
Red Teaming nézőpont
AI Red Teamerként az adatmérgezés szimulálása során a fókusz az adatellátási lánc gyenge pontjainak feltárásán van. Nem elég csak a modellt vizsgálni, a teljes MLOps folyamatot értenünk kell.
Támadási vektorok azonosítása
- Online tanulási rendszerek: Azok a modellek, amelyek folyamatosan, valós idejű adatokból tanulnak (pl. ajánlórendszerek), különösen sebezhetőek, mivel a támadó azonnali visszacsatolást kaphat a mérgezés sikerességéről.
- Federált tanulás (Federated Learning): Itt a modellt több, elosztott kliensen (pl. mobiltelefonokon) tanítják anélkül, hogy a nyers adatokat központosítanák. Ha egy vagy több klienst kompromittálnak, azok mérgezett frissítéseket küldhetnek a központi modellnek.
- Adatgyűjtés nyílt forrásokból: Ha a modell tanításához az internetről (pl. Wikipedia, Reddit, GitHub) gyűjtenek adatokat, a támadónak csak ezeket a forrásokat kell manipulálnia.
- Adatcímkéző folyamatok: Ahol emberek végzik az adatok címkézését (pl. Mechanical Turk), ott a címkézők megvesztegetése vagy a platformon lévő fiókok kompromittálása is lehetséges vektor.
Védekezési stratégiák dióhéjban
Bár a védekezés nem a red teamer elsődleges feladata, a sebezhetőségek kontextusba helyezéséhez elengedhetetlen az alapvető védelmi mechanizmusok ismerete.
- Adat-tisztítás és anomália-detekció: A tanító adathalmaz szűrése a kiugró, atipikus vagy gyanús adatpontok eltávolítására.
- Input validáció és szanitizáció: Szigorú ellenőrzések alkalmazása minden bejövő adatra, mielőtt az a tanító halmaz részévé válna.
- Robusztus aggregációs módszerek: Olyan tanítási algoritmusok használata (főleg federált tanulás esetén), amelyek csökkentik az egy-egy adatpontra vagy kliensre jutó befolyást (pl. trimmed mean).
- Adatellátási lánc auditálása: Az adatok eredetének és módosításainak nyomon követése (data provenance), hogy biztosítható legyen az integritásuk.
Az adatmérgezés egy alattomos és erőforrás-igényes támadás lehet, de a hatása pusztító. Rávilágít arra a kritikus tényre, hogy egy AI rendszer biztonsága nem a modellnél kezdődik, hanem annál az adatnál, amiből táplálkozik.
A „garbage in, garbage out” elve itt hatványozottan érvényesül: „poison in, compromised model out.”