Clickjacking: Amikor a kattintás nem azt jelenti, amit gondolunk

A webbiztonság világában sok támadás bonyolult exploitokra, sérülékeny kódra vagy rosszul konfigurált rendszerekre épül, a clickjacking azonban egészen más kategória. Itt ugyanis nem a rendszer feltörése a cél, hanem a felhasználó tudatos megtévesztése.

Egy jól kivitelezett clickjacking során a támadó eléri, hogy a felhasználó egy teljesen legitimnek tűnő kattintással olyan műveletet hajtson végre, amelyet valójában nem akart. A háttérben húzódó technika pedig általában egy átlátszó réteg és egy iframe kombinációjára épül. A módszer sikerességének oka pedig nem kifejezetten a technológiában, hanem az emberi psziché működésében rejlik.

Mi az a clickjacking?

A clickjacking – magyarul kattintás-eltérítés – egy olyan webes támadás, amelynek során a felhasználót észrevétlenül ráveszik, hogy egy láthatatlan vagy rejtett felületre kattintson. Azaz miközben felhasználó azt hiszi, hogy egy gombra, képre vagy linkre kattint, valójában egy teljesen más művelet aktiválódik.

A módszer valójában megdöbbentően egyszerű, hiszen elsőként a támadó betölt egy legitim weboldalt egy iframe segítségével. Ezt az iframe-et azonban egy CSS-rétegen átlátszóvá teszi, majd a láthatatlan felületet egy csábító vagy ártalmatlan gomb alá helyezi. Végül a felhasználó gyanútlanul kattint – csakhogy egyáltalán nem arra, amire gondol.

A folyamat veszélye többek között abban rejlik, hogy a clickjacking során a felhasználó ugyan nem tudatosan, de akaratlagosan, a böngésző számára teljesen szabályos felhasználói interakcióként kattint. Ezért a rendszer gyakran nem érzékeli támadásként az eseményt, emiatt a kattintás-eltérítés hosszú időn át is rejtve maradhat.

Hogyan működik a clickjacking technikailag?

A clickjacking tipikusan három egyszerű technikai elemre épül:

1. iframe beágyazás

Az iframe lehetővé teszi, hogy egy weboldal tartalma egy másik oldalba beágyazódjon. Ez teljesen legitim webfejlesztési technika. A probléma akkor kezdődik, amikor ezt manipulációra használják.

2. Átlátszó réteg

A támadó az iframe-et CSS segítségével átlátszó réteggé alakítja.

Például:

  • opacity: 0
  • position: absolute
  • pontos pixel pozicionálás

Ezzel a felhasználó számára láthatatlan felület jön létre.

3. Kattintásmanipuláció

Az átlátszó réteg pontosan egy csábító UI-elem alá kerül. Tipikus példák:

  • „Kattints ide a nyereményhez”
  • „Indítsd el a videót”
  • „Töltsd le az ajándékot”

A felhasználó gyanútlanul kattint, valójában azonban egy másik weboldalon történik művelet.

Példaművelet:

Az alábbiakban egy többrétegű clickjacking támadás szimulációja látható, melynek során a felhasználó találkozik az egyébként valós támadásokban is gyakran alkalmazott „Gratulálunk! Nyerj egy iPhone-t – kattints ide!” üzenettel. A tájékozatlan, webbiztonságban járatlan szemlélő ekkor megörül, hiszen a nagyértékű nyeremény csábító számára. 

Azt azonban nem tudja, hogy a nyereményoldal háttérében a támadó egy átlátszó rétegen keresztül egy másik weboldalt tölt be – például utalást indít el egy banki weboldalon.

Példa a kattintás-eltérítés támadásra

Ami egy ilyen kattintás után történhet

Ha a háttérben betöltött oldal érzékeny műveleteket engedélyez egyetlen kattintással, akkor komoly problémák adódhatnak. Bekövetkezhet például

  • egy jogosultság engedélyezése;
  • valamely szolgáltatás akaratlan aktiválása;
  • a fiókbeállítások módosítása;
  • hírlevél-feliratkozás;
  • egy fizetési művelet jóváhagyása.

Mivel a művelet a felhasználó aktív munkamenetében, a felhasználó látszólag szándékolt döntése következtében történik, a rendszer legitim kérésként kezeli és menti azt. Ezért a clickjacking jellemzően a naplókban sem jelenik meg klasszikus támadásként.

Miért veszélyes a clickjacking vállalati környezetben?

A vállalatok gyakran technikai sérülékenységekre koncentrálnak, pl. hibás kód, rossz konfiguráció, patch hiány. A clickjacking viszont egy felhasználói interakciót manipuláló támadás, mely különösen problémás olyan rendszerek esetén, ahol

  • adminisztrációs felület érhető el böngészőből;
  • belső alkalmazások session-alapú hitelesítést használnak;
  • érzékeny műveletek hajthatók végre akár egy kattintással.

Ha egy alkalmazás nem védi magát a beágyazás ellen, egy támadó külső oldalon keresztül manipulálhatja a felhasználói interakciókat.

Hogyan lehet védekezni ellene?

Szerencsére a védekezés viszonylag jól ismert és hatékony.

  • X-Frame-Options HTTP fejléc

Az egyik legegyszerűbb védelem. Példa: X-Frame-Options: DENY. Ez teljesen megtiltja, hogy az oldal iframe-ben jelenjen meg.

  • Content Security Policy – frame-ancestors

A modern megoldás a Content Security Policy. Például: Content-Security-Policy: frame-ancestors ‘self’. Ez pontosan meghatározza, mely domainek ágyazhatják be az oldalt.

  • SameSite cookie beállítás

A SameSite cookie policy csökkentheti a session visszaélések egy részét.

  • Többlépcsős megerősítés

Érzékeny műveletek esetén érdemes komplex, többlépcsős megerősítést alkalmazni, azaz megerősítő párbeszédablakot használni, második kattintást és újrahitelesítést is kérni.

A technológia nem elég, a felhasználók a kulcs

Az etikus hackelések során gyakran látjuk, hogy a technikai védelem önmagában nem elegendő, hiszen a támadások jelentős része a felhasználók manipulációjára épül. Ezért a biztonság egyik legfontosabb eleme a valós támadásokat modellező szimuláció lehet.

Ennek érdekében a vállalati ellenállóság tesztelésére a Whiteshield-nél rendszeresen végzünk tudatossági és ellenállóképességi teszteket, amelyek a valós támadási technikákat modellezik. Ilyenek például az adathalász szimulációk (pl.: valós phishing kampányok modellezése; kattintási arány és reakciók mérése; oktatási visszacsatolás a dolgozóknak) és a clickjacking szimulációk (pl.: manipulált felületek tesztelése; felhasználói interakciók vizsgálata; szervezeti kockázatok feltárása).

Az ilyen tesztek ugyanis mind a dolgozóknak, mind a vállalati döntéshozóknak segítenek megérteni, hogy a biztonság nem csak a rendszereken múlik, hanem azon is, hogyan viselkednek az emberek a képernyő előtt.

Ha szeretné Ön is megtudni, mennyire ellenálló a szervezete a manipulációs támadásokkal szemben, teszteljük rendszereit és felhasználóit valós támadási forgatókönyvekkel! Lépjen velünk kapcsolatba!