Il DoubleClickjacking, un’evoluzione sofisticata del clickjacking, rappresenta una nuova minaccia per la sicurezza delle applicazioni web. Questo attacco sfrutta una sequenza di doppio clic per aggirare le protezioni tradizionali, compromettendo account e autorizzazioni in modo quasi impercettibile per l’utente.
Come funziona il DoubleClickjacking
Il DoubleClickjacking utilizza una finestra sovrapposta che inganna l’utente durante un doppio clic. Questo è possibile grazie a una vulnerabilità nei tempi di gestione degli eventi tra il primo clic (mousedown) e il secondo clic (onclick). L’attacco segue un flusso specifico:
- L’utente visita un sito malevolo che apre una finestra apparentemente innocua, ad esempio una verifica Captcha.
- Durante il primo clic, la finestra malevola si chiude o cambia, rivelando una pagina sensibile, come una richiesta di autorizzazione OAuth.
- Il secondo clic cade su un elemento sensibile nella finestra sottostante, autorizzando inconsapevolmente l’accesso a un’applicazione malevola.
Questa tecnica permette agli attaccanti di aggirare protezioni come X-Frame-Options, cookie SameSite e Content Security Policies, che sono inefficaci contro questa nuova forma di manipolazione dell’interfaccia utente.
Implicazioni di sicurezza
Le potenziali applicazioni del DoubleClickjacking includono:
- Compromissione di OAuth: Autorizzazione non intenzionale di app malevole con accesso completo ai dati dell’utente.
- Modifiche agli account: Disabilitazione delle impostazioni di sicurezza, trasferimenti di denaro o eliminazione di account.
- Attacchi su estensioni browser: Manipolazione di portafogli crypto e disabilitazione di VPN.
La semplicità di esecuzione, combinata con l’inefficacia delle difese esistenti, rende il DoubleClickjacking una minaccia pericolosa per tutti i siti web e le applicazioni moderne.
Strategie di mitigazione
- Protezione lato client:
Una soluzione JavaScript efficace consiste nel disabilitare i pulsanti critici di default, abilitandoli solo dopo interazioni intenzionali dell’utente, come movimenti del mouse o pressioni della tastiera. Questo approccio riduce drasticamente il rischio di clic non autentici.
(function(){
if (window.matchMedia && window.matchMedia("(hover: hover)").matches) {
var buttons = document.querySelectorAll('form button, form input[type="submit"]');
buttons.forEach(button => button.disabled = true);
function enableButtons() {
buttons.forEach(button => button.disabled = false);
}
document.addEventListener("mousemove", enableButtons);
document.addEventListener("keydown", e => {
if(e.key === "Tab") enableButtons();
});
}
})();
- Proposte di protezione lato browser:
Gli sviluppatori di browser potrebbero implementare nuovi standard, come un’intestazione HTTP specifica, per limitare i cambiamenti di contesto durante una sequenza di doppio clic. Un’idea potrebbe essere:Double-Click-Protection: strict
Il DoubleClickjacking rappresenta una nuova frontiera negli attacchi web. La sua capacità di eludere le difese tradizionali evidenzia l’urgenza di strategie di mitigazione a livello client e browser. Sviluppatori e team di sicurezza devono affrontare questa minaccia con attenzione per proteggere gli utenti da compromissioni potenzialmente devastanti.