attacco BREACH vs input dell'utente riflesso filtrato

5

Sono responsabile della sicurezza applicativa della nostra applicazione e vorrei testare la nostra esposizione all'attacco BREACH.

La nostra applicazione web basata su django riflette l'input dell'utente filtrato e serve un token CSRF.

Per come la vedo, BREACH sfrutta l'algoritmo di compressione HTTP del corpo della risposta (quindi il nostro cookie di sessione sarebbe sicuro nell'intestazione HTTP) per trovare altre istanze di una particolare stringa di input dell'utente.

Ma cosa succede se canary="somethingsomething" diventa canary="somethingsomething&quot come input dell'utente? La parte canary è così rilevante per "l'indovinabilità" di somethingsomething ? Immagino che questo rimuova il canarino per il rilevamento automatico, ma se il resto della pagina rimane invariato, somethingsomething sarebbe comunque vulnerabile, ma più difficile da identificare, specialmente se c'è più di un token nella pagina ...

    
posta Maxime Leblanc 12.02.2016 - 17:05
fonte

1 risposta

1

Se l'input dell'utente viene riflesso letteralmente con ogni richiesta, probabilmente il tuo metodo non protegge da BREACH.

Il metodo più sicuro per difendere django è disattivare la compressione Gzip .

In alternativa, puoi XOR il token con un valore pseudo-casuale diverso per ogni richiesta .

    
risposta data 11.04.2016 - 23:05
fonte

Leggi altre domande sui tag