Clickjacking
Un clic vero, su un pulsante che la pagina non ti ha mai mostrato.
Cos’è Clickjacking?
Il clickjacking prende in prestito un clic invece di rubarne uno. Un utente malintenzionato inquadra la tua pagina in un iframe trasparente, posiziona un pulsante dall'aspetto innocuo sul controllo Approva e il clic della vittima passa direttamente all'elemento reale. Il clic e la sessione sono entrambi autentici, quindi il server non può dirlo. Costruirai l'overlay e approverai un pagamento che nessuno intendeva effettuare, quindi correggi il gestore con Content-Security-Policy: frame-ancestors 'none' , mantenendo X-Frame-Options: DENY come fallback legacy.
Cosa imparerai in Clickjacking
- Riconoscere il clickjacking come un attacco di riparazione dell'interfaccia utente, il clic è reale e l'utente lo ha autorizzato; il contesto visivo in cui pensavano di fare clic era una bugia
- Applicare <code>Content-Security-Policy: frame-ancestors 'none'</code> (o <code>X-Frame-Options: DENY</code> legacy) su ogni risposta di modifica dello stato
- Tieni presente che l'applicazione lato browser è intenzionale, il server non è in grado di rilevare in modo affidabile "questa richiesta mi sta caricando all'interno di un iframe" ma il browser conosce con certezza il contesto di incorporamento
- Associa l'intestazione per route a un middleware anti-framing globale in modo che il successivo modulo di modifica dello stato venga fornito con la protezione per impostazione predefinita
- Per l'incorporamento legittimo (portale partner, dashboard interno), utilizzare <code>frame-ancestors 'self'</code> o un elenco consentito esplicito di origini attendibili, non consentire mai tutto
Clickjacking — Fasi della formazione
-
Bob non può spostare i soldi da solo
Bob non può accedere al conto bancario di uno sconosciuto. Ma Tideline Bank consente a qualsiasi cliente di richiedere un pagamento da un altro, e il denaro si sposta solo dopo che il titolare del conto ha approvato la richiesta. Il suo obiettivo oggi è un cliente di Tideline Bank, Alice. Inizia dalla pagina di richiesta della banca.
-
Organizza la richiesta di pagamento
Dopo aver effettuato l'accesso a un account mulo denominato Coastal Marketing LLC , Bob invia una richiesta per estrarre $2,500 dall'account di Alice. Inserisce la sua email e l'importo.
-
Prepara la trappola
La richiesta ora si trova nell'account di Alice, in attesa che tocchi Approva . Non lo avrebbe mai fatto, consapevolmente. Quindi Bob crea un omaggio di caffè gratuito e nasconde il proprio pulsante Approva direttamente sotto il pulsante del caffè. Quindi le invia l'omaggio via email e attende un solo clic.
-
Un'e-mail per un caffè gratis
Fuori orario, Alice riceve un'e-mail allegra: un caffè gratis, un clic per rivendicare. Niente richiede una password. Sembra completamente innocuo.
-
Richiedi il caffè
Alice fa clic sul collegamento per richiedere il suo caffè gratuito.
-
Un clic
Si apre la pagina del giveaway: un pulsante amichevole che offre un caffè gratis. Alice fa clic su di esso. Non cambia nulla che possa vedere. La pagina del caffè è semplicemente lì.
-
Il denaro lascia il conto
Pochi secondi dopo, arriva un avviso di frode. Un pagamento $2,500 che non aveva mai approvato consapevolmente è uscito dal suo account.
-
Guarda cosa ha colpito il clic
Alice ripristina la pagina del giveaway. In qualità di ingegnere della sicurezza, vuole vedere a cosa è arrivato realmente il suo clic. Trascina un controllo di rivelazione per sfumare qualsiasi cosa sovrapposta al pulsante del caffè.
-
Dai un nome all'attacco
Prima di toccare qualsiasi codice, sii preciso su cosa è appena successo.
-
Aprire il gestore dell'approvazione
Alice passa da vittima a ingegnere. La pagina di approvazione è prodotta dal servizio di richiesta di pagamento. Apre il gestore per scoprire perché può essere caricato sul sito di uno sconosciuto.
Copertura dei framework di sicurezza
OWASP Top 10
- A02:2025 Security Misconfiguration
- A05:2021 Security Misconfiguration
CWE
- CWE-1021 Improper Restriction of Rendered UI Layers or Frames
CIS Controls
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security