포스팅 내용

국내외 보안동향

HEIST 공격 : HTTPS 데이터에서 평문을 얻어내는 방법

HEIST 공격 : HTTPS 데이터에서 평문을 얻어내는 방법

HEIST: HTTP Encrypted Information can be Stolen through TCP-windows


최근 Black Hat 2016에서는 HTTPS로 암호화된 데이터에서 평문데이터를 얻어내는 새로운 웹 공격방식인 HEIST공격방식을 공개하였습니다. HEIST는 Encrypted Information can be Stolen through TCP-Windows의 약자로, TCP-Windows 프로토콜을 통하여 암호화된 데이터에서 평문 데이터를 얻어낼 수 있다는 의미입니다. 


* TCP-Windows 프로토콜

TCP-Windows 프로토콜은 TCP Receive Window라고도 불립니다. 이 프로토콜은 TCP로 연결된 양쪽에 모두 존재하는 버퍼영역으로, 주고받는 데이터를 잠시 보관하는데 사용합니다. 이 버퍼영역의 데이터는 어플리케이션으로 전달되고, 새로운 데이터를 보관하기 위한 공간이 남게 됩니다. 만약 이 버퍼영역이 가득 찼다면, 데이터 수신측에서 발송측에 버퍼영역이 가득 찼으니 공간이 비워지기 전까지 더이상의 데이터는 받지 못한다고 경고합니다. 일반적으로 통신과정중에서 TCP Header 정보에는 TCPWindows의 크기가 명시되어 있습니다. 


HEIST공격의 조건은 매우 간단합니다. 몇줄의 간단한 자바스트립트 코드만 필요하며, 중간자 공격도 필요하지 않습니다. 


이 공격을 통하여 금융정보, 개인정보, 계정정보 등의 민감정보들을 탈취할 수 있습니다. 하지만 이런 정보들은 모두 HTTPS로 암호화되어 있습니다. 


우선, 전송되는 민감한 정보들을 탈취합니다. 그 후 암호화된 데이터의 길이를 확인합니다. 일반 홈페이지에서는 파일압축 기술을 사용하여 페이지 로딩 속도를 높힙니다. 공격자는 그 중 설계상의 허점을 이용하여 데이터의 페이로드를 복호화 하는 것입니다.(BREACH공격 및 CRIME공격과 유사)


HEIST공격기술은 새로운 API를 이용하여 목표 기기가 발송하는 전송프레임과 창을 계산합니다. 모든 처리과정 중, 연구원은 JavaScript 코드를 이용하여 HTTPS 응답데이터의 실제 크기를 확인합니다. 그 후 악성 HEIST 코드를 BREACH 기술과 결합하여 사용자의 request 패킷 중에서 암호화된 정보를 추출해냅니다. 



<이미지 출처 : http://news.softpedia.com/news/heist-attack-can-steal-data-from-https-encrypted-traffic-507009.shtmll>


현재 이미 많은 홈페이지들이 보안조치를 취해놓았지만, 대부분은 HEIST 공격을 예방하기 힘듭니다. 그렇기 때문에 이런 종류의 공격은 앞으로 몇년동안 빈번하게 발생할 것으로 예상됩니다.  현재까지 HEIST공격을 예방하는 방법은, 제 3자 쿠키를 비허용 하고, javacript를 비활성화하는 것입니다. 하지만 제 3자 쿠키와 javascript 모두 일반 사용자들이 web에 방문할때 요구되는 기본요건인 것이 현실입니다.


HEIST 공격방법을 발견한 연구원들은 Black Hat 회의에서 해당 공격을 예방할 수 있는 해결방안을 함께 모색해보자고 말했습니다. 




참고 :

http://arstechnica.com/security/2016/08/new-attack-steals-ssns-e-mail-addresses-and-more-from-https-pages/

https://www.blackhat.com/docs/us-16/materials/us-16-VanGoethem-HEIST-HTTP-Encrypted-Information-Can-Be-Stolen-Through-TCP-Windows-wp.pdf

http://news.softpedia.com/news/heist-attack-can-steal-data-from-https-encrypted-traffic-507009.shtml

티스토리 방명록 작성
name password homepage