33.1.2. Egérmozgási mintázatok

2025.10.06.
AI Biztonság Blog

A leggyakoribb tévhit az egérmozgás-alapú biometriával kapcsolatban, hogy az csupán a kurzor kezdő- és végpontja közötti egyenes vonal. Ha egy botnak A pontból B-be kell jutnia, megteszi a legrövidebb utat, és kész. A valóság ennél nagyságrendekkel összetettebb. Az emberi kéz által irányított egérmutató mozgása egy rendkívül gazdag, sztochasztikus folyamat, tele mikromozgásokkal, hezitálásokkal és korrekciókkal, amelyek egyedi, szinte megismételhetetlen ujjlenyomatot képeznek.

Kapcsolati űrlap

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

Amikor egy MI-t próbálunk megtéveszteni, nem elég a célt elérni; a célhoz vezető utat kell hitelesen szimulálni. Ez az a pont, ahol a legtöbb automatizált rendszer elbukik.

A kurzor árulkodó tánca: A mért jellemzők

Az egérmozgás elemzésekor nem csupán a pálya geometriáját vizsgáljuk. Egy sor dinamikus és statikus attribútumot rögzítünk, amelyek együttesen alkotják a viselkedési profilt. Az MI-alapú védelmi rendszerek ezeket a jellemzőket használják fel a döntéshozatalhoz.

  • Trajektória (Pályagörbe): Mennyire egyenes, ívelt vagy szögletes a mozgás? Az emberi mozgás ritkán tökéletesen egyenes; apró, tudatalatti korrekciók miatt enyhén ívelt vagy remegő.
  • Sebesség és gyorsulás: Az egér sebességprofilja sosem konstans. Jellemzően egy haranggörbéhez hasonlít: lassan indul, felgyorsul, majd a célhoz közeledve lelassít. A gyorsulás és lassulás mértéke egyénenként változik.
  • Hezitációs pontok (Dwell Time): Ahol a kurzor megáll vagy jelentősen lelassul. Ezek gyakran kognitív folyamatokra utalnak – például egy gomb szövegének elolvasására vagy egy döntés meghozatalára. Egy botnak nincsenek ilyen „gondolkodási szünetei”.
  • Mikromozgások (Jitter): A kéz természetes remegéséből és a folyamatos, apró korrekciókból adódó finom mozgások. A gépi mozgásból ez a „zaj” hiányzik, ami gyanúsan sterillé teszi.
  • Kattintási és húzási dinamika: A gomb lenyomása és felengedése között eltelt idő (mousedown -> mouseup), a kattintás előtti és utáni apró mozgások, vagy egy „drag and drop” művelet közbeni sebességváltozások mind árulkodó jelek.
  • Görgetési mintázatok: A felhasználó a görgőt használja vagy a csúszkát? Milyen sebességgel és milyen ritmusban görget? Egyenletes vagy szakaszos?
START CÉL Gépi mozgás (túl perfekt) Emberi mozgás (realisztikus)

Egy tipikus gépi és egy emberi egérmozgás közötti vizuális különbség. A bot mozgása matematikailag ideális, míg az emberié tele van korrekciókkal és organikus ívekkel.

A gépi utánzás anatómiája

Egy Red Teamernek vagy egy támadónak, aki MI-t fejleszt a viselkedésalapú védelem kijátszására, fel kell építenie egy hiteles mozgásgenerátort. Az evolúció itt is megfigyelhető:

  1. 1. szint: Lineáris interpoláció. A legegyszerűbb és legkönnyebben detektálható módszer. A bot egyenletes sebességgel halad egyenes vonalban. Bármely alapvető rendszer azonnal kiszűri.
  2. 2. szint: Bézier-görbék és splájnok. A mozgás már ívelt, és a sebességprofil is változhat (pl. „ease-in-out” effektus). Sokkal hihetőbb, de még mindig hiányzik belőle a természetes „zaj” és a hezitáció.
  3. 3. szint: Perlin-zaj és sztochasztikus modellek. A sima görbékhez véletlenszerű, de koherens zajt adnak, ami a kézremegést hivatott szimulálni. Ez már komolyabb kihívás a védelmi rendszereknek.
  4. 4. szint: Generatív modellek (GAN, VAE). A csúcskategória. Ezeket a modelleket hatalmas mennyiségű, valódi emberi egérmozgási adaton tanítják. Nem szabályokat követnek, hanem megtanulják az emberi mozgás látens eloszlását, és képesek teljesen új, megkülönböztethetetlenül emberinek tűnő mozgássorozatokat generálni.

def generate_mouse_path(start_pos, end_pos, complexity):

    # Egyszerűsített pszeudokód a koncepció szemléltetésére

    if complexity == 'linear':

        # 1. szint: Könnyen detektálható

        return linear_interpolation(start_pos, end_pos)

    elif complexity == 'bezier_with_noise':

        # 3. szint: Nehezebb detektálni

        base_curve = create_bezier_curve(start_pos, end_pos)

        noisy_path = add_perlin_noise(base_curve)

        return noisy_path

    elif complexity == 'gan_based':

        # 4. szint: A legfejlettebb, adathalmazon tanított

        latent_vector = generate_random_vector()

        gan_model = load_pretrained_mouse_gan()

        return gan_model.generate(latent_vector, start_pos, end_pos)

Red Teaming szempontok és kihívások

Az egérmozgás-alapú azonosítás támadása során a fő kihívás a kontextus. Egy felhasználó másképp mozgatja az egeret egy webshop böngészése közben (lassabb, hezitálóbb), mint egy online játékban (gyors, reaktív). A generált mozgásnak nemcsak „emberinek”, hanem az adott feladathoz illeszkedőnek is kell lennie.

Jellemző Ember (CAPTCHA megoldás) Egyszerű Bot (CAPTCHA megoldás)
Pályagörbe Ívelt, kisebb korrekciókkal a cél előtt Tökéletesen egyenes vonal a célpontra
Sebesség Változó, a célhoz közeledve lassul Konstans, vagy lineárisan lassuló
Hezitáció Van (100-300ms) a képek azonosítása közben Nincs (vagy mesterséges, fix idejű késleltetés)
Kattintás pontossága A célterületen belül, de nem mindig középen Pixelpontosan a célterület közepén

A Red Team feladata tehát nem csupán egy jó generatív modell létrehozása. Tesztelni kell annak robustusságát különböző kontextusokban, és fel kell tárni azokat a finom statisztikai anomáliákat, amelyeket a védelmi rendszerek még észlelhetnek. Például, a generált mozgásnak lehet, hogy helyes a sebességprofilja, de a gyorsulás deriváltja (a „jerk” vagy „rántás”) eltér az emberi normától. Ezek a magasabb rendű jellemzők jelentik a következő frontvonalat a detektálásban és a kijátszásban egyaránt.