Vai al contenuto

Decifrare il Cross Site Request Forgery: Una minaccia per la cyber sicurezza

Uno sguardo approfondito al Cross Site Request Forgery (CSRF), un attacco informatico soffisticato che abbraccia tecniche tecniche e di social engineering.

Nell’interminabile elenco delle metodologiedi attacco presente nel glossario della cyber sicurezza, vi è una tecnica che si distingue per la sua ingegnosità. Questa tecnica è nota come Cross Site Request Forgery o CSRF, e rappresenta un mix unico di arti oscure della tecnica e dell’imbroglio da social engineering.

Ma cosa significa esattamente? Il CSRF è un tipo di attacco che mira a indurre un utente, già autenticato su un sito web, a eseguire operazioni indesiderate su quel sito. Si tratta, quindi, di un’operazione di inganno: sfruttando la fiducia tra il sito e l’utente, l’aggressore può spingere quest’ultimo a svolgere azioni che non avrebbe mai intrapreso volontariamente.

Supponiamo, per esempio, che tu sia un amministratore di sistema con pieni diritti su un’applicazione web, e che tu sia caduto nella trappola di un attacco CSRF. In questo caso, le conseguenze potrebbero essere disastrose non solo per te, ma per l’intero sistema che gestisci.Se sei un amministratore di sistema soggetto aun attacco CSRF, le conseguenze potrebbero essere disastrose.

Ma come funziona esattamente un attacco CSRF? Ecco un esempio pratico:

Un hacker potrebbe iniziare clonando un sito web familiare, ad esempio una banca online. Per fare ciò, utilizza strumenti che automaticamente riproducono l’aspetto e la funzionalità del sito originale. Una volta completata questa operazione, diffonde il link al sito malevolo, allettando possibili utenti a visitarlo.

Un utente ignaro, che si è precedentemente loggato al sito legittimo, potrebbe cliccare sul link malevolo. A questo punto, le sue credenziali di accesso, conservate nei cookie del browser, vengono rubate dal hacker che poi le utilizza per effettuare richieste al sito legale soto la forma dell’utente. Queste richieste potrebbero includere operazioni come trasferimenti di denaro dal conto dell’utente al conto del hacker.

Ecco dove sta la vera insidiosità dell’attacco CSRF: l’inconsapevolezza della vittima. Un utente attaccato può non rendersi immediatamente conto di quello che sta succedendo; solo quando controlla il suo conto corrente e trova meno denaro del previsto, capisce che qualcosa non va.

Da un punto di vista tecnico, un attacco CSRF si fonda sulla fiducia mal riposta di un sito web nelle operazioni eseguite da un utente già autenticato. Tuttavia, esistono alcuni modi per mitigare questo rischio e proteggere i propri utenti.

Ecco alcuni dei metodi più comuni per controbattere gli attacchi CSRF:

  • Puoi includere un token unico di sessione, noto come CSRF Token, in ogni richiesta HTTP. Il server utilizza questo token per verificare l’identità dell’utente ad ogni richiesta, rendendo quasi impossibile per un aggressore di fare richieste non autorizzate.
  • Puoi impostare un attributo specifico dei cookie, noto come SameSite attribute. Quando questo attributo è impostato su “Strict”, il browser non includerà i cookies nelle richieste provenienti da altri siti.
  • Puoi utilizzare il “nonce”, ovvero un valore casuale e unico generato dal server per un’operazione particolare. Questo valore viene utilizzato una sola volta: quando l’utente invia una richiesta, il server verifica il nonce per confermare che la richiesta è autentica.

Le misure di sicurezza elencate sopra dovrebbero essere applicate automaticamente da strumenti di sicurezza specializzati, come i Web Application Firewalls. Se stai progettando un software, non fare affidamento su un unico metodo per contrastare il CSRF: è sempre meglio utilizzare più tecniche, dato che alcuni attacchi sono in grado di eludere le tecniche di mitigazione più comuni.

Un’ultima considerazione: se vuoi approfondire questo argomento, ti consiglio di dare un’occhiata al sito dell’ OWASP (Open Web Application Security Project). Troverai descrizioni esaurienti su come funziona l’attacco CSRF, su come testare un sito per prevenirlo, e su come rivedere il codice per adottare le misure di sicurezza più opportune.