Il Python Web application framework Django sarebbe esposto al pericolo di BREACH attack, a rivelarlo sono stati gli stessi responsabili del progetto che hanno voluto comunicare quali potrebbero essere gli accorgimenti più adatti per mitigare tale minaccia; nello specifico, vi sarebbe la possibilità di sfruttare la vulnerabilità rilevata al fine di bypassare il meccanismo di protezione contro la presenza di falle Cross-site request forgery (mancato controllo sull'intenzionalità delle richieste) utilizzato dalla libreria.
Sostanzialmente il termine "BREACH" fa riferimento a un'azione in cui l'attaccante è in grado di rilevare la dimensione di un testo cifrato ricevuto da un browser tramite protocollo HTTPS, utilizzando questo dato è possibile decodificare tale stringa carattere per carattere inviando delle apposite coppie di richieste; in pratica, la differenza tra le dimensioni delle risposte ricevute consentirà di indovinare con buona approssimazione tutti i caratteri che compongono il testo cifrato.
Dato che un attacco di tipo BREACH potrebbe sfruttare vulnerabilità attinenti la trasmissione di dati compressi tramite SSL/TLS, agli utilizzatori di Django è consigliato di disattivare le compressione delle risposte e, nello specifico:
- disabilitare il middleware GZip del framework;
- disabilitare la compressione GZip a livello di configurazione server (mod_deflate in Apache e modulo GZip di nginx);
- disabilitare la compressione TLS.
In attesa di una soluzione nativa al problema segnalato è necessario adottare tutte le precauzioni necessarie per evitare di esporre le proprie applicazioni al pericolo di BREACH attack.
Via Django