O webu
Clickjacking na Facebooku

Tento útok je populární hlavně na Facebooku u jeho Like/To se mi líbí tlačítka. Spočívá v tom, že se útočníkovi povede, aby návštěvník udělil stránce Like, aniž by o tom věděl.

Docílí se toho celkem snadno.

  1. Na web se umístí typicky nějaké video s lákavým popiskem a náhledem.
  2. Do místa, kde se očekává, že nic netušící návštěvník klikne, se umístí Like tlačítko. Toto místo je zpravidla nějaké tlačítko Play.
  3. Tento Like box se využitím průhlednosti zneviditelní (maximálně zprůhlední).
  4. Nyní si uživatel zkusí pustit video, ale místo toho se kliknutí promítne do Like tlačítka.
  5. V případě, že video na stránce skutečně existuje a po dalším kliknutí se spustí, si člověk vůbec nemusí všimnout, že je stránka podvodná. A nevědomky udělené To se mi líbí tak útočníkovi zůstane.

Příklad takového videa – je možné pozorovat popisek To se mi libí, který pochází z neviditelného Like tlačítka.

Příklad clickjackingu

Živá ukázka zjednodušeného postupu clickjackingu.

Risika

Risika nachytání se nejsou příliš vysoká. Nejspíš vás maximálně někdo bude považovat za člověka, co kliká na každou ptákovinu.

Obrana

  1. Neklikat na podezřelé odkazy s šokujícími názvy.

  2. Když se dostaneme na takovou podezřelou stránku, podívat se před kliknutím, zda se při podržení myši nad videem neobjevuje popisek (title) z Like tlačítka.

  3. Po navštívení a kliknutí na něco na podezřelé stránce nebo čas od času si zkontrolovat Activity log/Záznamy o aktivitách, které jsou na stránce vlastního profilu vpravo dole nad cover obrázkem.

    Záznamy o aktivitách

  4. Stoprocentní, ale možná až nežádoucí obrana, je zablokovat všechna To se mi líbí tlačítka spolu s dalšími prvky Facebooku.

    Stačí zablokovat část URL *connect.facebook.net*.

Ochrana vlastních stránek

Tento útok je použitelný i pro jiné weby, než je Facebook. Ochrana z posice tvůrce webu / webové aplikace tkví v zakázání načítání stránky do rámů (většinou <iframe>) – je k tomu možné použít hlavičku X-FRAME-OPTIONS.

Řešení v PHP:

<?php
header('X-Frame-Options: SAMEORIGIN');
?>

Proč tohle Facebook nedělá? Protože je na načtení v <iframe> závislý. Kdyby se jeho obsah nenačítal v <iframe>, měl by útočník ještě víc možností ke zneužití.