Redazione RHC : 31 Gennaio 2022 07:38
Autore: Damiano Capo
Data Pubblicazione: 31/01/2022
Il Cross Site Request Forgery, o più semplicemente CSRF, è una vulnerabilità che affligge i siti web dinamici quando sono implementati per ricevere richieste da un client senza meccanismi di controllo sull’intenzionalità della richiesta.
Sei un Esperto di Formazione?
Entra anche tu nel Partner program!
Accedi alla sezione riservata ai Creator sulla nostra Academy e scopri i vantaggi riservati ai membri del Partner program.
Per ulteriori informazioni, scrivici ad [email protected] oppure su Whatsapp al 379 163 8765
Supporta RHC attraverso:
A differenza del Cross Site Scripting (XSS) che sfrutta la fiducia di un utente in un particolare sito, il CSRF sfrutta la fiducia di un sito nel browser di un utente.
Gli attacchi CSRF sfruttano l’architettura di base del protocollo HTTP e della comunicazione di dati in Internet, ovvero le sessioni di autenticazione e i cookie inviati ai browser. In pratica, l’attaccante non inganna l’utente vero e proprio, ma il suo browser, facendogli inviare una richiesta a un’applicazione web in cui si è precedentemente autenticato e per cui non ha fatto il logout.
Questo tipo di attacchi è sfruttabile perché, per velocizzare la navigazione, sul Web è possibile passare ad aree protette per cui abbiamo già fatto il login provenendo da un sito esterno, ad esempio puoi visitare il profilo di un utente Facebook facendo clic sul link apposito che si trova nel suo sito web personale.
Queste sono appunto le richieste cross-site e sono possibili grazie all’autenticazione delle sessioni utente tramite i cookie salvati nel browser. Se questo tipo di operazione non fosse possibile, ogni volta che apriamo una pagina di Facebook o di qualsiasi altra applicazione web protetta da password dovremmo inserire di nuovo le credenziali.
Il problema si presenta quando un’attaccante ne approfitta per creare del codice, ad esempio un sito ma anche un malware, che inganna il browser dell’utente già autenticato presso l’applicazione web presa di mira. Come? Ad esempio con un sito web di phishing, in cui l’utente fa clic su un elemento come un link o un pulsante e, invece dell’azione prevista, ne esegue un’altra dannosa senza saperlo.
Ecco come si svolge un attacco cross site request al conto bancario online di un’utente:
Funziona proprio così? È davvero così facile? Fino a qualche anno fa sì, ma per fortuna oggi la maggior parte dei siti non è più vulnerabile ad attacchi così semplici. Andiamo a vedere quali sono i sistemi di sicurezza a disposizione delle applicazioni web.
Figure 1: Scenario di un CSRF
I siti e le app che ospitano applicazioni web hanno a disposizione i seguenti sistemi di sicurezza per mitigare la vulnerabilità agli attacchi di cross site request forgery:
E noi utenti, che cosa possiamo fare per difenderci da questo tipo di attacchi? Innanzitutto, se guardiamo alla dinamica delle cross site request forgery, notiamo che tutto inizia con un sito o un messaggio di phishing.
Affinché questo attacco vada a segno, non solo il sistema finale deve essere vulnerabile ma l’utente deve anche fare clic su un elemento e inviare una richiesta tramite il browser (senza sapere che in realtà è una richiesta ingannevole).
Poi, come abbiamo visto, questi attacchi vanno a segno quando lasciamo aperta la sessione sul sito target. Per i social media sappiamo che non è pensabile inserire ogni volta le credenziali, ma per servizi con dati più critici, come l’app di e-banking o la piattaforma di sviluppo del tuo sito, ti consigliamo vivamente di fare il logout alla fine di ogni utilizzo.