BREACH

BREACH(역두문자어: 브라우저 정찰 및 적응형 하이퍼텍스트 압축을 통한 유출, Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext, 브리치)는 HTTP 압축 사용 시 HTTPS에 대한 보안 취약점이다. BREACH는 CRIME 보안 취약점을 기반으로 구축되었다. BREACH는 2013년 8월 블랙햇 컨퍼런스에서 보안 연구원 앤젤로 프라도, 닐 해리스, 요엘 글룩에 의해 발표되었다. 이 아이디어는 발표 이전에 커뮤니티에서 논의되었다.[1]
세부 정보
[편집]CRIME 공격은 많은 수의 프로토콜에 대해 효과적으로 작동할 수 있는 일반적인 공격으로 제시되었지만, SPDY 요청 압축 및 TLS 압축에 대한 악용만 시연되었고 브라우저 및 서버에서 대부분 완화되었다. HTTP 압축에 대한 CRIME 악용은 전혀 완화되지 않았는데, CRIME의 저자들은 이 취약점이 SPDY 및 TLS 압축을 합친 것보다 훨씬 더 광범위할 수 있다고 경고했다.
BREACH는 HTTP 압축에 대한 CRIME 공격의 한 사례로, 많은 웹 브라우저 및 서버에서 HTTP 내의 content-encoding 옵션을 통해 gzip 또는 DEFLATE 데이터 압축 알고리즘을 사용하는 것이다.[2] 이 압축 오라클이 주어지면 BREACH 공격의 나머지는 CRIME 악용과 동일한 일반적인 선을 따르며, 초기 블라인드 무차별 대입 검색을 수행하여 몇 바이트를 추측한 다음, 분할 정복 검색을 통해 올바른 추측을 임의로 많은 양의 콘텐츠로 확장한다.
완화
[편집]BREACH는 기본 HTTP 프로토콜의 압축을 악용한다. 따라서 TLS 압축을 끄는 것은 BREACH에 아무런 영향을 미치지 않으며, BREACH는 여전히 HTTP 페이로드에 대해 선택 평문 공격을 수행할 수 있다.[3]
결과적으로 클라이언트와 서버는 HTTP 압축을 완전히 비활성화하거나(성능 저하 초래), 사이트 간 요청 위조 (CSRF) 보호와 같은 개별 공격 시나리오에서 BREACH를 방해하기 위한 해결책을 채택해야 한다.[4]
또 다른 제안된 접근 방식은 리퍼러 헤더가 교차 사이트 요청을 나타내거나 헤더가 없을 때 HTTP 압축을 비활성화하는 것이다.[5][6] 이 접근 방식은 기능 손실 없이 공격을 효과적으로 완화하며, 영향을 받는 요청에 대해서만 성능 저하가 발생한다.
또 다른 접근 방식은 TLS, HTTP 헤더 또는 페이로드 수준에서 패딩을 추가하는 것이다. 2013-2014년경에, 길이 숨김 패딩을 위한 TLS 확장에 대한 IETF 초안 제안[7]이 있었고, 이론적으로는 이 공격에 대한 완화책으로 사용될 수 있었다.[5] 이것은 TLS 페이로드의 실제 길이를 고정된 길이 세트로 반올림하기 위해 패딩을 삽입하거나 외부 길이를 무작위화하여 BREACH 공격의 기반이 되는 압축률의 작은 변화를 감지할 가능성을 줄인다. 그러나 이 초안은 그 이후로 추가 조치 없이 만료되었다.
매우 효과적인 완화책은 HTB (Heal-the-BREACH)[8]이며, 압축된 데이터에 무작위 크기의 패딩을 추가하여 출력 콘텐츠 크기에 약간의 변화를 제공한다. 이 무작위성은 BREACH가 비밀 토큰의 올바른 문자를 추측하는 것을 500배(최대 10바이트)에서 500,000배(최대 100바이트)까지 지연시킨다. HTB는 최소한의 CPU 사용량과 최소한의 대역폭 증가로 서버의 모든 웹사이트 및 페이지를 보호한다.
각주
[편집]- ↑ “Is HTTP compression safe?”. 《Information Security Stack Exchange》. 2018년 4월 12일에 원본 문서에서 보존된 문서. 2018년 4월 11일에 확인함.
- ↑ Goodin, Dan (2013년 8월 1일). “Gone in 30 seconds: New attack plucks secrets from HTTPS-protected pages”. Ars Technica.
- ↑ Angelo Prado, Neal Harris and Yoel Gluck. “SSL, gone in 30 seconds: A BREACH beyond CRIME” (PDF). 2013년 9월 7일에 확인함.
- ↑ Omar Santos (2013년 8월 6일). “BREACH, CRIME and Black Hat”. Cisco.
- 1 2 Ivan Ristic (2013년 10월 14일). “Defending against the BREACH Attack”. Qualys.com. 2013년 11월 25일에 확인함.
- ↑ manu (2013년 10월 14일). “BREACH mitigation”. Qualys Community. 2013년 11월 25일에 확인함.
- ↑ A. Pironti 외 (2013년 9월 11일). “Length Hiding Padding for the Transport Layer Security Protocol”. IETF Network Working Group. 2017년 10월 18일에 확인함.
- ↑ Palacios, R.; Fariña Fernández-Portillo, A.; Sánchez-Úbeda, E. F.; García-de-Zúñiga, P. (April 2022). 《HTB: A Very Effective Method to Protect Web Servers Against BREACH Attack to HTTPS》. 《IEEE Access》 10. 40381–40390쪽. Bibcode:2022IEEEA..1040381P. doi:10.1109/ACCESS.2022.3166175. S2CID 248112008.
외부 링크
[편집]- BREACH 공식 웹사이트
- BlackHat 2013에서 시연된 BREACH 공격을 실행하는 도구
- HEIST, BlackHat 2016에서 시연된 응답 본문에 대한 관련 압축 기반 공격