Cross-Site Request Forgery (CSRF) è uno dei metodi più antichi per sfruttare le vulnerabilità di un sito web. Si rivolge a switch Web lato server che di solito richiedono autenticazioni come l'accesso. Durante un attacco CSRF, un utente malintenzionato mira a costringere la vittima a effettuare una richiesta Web non autorizzata e dannosa per suo conto.

Le pratiche di sicurezza del sito web deboli o inadeguate e la negligenza nel percorso dell'utente sono alcune delle cause comuni di un attacco CSRF di successo.

Diamo un'occhiata a cos'è un attacco CSRF e ai possibili modi in cui puoi prevenirlo come sviluppatore o come utente.

In che modo gli attacchi CSRF influiscono su di te?

Un CSRF è un attacco utilizzato per implementare richieste non autorizzate durante azioni Web che richiedono l'accesso o l'autenticazione dell'utente. Gli attacchi CSRF possono sfruttare gli ID di sessione, i cookie e altre vulnerabilità basate sul server per rubare le credenziali di un utente.

Ad esempio, l'attivazione delle procedure anti-CSRF impedisce le interazioni dannose tra domini.

instagram viewer

Una volta superata la barriera, un utente malintenzionato può sfruttare rapidamente l'ID di sessione dell'utente tramite i cookie creati dal browser dell'utente e incorporare un tag script nel sito Web vulnerabile.

Manipolando un ID, l'attaccante può anche reindirizzare i visitatori a un'altra pagina web o sfruttare metodi di ingegneria sociale come la posta elettronica per inviare collegamenti, incoraggiando la vittima a scaricare software dannoso.

Cos'è l'ingegneria sociale? Ecco come potresti essere hackerato

Scopri come l'ingegneria sociale può influire su di te, oltre a esempi comuni per aiutarti a identificare e stare al sicuro da questi schemi.

Una volta che la vittima esegue tali azioni, invia una richiesta HTTP alla pagina di servizio dell'utente e autorizza l'azione di richiesta a favore dell'aggressore. Questo può essere devastante per un utente ignaro.

Un attacco CSRF riuscito può far perdere agli utenti autorizzati le proprie credenziali di accesso a un utente malintenzionato, soprattutto durante azioni basate sul server come le richieste di modifica della password o del nome utente. Negli scenari peggiori, l'aggressore prende il controllo dell'intera sessione e agisce per conto degli utenti.

CSRF è stato utilizzato per dirottare le transazioni di fondi sul Web e per modificare nomi utente e password, il che porta gli utenti a perdere l'accesso al servizio interessato.

Come gli aggressori dirottano le tue sessioni con CSRF: esempi

Gli obiettivi principali degli attacchi CSRF sono le azioni web che coinvolgono l'autenticazione di un utente. Per avere successo, necessita di azioni involontarie da parte della vittima.

Durante un attacco CSRF, le azioni GET, DELETE e PUT, nonché le richieste POST vulnerabili, sono gli obiettivi principali di un utente malintenzionato.

Diamo un'occhiata al significato di questi termini:

  • OTTENERE: Una richiesta per raccogliere un risultato dal database; ad esempio, ricerca su Google.
  • INVIARE: Tipicamente per l'invio di richieste tramite moduli web. Una richiesta POST è comune durante la registrazione o l'accesso di un utente, altrimenti nota come autenticazione.
  • ELIMINA: Per rimuovere una risorsa dal database. Lo fai ogni volta che elimini il tuo account da un particolare servizio web.
  • METTERE: Una richiesta PUT modifica o aggiorna una risorsa esistente. Un esempio è cambiando il tuo nome Facebook.

In pratica, gli aggressori utilizzano il dirottamento della sessione per eseguire il backup di un attacco CSRF. Quando si utilizza questa combinazione, l'aggressore può utilizzare un dirottamento per modificare l'indirizzo IP della vittima.

La modifica dell'indirizzo IP registra quindi la vittima in un nuovo sito Web in cui l'aggressore ha inserito un collegamento ingannevole che invia un modulo replicato o una richiesta del server modificata creata tramite CSRF.

Un utente ignaro pensa quindi che il reindirizzamento provenga dal fornitore di servizi e fa clic sul collegamento nella pagina Web dell'aggressore. Dopo averlo fatto, gli hacker inviano un modulo al caricamento della pagina a loro insaputa.

Esempio di un attacco CSRF di richiesta GET

Immagina di provare a effettuare un pagamento online tramite una piattaforma di e-commerce non protetta. I proprietari della piattaforma utilizzano la richiesta GET per elaborare la transazione. Quella query GET potrebbe essere simile a questa:

https://websiteurl/pay? importo = $ 10 e azienda = [account dell'azienda ABC]

Un dirottatore può rubare facilmente la tua transazione modificando i parametri della richiesta GET. Per fare ciò, tutto ciò che devono fare è scambiare il tuo nome con il loro e, peggio ancora, cambiare l'importo che intendi pagare. Quindi modificano la query originale in qualcosa di simile:

https://websiteurl/pay? importo = $ 20000 e azienda = [account dell'aggressore]

Dopo aver fatto clic su un collegamento a quella richiesta GET modificata, si finisce per effettuare un trasferimento involontario all'account dell'aggressore.

La transazione tramite richieste GET è una cattiva pratica e rende le attività vulnerabili agli attacchi.

Esempio di un attacco CSRF su richiesta POST

Tuttavia, molti sviluppatori ritengono che l'utilizzo della richiesta POST sia più sicuro per effettuare transazioni web. Anche se questo è vero, sfortunatamente, una richiesta POST è suscettibile anche agli attacchi CSRF.

Per dirottare con successo una richiesta POST, tutto ciò di cui un utente malintenzionato ha bisogno è il tuo ID di sessione corrente, alcuni moduli invisibili replicati e, a volte, un po 'di ingegneria sociale.

Ad esempio, un modulo di richiesta POST potrebbe essere simile a questo:







Tuttavia, un utente malintenzionato può scambiare le tue credenziali creando una nuova pagina e modificando il modulo sopra in questo:









Nella forma manipolata, l'attaccante imposta il valore del campo importo su "30000", scambia il il numero di conto del destinatario al proprio, invia il modulo al caricamento della pagina e nasconde anche i campi del modulo l'utente.

Dopo aver dirottato la sessione corrente, la pagina della transazione avvia un reindirizzamento alla pagina dell'aggressore, che ti chiede di fare clic su un collegamento che sa che è più probabile che visiti.

Facendo clic su questo viene caricato l'invio del modulo replicato, che trasferisce i fondi sull'account dell'aggressore. Ciò significa che non è necessario fare clic su pulsanti come "invia" affinché la transazione abbia luogo, poiché JavaScript lo fa automaticamente al caricamento della pagina web successiva.

In alternativa, un utente malintenzionato può anche redigere un'e-mail incorporata in HTML che richiede di fare clic su un collegamento per eseguire lo stesso invio del modulo di caricamento della pagina.

Un'altra azione vulnerabile a un attacco CSRF è un nome utente o una modifica della password, un esempio di una richiesta PUT. Un utente malintenzionato replica il tuo modulo di richiesta e sostituisce il tuo indirizzo email con il suo.

Quindi rubano la tua sessione e ti reindirizzano a una pagina o ti inviano un'e-mail che ti chiede di fare clic su un collegamento accattivante.

Quindi invia un modulo manipolato che invia il link per la reimpostazione della password all'indirizzo e-mail dell'hacker invece del tuo. In questo modo, l'hacker cambia la tua password e ti disconnette dal tuo account.

Come prevenire gli attacchi CSRF come sviluppatore

Uno dei metodi migliori per impedire un CSRF consiste nell'usare token che cambiano frequentemente invece di dipendere dai cookie di sessione per eseguire un cambio di stato sul server.

Relazionato: Guide gratuite per comprendere la sicurezza digitale e proteggere la tua privacy

Molti moderni framework di backend offrono sicurezza contro CSRF. Quindi, se vuoi evitare i tecnicismi del rinforzo contro CSRF da solo, puoi affrontarlo facilmente utilizzando framework lato server forniti con token anti-CSRF incorporati.

Quando si utilizza un token anti-CSRF, le richieste basate sul server generano stringhe casuali invece dei cookie di sessione vulnerabili più statici. In questo modo, puoi proteggere la tua sessione dall'essere indovinata dal dirottatore.

L'implementazione di un sistema di autenticazione a due fattori (2FA) per l'esecuzione di transazioni sulla tua app web riduce anche le possibilità di un CSRF.

È possibile avviare un CSRF tramite cross-site scripting (XSS), che prevede l'inserimento di script nei campi utente come i moduli di commento. Per evitare ciò, è buona norma abilitare la fuga automatica HTML in tutti i campi del modulo utente nel tuo sito web. Questa azione impedisce ai campi modulo di interpretare gli elementi HTML.

Come prevenire gli attacchi CSRF come utente

In qualità di utente di un servizio Web che prevede l'autenticazione, hai un ruolo da svolgere nell'impedire agli aggressori di rubare le tue credenziali e sessioni anche tramite CSRF.

Assicurati di utilizzare servizi web affidabili durante le attività che implicano il trasferimento di fondi.

Oltre a questo, usa browser web sicuri che proteggono gli utenti dall'esposizione della sessione, nonché motori di ricerca sicuri che proteggono dalle perdite di dati di ricerca.

Relazionato: I migliori motori di ricerca privati ​​che rispettano i tuoi dati

Come utente, puoi anche dipendere da autenticatori di terze parti come Google Authenticator o le sue alternative per verificare la tua identità sul web.

Anche se potresti sentirti incapace di impedire a un aggressore di dirottare la tua sessione, puoi comunque aiutare impedirlo assicurandoti che il tuo browser non memorizzi informazioni come password e altri dati di accesso dettagli.

Rafforza la tua sicurezza web

Gli sviluppatori devono testare regolarmente le app Web per le violazioni della sicurezza durante lo sviluppo e la distribuzione.

Tuttavia, è comune introdurre altre vulnerabilità mentre si cerca di prevenirne altre. Quindi fai attenzione a assicurarti di non aver violato altri parametri di sicurezza durante il tentativo di bloccare un CSRF.

E-mail
5 Strumenti per password per creare passphrase complesse e aggiornare la sicurezza

Crea una password sicura da ricordare in seguito. Usa queste app per aggiornare la tua sicurezza con nuove password complesse oggi stesso.

Argomenti correlati
  • Sicurezza
  • Sicurezza online
Circa l'autore
Idowu Omisola (46 articoli pubblicati)

Idowu è appassionato di qualsiasi tecnologia intelligente e produttività. Nel tempo libero gioca con la programmazione e quando è annoiato passa alla scacchiera, ma ama anche staccarsi dalla routine una volta ogni tanto. La sua passione per mostrare alle persone come aggirare la tecnologia moderna lo motiva a scrivere di più.

Altro di Idowu Omisola

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Ancora un passo…!

Conferma il tuo indirizzo e-mail nell'e-mail che ti abbiamo appena inviato.

.