Qual è la soluzione rapida per l'attacco CSRF?

4

L'applicazione è costruita in linguaggio Java e framework JSF. Ho segnalato un attacco CSRF e il team di sviluppo deve risolverlo presto da quando l'applicazione è in produzione.

Ho raccomandato di utilizzare token CSRF ma il team di sviluppo dice che potrebbe richiedere del tempo per l'implementazione.

Qualcuno di voi può suggerire un modo migliore e più rapido per porre rimedio a CSRF? Se è una soluzione temporanea per ora, va bene anche questo. Successivamente, implementeranno i token CSRF corretti nel codice in un tempo ragionevole.

    
posta Ekalavya 10.05.2018 - 13:34
fonte

3 risposte

4

Una correzione rapida contro CSRF consiste nel controllare l'intestazione HTTP Referer e / o Origin . Almeno uno di questi dovrebbe essere impostato e il dominio che contiene dovrebbe essere il tuo dominio (cioè la stessa origine).

Si noti che ciò interromperà i casi in cui si accede al sito da un segnalibro, si collega all'interno di una mail o simili poiché in tal caso non verrà inviato Referer . Ma in nessun caso dovresti semplicemente accettare un Referer vuoto (a meno che tu non abbia un'intestazione di Origin non vuota) poiché questo è facile da creare per un utente malintenzionato.

Dovresti anche assicurarti che i tuoi controlli per il dominio siano corretti. Questo è, se il tuo sito è www.example.com non devi accettare Referer come http://www.example.com.attacker.com o http://www.attacker.com/www.example.com o http://www-example.com .

Dovresti inoltre assicurarti che l'utente malintenzionato non possa utilizzare altre funzionalità (o bug) nella tua applicazione come trampolino per creare una richiesta personalizzata con carico utile malevolo ma la percentuale di origine% co_de prevista. Poiché Arminius è stato ben evidenziato in un commento, i reindirizzamenti aperti potrebbero essere tali trampolini. Pertanto, dovresti assicurarti che tutte le richieste al dominio abbiano una percentuale di origine uguale a% di co_de o che tutte le parti che potrebbero dover accettare un% di origine incrociata% co_de non possano essere abusate come trampolino.

Per ulteriori informazioni su questo metodo di protezione da CSRF e sui suoi potenziali problemi, vedere Verifica La stessa origine con intestazioni standard nel foglio Cheat di prevenzione tra i siti incrociati (CSRF) da OWASP.

    
risposta data 10.05.2018 - 13:51
fonte
1

Un'altra possibilità è quella di utilizzare i cookie stesso sito ( SameSite=Strict; ). In sostanza questo attributo, se abilitato, impedisce al browser di inviare cookie da richieste cross-site. Questo potrebbe potenzialmente rompere alcune funzionalità, tuttavia è un'altra idea che potrebbe essere aggiunta rapidamente:

link

Downfall: non tutti i browser lo supportano.

    
risposta data 10.05.2018 - 18:36
fonte
-1

L'unico modo per mitigare questa vulnerabilità è un modello di token di sincronizzazione . Solo con un token.

Prova ad utilizzare progetto OWASP CSRFGuard

    
risposta data 10.05.2018 - 14:39
fonte

Leggi altre domande sui tag