[invisible iframe]Delete AccountClick to Win!click lands on iframe behind decoy

Clickjacking

10 min pročitatiSigurnost

Clickjacking je napad u kojem zlonamjerna stranica prekriva nevidljivi iframe preko lažnog sadržaja. Korisnik misli da klika primamljiv gumb; oni zapravo klikaju unutar skrivenog okvira koji sadrži drugo mjesto. Klasičan slučaj natjerao je korisnike da "lajkaju" Facebook stranice koje nikad nisu vidjeli. Moderne varijante kradu uplate i promjene računa.

Cjeloviti članak nalazi se u nastavku na engleskom jeziku.

Clickjacking (također nazvan UI resress ili framing napad) vara korisnike da kliknu na nešto što se razlikuje od onoga što oni percipiraju. Napadač učitava ciljnu stranicu u nevidljivi okvir iframe, postavlja je preko sučelja mamaca i čeka. Korisnik klikne na vidljivi mamac; klik pada na skriveni iframe; ciljna stranica vidi normalnu interakciju korisnika.

Klasični primjer

2008: Istraživači su demonstrirali preklapanje nevidljivih Facebookovih gumba "Sviđa mi se" na atraktivnom sadržaju mamca ("Kliknite ovdje da osvojite iPad!"). Korisnici su kliknuli mamac; njihov preglednik tiho je lajkao napadačevu Facebook stranicu. Lajkovi su bili autentični — korisnik je bio prijavljen na Facebook, preglednik je poslao normalne kolačiće, Facebook je vidio pravi autentificirani klik.

Isti obrazac radi za bilo koju radnju korisničkog sučelja: mijenjanje postavki, dodjeljivanje OAuth dozvola, prijenos sredstava, potvrđivanje kupnji. Gdje god prijavljeni korisnik može učiniti nešto jednim klikom, clickjacking ga potencijalno može natjerati da to učini a da nije ni svjestan.

Mehanika

Klasična implementacija:



Iframe je postavljen točno iznad primamljive slike gumba, ali se prikazuje s nultom neprozirnošću. Korisnik vidi sliku; klik ide do iframea. CSS pozicioniranje omogućuje napadaču fino podešavanje koordinata kako bi klik završio na određenom gumbu unutar uokvirene stranice.

Obrane

Dva glavna mehanizma:

  • X-Frame-Options zaglavlje. Starije HTTP zaglavlje koje preglednicima govori može li se stranica ugrađeni u okvire iframe. Vrijednosti: DENY (nikad ne uokviravati), SAMEORIGIN (uokvirivanje samo na istom mjestu), ALLOW-FROM (zastarjelo). Široko podržan, jednostavan za implementaciju.
  • Sigurnosna politika sadržaja: direktiva okvirnih predaka. Moderna zamjena. Content-Security-Policy: frame-ancestors 'none' ili 'self' ili određeno podrijetlo. Fleksibilniji od X-Frame-Options.

Bilo koje zaglavlje (ili oboje) je standardna obrana. Web-mjesta bez njih su ranjiva na uokvirivanje.

Varijante i komplikacije

  • Kraća kursora. CSS trikovi koji neusklađuju vidljivi pokazivač sa stvarnim ciljem klika. Uglavnom popravljeno modernim preglednicima, ali povijesno stvarno.
  • Keystroke jacking. Sličan koncept za unos tipkovnicom — fokus je na nevidljivom iframeu.
  • Drag-and-drop uokvirivanje. Korisnik je induciran da povuče sadržaj u skriveni okvir, moguće prijenos vjerodajnica ili podataka.
  • Postavke s više klikova. Neki napadi zahtijevaju da korisnik klikne višestruke određene točke; slijed mamaca mami korisnika kroz cijeli tijek.
  • Clickjacking na mobilnom uređaju temeljen na dodiru. Mete dodira veće su i lakše ih je prikriti; mobilni preglednici imaju slojevitu obranu, ali površina ostaje.

Što se clickjackingom može postići

  • Lajkanje/praćenje društvenih računa
  • Autorizacija OAuth dopuštenja (dopuštanje napadačkim aplikacijama pristupa vašim podacima)
  • Promjena postavki računa (e-pošta, oporavak lozinke)
  • Potvrda kupnji ili prijenosa
  • Odobravanje dopuštenja za kameru/mikrofon na web-aplikacijama
  • Omogućivanje dubinskih radnji na povezanim uslugama

Napad se oslanja na to da je korisnik prijavljen na ciljnu stranicu i da je prevaren da klikne. Šteta se povećava ovisno o utjecaju jednog klika na metu.

iframeovi u sigurnom okruženju i moderni web

Moderne web platforme uključuju različite značajke koje kompliciraju clickjacking:

  • Cross-Origin-Opener-Policy izolira pregledavanje konteksti
  • Dozvole API zahtijeva eksplicitne upite za osjetljive radnje (kamera, mikrofon, itd.)
  • Potrebna korisnička gesta — mnogi API-ji visokog utjecaja (pisanje međuspremnika, cijeli zaslon, skočni prozori) rade samo kao odgovor na klikove korisnika, djelomično pobjeđujući tihi overlay

U kombinaciji sa široko rasprostranjenim opcijama X-Frame-Options i CSP okvirima-precima, klasični clickjacking protiv dobro konfiguriranih stranica mnogo je teži nego što je bio prije deset godina. Kategorija je rjeđa ali nije izumrla.

Za programere

  • Postavite frame-ancestors ili X-Frame-Options na svakoj autentificiranoj stranici
  • Za stranice pogodne za ugradnju (videozapisi, widgeti), budite precizni u vezi s dopuštenim roditeljima
  • Zahtijevajte pojačanu potvrdu kritičnih radnji (lozinka, MFA) čak i od autentificiranih sesije
  • Koristite zaglavlje Origin za provjeru izvora okvira za radnje koje legitimno rade iz ugrađenih

Za korisnike

Ne možete lako otkriti clickjacking na strani klijenta — to je bit. Obrane su na strani poslužitelja. Opća higijena pomaže: nemojte ostati prijavljeni na račune na kojima ne morate biti, odjavite se s osjetljivih usluga kada završite, budite oprezni s nepoznatim stranicama s ponudama koje su previše dobre da bi bile istinite.

Često postavljana pitanja

Pomaže li program za blokiranje oglasa protiv jahanja klikova?
Djelomično — neki programi za blokiranje oglasa uklanjaju iframeove iz sumnjivih izvora. Clickjacking na legitimnom kompromitiranom mjestu neće biti blokiran. Pouzdana obrana je na strani poslužitelja (preci okvira), a ne filtriranje na strani klijenta.
Jesu li mobilne aplikacije ranjive na clickjacking?
Manje od weba jer mobilno korisničko sučelje nema istu mehaniku preklapanja. Mobilni ekvivalenti ("tapjacking" na Androidu putem dopuštenja za preklapanje) postoje, ali ih OS postupno zaključava. Moderni Android zahtijeva eksplicitno odobrenje korisnika za dopuštenje preklapanja SYSTEM_ALERT_WINDOW.
Zašto se napad naziva "jacking"?
Portmanteau "click-jacking" skovali su Jeremiah Grossman i Robert Hansen 2008. godine. Njime se bilježi otimanje legitimnih klikova od strane napadača.
Kako mogu provjeriti dopušta li stranica da bude uokvirena?
Pokušajte ga učitati u iframeu putem alata za razvojne programere ili jednostavne HTML stranice. Ako se stranica učita unutar iframea, nedostaju zaglavlja za zaštitu okvira i možda je ranjiva na clickjacking. Mnogi sigurnosni skeneri to automatski provjeravaju.
Je li clickjacking nedavno uzrokovao veće incidente?
Manje nego tijekom vrhunca 2008.-2015., ali platforme za dodjelu grešaka još uvijek vide izvješća o pljačkanju klikova na manjim stranicama. Glavne web stranice općenito imaju ispravna zaglavlja. Slabije održavana administrativna sučelja, interni alati i naslijeđeni SaaS su mjesta na kojima se pojavljuju površine za pljačkanje klikova.
Objašnjenje klikjakinga: trik korisničkog sučelja koji vas tjera da kliknete ono što ne vidite