# Atac BREACH

BREACH (un retroacrònim: Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext) és una vulnerabilitat de seguretat contra HTTPS quan s'utilitza la compressió HTTP. BREACH es basa en l'explotació de seguretat CRIME. BREACH va ser anunciat a la conferència Black Hat d'agost de 2013 pels investigadors de seguretat Angelo Prado, Neal Harris i Yoel Gluck. La idea havia estat discutida a la comunitat abans de l'anunci.

## Detalls

Tot i que l'atac CRIME es va presentar com un atac general que podria funcionar eficaçment contra un gran nombre de protocols, només es van demostrar explotacions contra la compressió de sol·licituds SPDY i la compressió TLS i es van mitigar en gran manera als navegadors i servidors. Les explotacions CRIME contra la compressió HTTP no s'han mitigat en absolut, tot i que els autors de CRIME han advertit que aquesta vulnerabilitat podria estar encara més estesa que la compressió SPDY i TLS combinades.
BREACH és una instància de l'atac CRIME contra la compressió HTTP: l'ús d'algoritmes de compressió de dades gzip o DEFLATE mitjançant l'opció de codificació de contingut dins d'HTTP per part de molts navegadors i servidors web. Donat aquest oracle de compressió, la resta de l'atac BREACH segueix les mateixes línies generals que l'explotació CRIME, mitjançant la realització d'una cerca inicial cega de força bruta per endevinar uns quants bytes, seguida d'una cerca dividida i vençuda per ampliar una conjectura correcta a una quantitat arbitràriament gran de contingut.

## Mitigació

BREACH aprofita la compressió del protocol HTTP subjacent. Per tant, desactivar la compressió TLS no fa cap diferència per a BREACH, que encara pot realitzar un atac de text pla escollit contra la càrrega útil HTTP.
Com a resultat, els clients i els servidors es veuen obligats a desactivar completament la compressió HTTP (reduint així el rendiment) o a adoptar solucions alternatives per intentar evitar l'INFRACCIÓ en escenaris d'atac individuals, com ara l'ús de protecció contra falsificació de sol·licituds entre llocs (CSRF).
Un altre enfocament suggerit és desactivar la compressió HTTP sempre que la capçalera de referència indiqui una sol·licitud entre llocs o quan la capçalera no estigui present. Aquest enfocament permet una mitigació efectiva de l'atac sense perdre la funcionalitat, només incorrent en una penalització de rendiment a les sol·licituds afectades.
Un altre enfocament és afegir farciment a nivell de TLS, capçalera HTTP o càrrega útil. Al voltant del 2013-2014, hi va haver un esborrany de proposta de l'IETF per a una extensió TLS per a l'encoixinat de llargada oculta que, en teoria, es podria utilitzar com a mitigació contra aquest atac. Permet dissimular la longitud real de la càrrega útil TLS mitjançant la inserció d'encoixinat per arrodonir-la a un conjunt fix de longituds, o per aleatoritzar la longitud externa, disminuint així la probabilitat de detectar petits canvis en la relació de compressió que és la base. per l'atac BREACH. No obstant això, aquest esborrany ha caducat des de llavors sense més mesures.
Una mitigació molt eficaç és HTB (Heal-the-BREACH) que afegeix un farciment de mida aleatòria a les dades comprimides, modificant la mida del contingut de sortida. Aquesta aleatorietat retarda que BREACH endevini els caràcters correctes del testimoni secret per un factor de 500 (màxim de 10 bytes) a 500.000 (màxim de 100 bytes). HTB protegeix tots els llocs web i pàgines del servidor amb un ús mínim de CPU i un augment mínim d'amplada de banda.

## Referències

* ↑ «Is HTTP compression safe?» (en anglès). Information Security Stack Exchange. Arxivat de l'original el 2018-04-12. [Consulta: 11 abril 2018].
* ↑ Angelo Prado, Neal Harris and Yoel Gluck. «SSL, gone in 30 seconds: A BREACH beyond CRIME» (en anglès). [Consulta: 7 setembre 2013].
* ↑ Omar Santos. «BREACH, CRIME and Black Hat» (en anglès). Cisco, 06-08-2013.
* ↑ Ivan Ristic. «Defending against the BREACH Attack» (en anglès). Qualys.com, 14-10-2013. [Consulta: 25 novembre 2013].
* ↑ manu. «BREACH mitigation» (en anglès). Qualys Community, 14-10-2013. [Consulta: 25 novembre 2013].
* ↑ A. Pironti. «Length Hiding Padding for the Transport Layer Security Protocol» (en anglès). IETF Network Working Group, 11-09-2013. [Consulta: 18 octubre 2017].
* ↑ Ivan Ristic. «Defending against the BREACH Attack» (en anglès). Qualys.com, 14-10-2013. [Consulta: 25 novembre 2013].
* ↑ Palacios, R.; Fariña Fernández-Portillo, A.; Sánchez-Úbeda, E. F.; García-de-Zúñiga, P. IEEE Access, 10, 01-04-2022, pàg. 40381–40390. Bibcode: 2022IEEEA..1040381P. DOI: 10.1109/ACCESS.2022.3166175 [Consulta: lliure].