Introduzione alla CSRF?

CSRF, XSRF o Cross Site Reference La contraffazione è un tipo di attacco che si verifica su un sito Web quando un sito Web dannoso delega la sua richiesta a un altro sito Web o applicazione Web con un utente autenticato. In questo tipo di attacco, utilizzando il browser autenticato della vittima, un utente malintenzionato può accedere al sito Web in tutto o in parte.

Come funziona?

  • Funziona solo se la potenziale vittima è autenticata.
  • Un utente malintenzionato può accedere a un sito Web ignorando il processo di autenticazione mediante un attacco CSRF.
  • Gli attacchi CSRF entrano in uso, negli scenari in cui una vittima con diritti aggiuntivi esegue alcune azioni e altre non possono accedere o eseguire queste azioni. Ad esempio, l'online banking.

L'attacco CSRF viene eseguito in due parti principali

  • Il primo passo è attrarre l'utente / vittima a fare clic su un collegamento o caricare una pagina dannosa. Il social engineering viene utilizzato dall'aggressore per ingannare la vittima.
  • Il secondo passo è ingannare la vittima inviando una richiesta falsa al browser della vittima. Questo link reindirizzerà le richieste dall'aspetto legittimo a un sito Web. L'attaccante avrà i valori o i dettagli della vittima che deve cercare, una vittima lo avrebbe riempito pensando che la richiesta fosse legittima. L'attaccante avrà anche i dettagli dei cookie associati con il browser della vittima.

Concetti chiave di CSRF

  • Un utente malintenzionato invia richieste dannose a un sito in cui l'utente visita un utente malintenzionato ritiene che la vittima sia convalidata rispetto a quel determinato sito.
  • Il browser della vittima è autenticato rispetto al sito di destinazione e viene utilizzato per instradare le richieste dannose al sito di destinazione.
  • Qui, il browser di una vittima o un sito con metodi preventivi CSRF implementati su di esso, non sono vulnerabili, un sito Web interessato è la principale vulnerabilità.

Come è possibile prevenire la falsificazione di richieste tra siti (CSRF)?

Esistono numerosi metodi preventivi CSRF, alcuni dei quali sono:

  • Disconnettersi dalle applicazioni Web mentre non ci si lavora.
  • Proteggi i tuoi nomi utente e password.
  • Non consentire ai browser di ricordare la password.
  • Mentre lavori in un'applicazione e accedi ad essa, evita di navigare.

Token anti-CSRF

L'implementazione più comune per arrestare la falsificazione delle richieste tra siti (CSRF) è quella di utilizzare un token correlato a un utente selezionato e che può essere trovato come modulo nascosto in ogni stato, modulo dinamico presente nell'applicazione online.

1. Questo token denominato token CSRF funziona come segue:

  • Il client richiede una pagina HTML con un modulo.
  • Nella risposta a questa richiesta, il server aggiunge due token. Invia uno come cookie e mantiene altri token in un campo modulo nascosto. Questi token vengono generati casualmente.
  • Il client invia entrambi i token al server una volta inviato il modulo. Il token cookie viene inviato come token e il token del modulo viene inviato all'interno dei dati del modulo
  • Il server non risponde o rifiuta la richiesta se una richiesta non ha entrambe le richieste.

Ora un utente malintenzionato che sta tentando di falsificare la richiesta dovrà indovinare i token anti-CSRF insieme alle password di autenticazione dell'utente. Questi token vengono invalidati dopo qualche tempo e al termine della sessione. Questo rende l'attaccante indovinare il token duro.

2. Cookie dello stesso sito

Esistono alcuni cookie associati a un'origine o sito Web e quando viene inviata una richiesta a quell'origine specifica, i cookie vengono inviati insieme ad esso. Tali richieste sono chiamate richieste di origine incrociata. Durante questo processo, i cookie vengono inviati a terze parti, il che rende possibili attacchi CSRF.

3. Attributo cookie dello stesso sito

  • Per prevenire attacchi CSRF, è possibile utilizzare lo stesso attributo cookie del sito. Disabilita l'utilizzo di terze parti per un cookie specifico.
  • Viene eseguito dal server durante l'impostazione del cookie; richiede quindi al browser di inviare il cookie solo quando l'utente utilizza direttamente l'applicazione Web.
  • Ora se qualcuno prova a richiedere qualcosa dall'applicazione Web, il browser non invierà il cookie.
  • Tuttavia, impedisce l'attacco CSRF.

Ciò ha una limitazione, i cookie per lo stesso sito non sono supportati nei browser moderni, mentre le applicazioni Web che utilizzano cookie per lo stesso sito non sono supportate nei browser meno recenti.

Esempi di CSRF

Di seguito abbiamo spiegato alcuni esempi di CSRF:

1. Utilizzo delle richieste GET:

Supponiamo di aver implementato e progettato un sito Web, banking.com, per eseguire azioni come le transazioni online utilizzando le richieste GET. Ora, un utente malintenzionato intelligente che sa come creare un URL dannoso può utilizzare elemento per consentire al browser di caricare silenziosamente la pagina

Esempio di un elemento immagine HTML contenente un URL dannoso:

2. Una delle seguenti tecniche può essere utilizzata per fare lo stesso:

  • Inviando un'e-mail con contenuto HTML
  • Piantando uno script o un URL dannoso sulle pagine che un utente può visitare durante le transazioni online.

3. Utilizzo delle richieste POST

C'è un malinteso generale sulle richieste POST HTTP che gli attacchi CSRF possono essere prevenuti consentendo richieste POST HTTP, che in realtà non è vero. L'autore dell'attacco può creare un modulo utilizzando HTML o JavaScript e utilizzare la funzionalità di invio automatico per inviare la richiesta POST senza richiedere all'utente di fare clic su un pulsante di invio.

Conclusione

I cookie sono vulnerabili in quanto vengono inviati automaticamente con la richiesta, il che consente agli aggressori di implementare CSRF e inviare richieste dannose. L'effetto di una vulnerabilità CSRF dipende anche dal privilegio della vittima, il cui Cookie viene inviato con la richiesta dell'attaccante. Sebbene il recupero dei dati non sia l'ambito principale di un attacco CSRF, i cambiamenti di stato avranno sicuramente un effetto negativo sull'applicazione Web sfruttata. Pertanto si consiglia di impedire al tuo sito Web di utilizzare metodi preventivi per salvaguardare il tuo sito Web da CSRF.

Articoli consigliati

Questa è stata una guida a ciò che è CSRF. Qui abbiamo discusso il concetto chiave, i token anti-CSRF, come funziona ed esempi di CSRF. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. Che cos'è l'ibernazione Java?
  2. Che cos'è ASP.NET?
  3. Che cos'è AWS Lambda?
  4. Che cos'è XHTML?

Categoria: