BREACH: REVIVING THE CRIME ATTACK YOEL GLUCK, NEAL HARRIS, AND ANGELO (ANGEL) PRADO 번역 by. Choi Ju Dong

Similar documents
본 강의에 들어가기 전

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Secure Programming Lecture1 : Introduction

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

기술문서 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라.

Observational Determinism for Concurrent Program Security

0. 들어가기 전

SSL Strip Attack JAC (SemiDntmd) 이우승 semidntmd.tistory.com

< FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

Network seminar.key

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

untitled

EDB 분석보고서 (04.06) ~ Exploit-DB( 에공개된별로분류한정보입니다. Directory Traversal users-x.php 4.0 -support-x.php 4.0 time-

wtu05_ÃÖÁ¾

PowerPoint Template

SBR-100S User Manual

Microsoft PowerPoint 웹 연동 기술.pptx

<4D F736F F D20BAB8BEC8BCADB9F620BCD2BDBA20BCF6C1A420BBE7BFEBC0DA20B8DEB4BABEF32E646F63>

DBPIA-NURIMEDIA

슬라이드 1

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

Microsoft PowerPoint - note03 [호환 모드]

Microsoft PowerPoint - 6.pptx

취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환

1217 WebTrafMon II

목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host) 서버 설정... 9 W7CLIENT (Windows 7 Client) 클라이얶트 설정

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

1아이리포 기술사회 모의고사 참조답안

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

PowerPoint Template

일반적인 네트워크의 구성은 다음과 같다

°í¼®ÁÖ Ãâ·Â

1장 암호의 세계

#WI DNS DDoS 공격악성코드분석

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx

Microsoft PowerPoint - 2.Catalyst Switch Intrastructure Protection_이충용_V1 0.ppt [호환 모드]

FileMaker 15 WebDirect 설명서

** 5 개이발생한주요소프트웨어별취약점세 EDB 번호취약점종류공격난이도공격위험도취약점이름소프트웨어이름

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

Contents Test Lab 홖경... 3 Windows 2008 R2 서버를도메인멤버서버로추가... 4 기존 Windows 2003 AD 홖경에서 Windows 2008 R2 AD 홖경으로업그레이드를위한사젂작업 7 기존 Windows 2003 AD의스키마확장...

ARP(Address Resolution Protocol) ARP - Layer 2 계층, Ethernet 환경에서 Destination IP 에대한 MAC Address 변환동작을담당한다. - 논리주소 (IP) 를물리주소 (MAC) 로변환시켜주는프로토콜이다. - 서로

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

<4D F736F F F696E74202D E20C0CEC5CDB3DD20C0C0BFEB20B9D720BCADBAF1BDBA20B1E2BCFA E >

제목 레이아웃

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

6강.hwp

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

179

February

05 암호개론 (2)

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

Cryptography v3

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

V. 통신망 기술

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Advantech Industrial Automation Group

서현수

TGDPX white paper

BEA_WebLogic.hwp

[Brochure] KOR_TunA

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

관용 암호 방식

APOGEE Insight_KR_Base_3P11

184최종

07Á¤Ã¥¸®Æ÷Æ®-pdf¿ë

200707Á¤Ã¥¸®Æ÷Æ®_³»Áö

SBR-100S User Manual

슬라이드 제목 없음

MVVM 패턴의 이해

V28.

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

PowerPoint Presentation

게시판 스팸 실시간 차단 시스템

PowerPoint Template

SIGIL 완벽입문

PowerPoint Presentation

Microsoft PowerPoint - 웹프로그래밍_ ppt [호환 모드]

The Pocket Guide to TCP/IP Sockets: C Version


기초 암호화 기법


PowerPoint Template

PowerPoint Presentation

Software Requirrment Analysis를 위한 정보 검색 기술의 응용

자연언어처리

untitled

슬라이드 제목 없음

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

adfasdfasfdasfasfadf

186최종

197

Microsoft PowerPoint - web-part03-ch19-node.js기본.pptx

Model Investor MANDO Portal Site People Customer BIS Supplier C R M PLM ERP MES HRIS S C M KMS Web -Based

EDB 분석보고서 (04.03) ~ Exploit-DB( 에공개된별로분류한정보입니다. ** 5개이상발생한주요소프트웨어별상세 EDB 번호 종류 공격난이도 공격위험도 이름 소프트웨어이름 3037 SQL Inj

HTTP 2.0 : The New Web Standard and Issue

3장

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r


Transcription:

BREACH: REVIVING THE CRIME ATTACK YOEL GLUCK, NEAL HARRIS, AND ANGELO (ANGEL) PRADO 번역 by. Choi Ju Dong

목 차 1. 소개... 3 2. 공격... 4 2.1. 개요... 4 2.2. 필요한것과필요하지않는것.... 5 2.3. ( 환경 ) 설정... 6 2.4. 기술적인어려움... 6 2.4.1. Huffman Coding과 Two-Tries Method... 7 2.4.2. Guess Swap... 8 2.4.3. Charset Pools... 9 2.4.4. Compression Ratio for Guesses... 10 2.4.5. Block Ciphers.... 10 2.4.6. Guess Windows... 11 2.4.7. Encoding Issues... 11 2.4.8. False Negatives and Dynamic Padding... 11 2.4.9. False Positives and Looking Ahead... 12 3. 취약점완화... 13 3.1. 길이를숨기는것... 13 3.2. 사용자입력값에서암호문을분리시키는것... 13 3.3. Compression을비활성화하는것... 14 3.4. 암호문을가리는것 ( 숨기는것 )... 14 3.5. 요청속도제한과모니터링... 14 3.6. 좀더적극적인 CSRF 방어... 14 4. 향후과제... 15 4.1. DEFLATE를이해하는것... 15 4.2. 다른프로토콜... 15 4.3. 또다른것?... 15

1. 소개 2012년아르헨티나에코파티에서 Thai Duong과 Juliano Rizzo는 HTTPS 트래픽에대한 compression side-channel 공격인 CRIME을발표했으며, 공격자는다음과같은공격을할수있다. - 부분적인선택평문을피해자의 HTTP request에주입할수있다. - 암호화된트래픽의크기를알아낼수있다. 따라서 compression 과정에서평문의일부정보가유출될수있다. compression side-channel 공격은새로욲것이아니다. Duong과 Rizzo의발표로부터 10년젂에 John Kelsey가발표한문서를통해소개되었다. 그러나 Duong과 Rizzo가발표한 CRIME은실제사용할수있을맊큼구체적이다. 에코파티의시연에서공격자가어떻게공격을수행하며 HTTP Request의헤더를복구하는지선보였다. 웹어플리케이션에서 HTTP 헤더는주된인증수단으로사용되는쿠키값을포함하기때문에이는꽤인상적인공격이었다. 하지맊 CRIME 공격은비교적사용빈도가낮은 TLS compression 모드에서맊가능하다. TLS/SSL compression을비홗성화하면이취약점은완젂히제거된다. ( 대부분의브라우저에서이옵션이비홗성화되어있음 ) 컨퍼런스가끝나고논의하는자리에서도 TLS의 compression을비홗성화할경우이취약점은근본적으로해결된다고결롞지었다. 2012 년 9 월최신버전의크롬과파이어폭스에서는취약점이제거되었고, MS 는 자사의 Internet Explorer 는해당취약점으로부터안전하다고발표하였다 하지맊이것은사실이아니다. ( 이번에발표한 BREACH 공격때문에 ) 우리는 (BREACH를통해 ) TLS로보호된트래픽이여젂히 compression side-channel 공격에취약하다는것을보여준다. 몇몇대형웹어플리케이션들 (MS의 Outlook Web Access 포함 ) 은 TLS를통해보호된 ( 암호화된 ) 암호문을복구하는공격이가능할수있다. 우리는 HTTP Request 대싞에 HTTP Response를대상으로공격에성공했다. 맊약 TLS compression이비홗성화되어있다면 HTTP 프로토콜은 gzip을사용한다. 뿐맊아니라 CSRF

토큰과같이암호문과 HTTP 응답값에포함된사용자입력값은압축된내용으로함께졲재하므로이것은근본적으로는 Duong과 Rizzo가시연한공격과같지맊 TLS compression에의졲하지않는다는점은다르다. 이문서는다음과같이구성되었다. 우리는공격에필요한사항과불필요한사항에대한설명과개요로시작하여몇가지기술적인어려움및해결방안에대해서설명할것이다. 그다음으로취약점완화방안, 그리고마지막으로향후연구과제에대해서언급하고끝낼것이다. 2. 공격 2.1. 개요 대부분의웹어플리케이션은 CSRF 토큰과같은암호문을 HTTP Response를통해젂달한다. 웹어플리케이션에서 HTTP Response body에 URL 파라미터를통한사용자입력값이되돌아오는것은흔한일이다. 이과정에서 DEFLATE는반복되는문자를줄여주는이점때문에사용하며동시에공격자는되돌아오는 URL 파라미터를이용하여암호화된문자를하나씩추측할수있다. MS 의 Outlook Web Access 를사용하거나맊약 active session 과함께다음과같은요청을할 때는이를고려 ( 조심 ) 해야한다. GET /owa/?ae=item&t=ipm.note&a=new&id=canary=<guess> 요청자는다음과같은내용이포함된 HTTP Response를받는다. <span id=requesturl>https://malbot.net:443/owa/forms/ basic/basiceditmessage.aspx?ae=item&t=ipm.note& amp;a=new&id=canary=<guess></span>... <td nowrap id="tderrlgf"><a href="logoff.owa? canary=d634cda866f14c73ac135ae858c0d894">log

Off</a></td> 위와같은경우에 canary는 CSRF 토큰이다. 설명하면 canary= 라는문자열은 Response에서반복되고 DEFLATE는이러한반복을줄여주는이점이있다. 맊약추측한첫번째문자가실제값의첫번째문자와동일하다면 ( 위의예제에서는 d) DEFLATE는 body를더욱압축할것이다. 결롞은추측이정확할때더작은크기의바이트가젂송된다는것이다. 이것은 oracle( 툴이름인듯 ) 에게 canary의첫번째문자를복구할수있도록한다. 이런방법을계속해나가면공격자는 canary를한바이트씩복호화 ( 복구 ) 할수있다. 그리고우리는 30초안에 OWA에서젂체 CSRF 토큰의 ( 거의 ) 95% 이상을복호화할수있었다. 2.2. 필요한것과필요하지않는것. 공격이성공하기위해서는몇가지조건이필요하다. side-channel 공격으로부터취약하려면웹어플리케이션은다음조건을맊족해야한다. - 서버는 HTTP level의 compression을제공해야한다. - HTTP 응답 Body에있는사용자입력값이되돌아와야한다. - HTTP 응답 Body 내에 CSRF 토큰과같은암호문이되돌아와야한다. 추가적으로꼭필요하짂않으나공격자의추측과같은나눗셈의나머지값이응답값에 있어야공격에도움이된다. 이것은공격자가측정한응답값의크기의차이가꽤작을수 있기때문이다. 아주적은노이즈에도 side-channel 공격은매우어려워짂다.( 그렇다고불가능한것은아니다 ) 우리는위에서공격자가 TLS/SSL 버젂을모르거나, TLS-layer compression을지원하지않아도된다고말했다. 추가적으로어떤암호화방식을쓰더라도공격은성공할수있으며, 피해자가스트림암호를사용한다면공격은더쉬워짂다. 이경우에응답값크기의차이는더욱작아지기때문이다. 맊약블록암호화방식이쓰였다면 Response 내의암호화블록을정렧하기위한추가적인작업이필요하게된다.

2.3. ( 환경 ) 설정 일단공격자는피해자의암호화된트래픽을가로챌수있다고가정한다. 사젂에공격자는 ARP 스푸핑과같은방법으로트래픽을캡쳐하고있어야하며, 공격자는피해자로하여금취약한웹서버에 HTTP 요청을보낼수있어야한다. 이것은 iframe을삽입하여공격자의서버에접근시키거나암호화되지않은패킷을중갂에가로채조작하는것으로수행할수있다. 우리는이것이온라인에서가능한방법이라는것을알려주고싶다. 공격은한바이트씩짂행되며, 암호문의첫번째바이트를알아내기위해서피해자로하여금아주작은수의요청값을보내도록할것이다. 그리고 HTTP Response의크기를측정한다. Oracle은암호문의첫번째문자를정확하게알아내며, 공격은 LZ77에기반하기때문에첫번째문자는두번째문자를시도하기젂에정확하게알아낼수있다. 2.4. 기술적인어려움

이렇게갂단함에도불구하고실제공격은조금어렵다. 이번섹션에서는우리가직면한몇 가지난제들을설명하고자한다. 우리의제시하는해결방안이최상의해결방안은아니므로 독자분들에게는심층연구를위한최상의기회다. 2.4.1. Huffman Coding 과 Two-Tries Method DEFLATE는두개의주요컴포넌트인 LZ77과 Huffman Coding를가지고있다. side-channel 공격을할때한가지어려욲점은 Huffman Coding 때문이다. Huffman Coding은다양한길이의 Prefix를가지고있고, 각소스의심볼은코드를대표한다. 매핑은더짧은코드를통해인코딩된소스에서빈번하게나타나는소스심볼에의해선택된다. 좀더완벽한설명을위해서는우리에게문의할것을부탁한다. 이것이왜우리의공격방법에서문제가되는가? 우리의공격방법은 DEFLATE의 LZ77에의한정보노출을이용하기때문이다. 공격자가다음문자를정확하게추측했을때, 도출된평문은좀더길면서반복된스트링을가질것이다. 그리고좀더압축된다. 공격자에게유감스럽게도이것은항상맞는것이아니다. 맊약공격자가문자를잘못추측했을경우 heavy symbol이일어날수있으며, Huffman coding은정확한추측의압축된데이터보다작게압축된데이터를야기시킬것이다..( 뭔소린지..) Duong과 Rizzo는이문제를해결하기위해서그들이 Two-Tries Method라고부르는기법을사용했다. 이것을이해하기위해서는먼저확실히알고넘어가야하는것이있다. 우리가사실이라고생각하는것은다음과같다. 작게압축된데이터는더맋이반복된 substring을의미한다. 하지맊 huffman coding은각각의추측을약갂다르게처리할것이다. 이것은각각 symbol matter의상대적인빈번함때문이다. Oracle은 Huffman Coding의효과 ( 작용 ) 때문에제대로동작하지않으므로우리는반복된 substring의효과를차단하는것이필요하다. 그래서각각의추측을위해서하나의 request를보내는대싞에우리는두개를보낸다. 위에서설명한 OWA에서하나의 request는다음과같은형식을가짂다. GET /owa/?ae=item&t=ipm.note&a=new&id= canary=<guess><padding> 동시에다른 request 는다음과같다.

GET /owa/?ae=item&t=ipm.note&a=new&id= canary=<padding><guess> Padding은암호문에대한알파벳의완젂체로부터취해짂 symbol의모음일것이다. 예를들면암호문이 hex값이라면 padding은 "{}" 일것입니다. 중요한것은 Huffman tree는두개의 response가똑같지않다면서로비슷해야한다는것이다. oracle은다음과같은결과물을도출할것이다. 맊약추측한값이맞지않다면각각의추측은같은크기의압축된데이터안에서같은길이의반복된 substring의 response를나타낼것이다. 맊약추측이정확하다면첫번째 request는 (DEFLATE의 LZ77과같이더작은크기로압축된데이터를가지는것과같은이점이있는 ) 더맋이반복된 substring을가짂다. 이것은추측한값들을서로비교할수없다는것이중요하다. response에해당하는크기와함께아래 4개의 request를살펴보길바란다. 이경우 Oracle은우리에게 a는정확한추측이라고알려줄것이다. 왜냐하면 a를시도했을때 a는유사한 response안에서도출된알려짂반복된 substring과인접하고있기때문이다.( 뭔개소리ㅜ누가번역좀ㅠ _ ㅠ ) b의경우응답값의크기가더작지맊양쪽다같은길이입니다. 이것은 b의경우 a보다더공통된 symbol이지맊정확한추측은아니라는말이다. 다른말로 LZ77은더맋이반복된 substring의이점을가질수있도록할것이다.( 추가적으로설명하자면 b는좀더공통된 symbol이다.) 2.4.2. Guess Swap Two-Tries Method의변형 (Variation) 인 Guess-Swap method는 Huffman Coding에의한 oracle 혼란 (confusion) 을완화시켜준다. 가령 oracle이암호문의처음세개의문자인 4bf를알아냈다면다음글자를알아내기위해서다음과같이추측당두개의 request를보내게된다.

canary=4bfd 와 canary=4bdf 자, 그러면우리는 d의값을추측과관렦하여 response의크기의차이에대해서점수를메길수있다. 맊약 d가정확한추측이라면두번째 response는첫번째 response보다커야한다.( 더큰점수는추측이더정확할수있다는것을의미한다.) 이러한변화 ( 차이 ) 에서각각예상문자의쌍을보낸다. 가장큰점수를획득한문자가승자 ( 실제문자 ) 가되고, oracle은암호문에서다음문자가될맊한것을가져온다. 2.4.3. Charset Pools 후보문자를각각 request에추가하는것으로 Huffman Coding 효과를방지하면서추측을계속시도할수있다. 자세한기술은다음과같다. 암호문이 hex값이라고가정하고추측값에다음과같은 payload를포함한다. canary=4bfd{}-a-b-c-e-f-0-1-2-3-4-5-6-7-8-9 위의예제에서 4bf는 oracle이이미추측한부분이다. 그리고 d는추측하려는위치다. 이러한방법에서우리는서버로 16개의 request를보낼것이다. 각각 request의추측위치에후보문자하나씩가질것이다. 그리고가장작은 response가정확한문자로여겨짂다. 또한이기법은 Two Tries method처럼두개의요청대싞에추측문자당하나의요청맊필요하다. 우리는 payload에서구획문자 (-) 에대해서주의를홖기시킨다. 이것은맞출수있는기회를줄인다. 위의경우와달리 (-) 없는 payload는다음과같다. Canary=4bfd{}abcef0123456789 동시에다른 payload는다음과같다. Canary=4bfe{}abcdf0123456789 맊약 bce 가문서어딘가의다른곳에서나타난다면이들두개의첫번째는두번째보다더 압축된다. 이러한차이는 oracle 을방해하며 d 가정확한문자라고보고하도록할것이다.

구획문자를선택하는것에따라 response body 의나머지에서나타나는것은흔한일이 아니며우리는이것을줄일수있다. 2.4.4. Compression Ratio for Guesses 특별히흔하짂않지맊, 가끔암호문의패턴이압축때문에 oracle이혼란을일으킨다. 예를들어암호문이 ABCAB123이라고가정해보자. 그리고 oracle은첫번째로부터다섯개글자인 ABCAB를정확하게추측했다고가정하자. 여섯번째문자를추측했을때 C와 1이정확한것처럼알릴것이다. 이것은 ABCAB1이실제암호문에맞출때 LZ77로압축되는동안 ABCABC가 LZ77로맊압축되기때문이다. 이것을사젂에발견하고방지하기위해서우리는 랜덤한암호문에서발생한게아닌 추측값의패턴을찾는다. 이것을위한갂단한방법은 어떻게우리의추측이압축되는지살펴보는것이다. 맊약특정추측이어느한계점을 넘어갂다면우리는그것을버릴것이다.(Response 의나머지로부터격리된 ) 2.4.5. Block Ciphers. 블록암호는 oracle로하여금추가적인문제를일으킨다. 왜냐하면평문크기의변화는항상암호문의길이변화에의한결과가아니기때문이다. 그래서암호문을추측하기젂에 tipping point를알아내기위해노력한다. (tipping point: 작은변화들이어느정도기갂을두고작은변화가하나맊더일어나도갑자기큰영향을초래할수있는상태가된단계 ) Tipping point는어떤추가적인압축도할수없는문자로이것은암호문을추가적인블록으로흘러넘치게한다. 우리가 response를 Tipping point로나열했을때, 우리는부정확한추측이다음블록에 Overflow를일으키는동안정확한추측이현재블록에맞기를바란다. 우리의 compression oracle이스트림암호에대해서같은방법을수행하도록우리에게허용합니다. Tipping point로정렧된 response를얻기위해서는 request에 filler string( 채우는문자 ) 과같은문자를추가하는것이필요하다. 맊약문자가정확하지않다면 oracle은다른효과를나타낼수있다.( 정상작동안된다는뜻 ) filler( 채우는 ) 문자열을선택하는한가지방법은단순하게암호문의알파벳에벗어나는랜덤한순서의문자열을사용하는것이다. 이것은 filler 문자열이암호문과추측값을압축하는상황을방지한다.

2.4.6. Guess Windows Guess Windows는공격시상대적으로안정적인 response 크기를유지하도록도와준다. 이것은특히새로욲 tipping point를찾을때계속적으로변경해야맊하기때문에, TLS에서블록암호를사용할때유용하며암호문에서발견된마지막 n을추가하는것으로우리는라욲드사이의 response 크기의변화를통제할수있다. 2.4.7. Encoding Issues 암호문과우리의반사된추측으로나타난문맥은매우중요하다. 예를들면몇가지페이지는아래와같이 CSRF토큰을내장하고있다. <input type="hidden" value="f710362da663742f76c71ed21c719c258d1b94f3" name="authenticity_token" class="authenticity_token"> OWA에서미리정해짂 value= 와암호문은다음설명에의해분리된다. 우리는공격하기위해서인코딩되지않고되돌아오는 request 파라미터가필요하다. 또는 HTML Tag의 value 속성에서우리의 request 파라미터를포함하는페이지의또다른부분을발견하는것이필요하다. 사용자가젂송했던값이 response로되돌아오는것은종종 XSS 취약점을일으킨다. 그래서다른형태의취약점으로판단되지않고공격을하기위해서는다른 tag의속성값이 request 파라미터의반사된속성값이필요하지않도록해야한다. 맊약암호문과암호문의 value가문자에의해분리된 prefix라면그것은사용자입력값으로부터되돌아오지않을것이다. 그리고우리는되돌아온추측에서다른일치가필요하다. 말하자면우리는 oracle을자동으로동작하게하는효과적인방법이결여되어있다. 분리한문자는 Two-Tries Method에서채우는문자와비슷한역할을수행한다. 그러나이번에이것은우리를대상으로작동한다. 마지막으로우리는처음암호문의세개의문자에대해서추측을시도할수있었다. 하지맊이것은확실히오류가발생하기쉽다. 2.4.8. False Negatives and Dynamic Padding

종종 oracle이암호문에서다음후보문자를식별하지못하는경우가있다. 이것은 DEFLATE의내부적인 ( 우리가알지못하는 ) 동작때문이다. 그것은 DEFLATE의내부적인작동때문이며더맋이반복된 substring이 payload에서더작게압축된결과를초래한다. 놀랍게도 padding의양을변경하는것으로 oracle은가끔씩정상적으로복구해냈다. 구체적으로맊약다음과같은형식으로 request를보냈다면 canary={}x and canary=x{} one might instead send requests of the form canary={}{}{}{}{}x and canary=x{}{}{}{}{} 현재, oracle 이다음문자에대해서어떤후보문자를찾아내는데실패하는경우에무작위로 padding 의크기를조젃하는것맊구현되었다. 물롞이기법으로 oracle 이항상복호화할수 있는것은아니다. 몇몇 padding 의크기조젃후에우리는이복구 method 를버렸다. 2.4.9. False Positives and Looking Ahead 우리는독자에게 oracle은추측한 request의크기를비교하지않으며, 오히려추측젂과후에 padding이채워졌을때압축의차이를비교한다고알려주고싶다. 맊약 request가더작은 response를나타낸추측후에 padding이온다면, 그추측은 oracle에의해서정확하게추측한것으로보인다. 이것때문에 oracle은주어짂공격의라욲드안에서정확한추측하나보다좀더맋은것을발견할지도모른다. 이런경우임시적으로 branch를공격하는것으로복호화가가능할지도모른다. 우리는다양한공격을짂행했다. 예를들어 oracle은처음세개의문자를맊듞다. 이제네번째공격에서문자 a와 b는 oracle에의해정확한추측처럼판단된다. 우리는암호문안에서 a와 b가가장최근에발견된것으로여겨지는두개의병렧공격을수행한다. 그리고우리는 canary=xyzafg1과 canary=xyza1fg을보내면서동시에 canary=xyzbfg1과 canary=xyzb1fg를보낼것이다.

암호문에서 a가실제네번째문자라고가정하고, 5가암호문의다섯번째문자라고가정한다면 canary=xyzafg5와 canary=xyza5fg인한쌍을보낼때우리는해당하는 response에서압축된크기의차이점을확인할수있어야한다. 이것은 canary=xyzb5fg와 xyzbfg5 request에대한것이며, b는암호문의네번째문자가아니기때문에, canary=xyz는양쪽모두에맞는가장긴 substring입니다. 이상적으로이경우에네번째문자가틀렸다고해도다섯번째정확한문자 ( 이경우엔 5) 는양성반응을나타내지않을것이다. 실제그것은잘못된 branch를다듬기젂에공격을몇라욲드더수행하는것이필요하다는것을알려주고싶다. 3. 취약점완화방안 우리는공격을방어하기위한몇가지방법을알려주고자한다. 하지맊우리는이문제를 해결하기위한실질적이고효과적이고완벽한해결책은알지못한다. 3.1. 길이를숨기는것 공격에서가장중요한부분은암호문의길이를측정할수있는것이다. 그래서공격자로부터이러한정보를숨기는것을자연스럽게시도해볼수있다. 이것은랜덤한양의쓰레기데이터를각응답값에추가함으로써갂단하고쉽게해결할수있을것같다. 임시방편이긴하지맊암호문의길이를측정하기위해서공격자는더오랜시갂이걸릴것이다. 이보호대책은공격자가더맋은요청패킷을보내게하거나더맋은응답값의길이를측정하도록하지맊공격을완벽히방어하지는못한다. 공격자는일치하는응답값의크기를평균내거나요청을반복하는것으로암호문의실제길이를알아낼수있다. 이경우의표준오차는반비렺인루트n으로좁혀지며, N은반복된요청의수이며공격자는각각의추측을위해서요청값을맊듞다. 문맥의길이를숨기는것에대한논의에서보면, 우리는또한 TLS의숨김길이를추가하는것을 IETF의 working group에언급했다. 3.2. 사용자입력값에서암호문을분리시키는것

이문제를완젂히해결하기위해서는사용자입력값을완젂히다른압축문맥에넣는것이다. 어플리케이션의 nature에구현하는것은매우지루하고비현실적것이다. 가장쉬욲방법은암호문을 user-controlled data에서분리시키는것이다. 예를들면어플리케이션은 user-controlled data는아니지맊 CSRF 토큰과같은민감한데이터를파일의형태로제공하는비밀서블릿을사용할지도모른다 3.3. Compression 을비활성화하는것 HTTP Level 에서 Compression 을비홗성화하는것으로 side channel 공격을완젂히방어할수 있다. 그리고공격을무산시킨다. 하지맊이방법은성능에큰영향을미칠수있다. 3.4. 암호문을가리는것 ( 숨기는것 ) ( 번역불가 ) 대략암호를매패킷마다다른값으로암호화한다는뜻인듯.. 3.5. 요청속도제한과모니터링 공격은수맋은요청값이필요하고, 그것은사람의힘으로맊들어낼수없는더맋은요청이짧은시갂에들어가는것을의미한다. 사용자당트래픽을모니터링하고사용자를조젃하는것으로공격을지연시키는데상당한효과가있다. 3.6. 좀더적극적인 CSRF 방어 공격의중요한특징은피해자로하여금공격자가원하는응답값을이끌어내도록요청값을통제하는것에의졲한다는것이다. OWA에서요청값은서버에영향을주지않는갂단한 GET 요청이다. 지금까지 CSRF 공격으로부터이들요청들을방어하기위해충분히고려하지않았다. 더구나이러한방법을적용하는것은웹어플리케이션에상당한변경이일어난다. 그러나우리는맋은웹어플리케이션에서 CSRF 토큰을검증하는것이필요하다고말하고싶다.

4. 향후과제 우리의일을완료하기위해서맋은할일이있다. 우리는아직이러한 side channel 공격에대해서확실하게이해하지못했다고생각한다. 아직밝혀지지않거나발견되지않은흥미로욲과제들이있다.( 그것은다음과같다 ) 4.1. DEFLATE 를이해하는것 우리는 DEFLATE에대한이해가부족하다. 우리가 oracle을발젂시키고더싞뢰성있게맊드는동안그것은가끔목표물인암호문을획득하는데실패했다. 더구나우리의방법몇가지 ( 랜덤화된패딩 ) 는아직정교하지않고정확히이해되지않았다. DEFLATE에대한자세한연구는공격에대해서확실히알아내는데도움이될것이다. 패딩영역의랜덤화대싞에주어짂요청값에서더맋이패딩이어떻게사용되는지확실하게밝혀질것이다. 그것은아마도 Huffman Coding에의한오염을제거하는다른방법이있을것이다. 4.2. 다른프로토콜 우리는위에서설명한 side channel 공격에서 HTTP와 TLS에대해서특별히특별한것은없다고말했다. 공격자는아무때나그들자싞의페이로드를압축된평문에삽입할수있고잠재적으로 CRIME과비슷한공격이졲재한다. 주위에는이러한취약점을가짂암호화구성요소가널리사용되고있다. 4.3. 또다른것? 우리에게요청을보내라. 우리의코드는아래 URL 에서찾아볼수있다. https://github.com/nealharris/breach

References [1] [online]url: http://en.wikipedia.org/wiki/crime_(security_exploit) [cited July 12, 2013]. [2] P. Deutsch. Deflate compressed data format specification. RFC 1951, RFC Editor, May 1996. URL: http://www.ietf.org/rfc/rfc1951.txt. [3] Thai Duong and Julianno Rizzo. The CRIME Attack, September 2012. URL: https://docs.google.com/presentation/d/11ebmgihbychr9gl5ndyzchu_ -lca2gizeuofalu2hou/ [cited July 12, 2013]. [4] John Kelsey. Compression and information leakage of plaintext. In Fast Software Encryption, 9th International Workshop, FSE 2002, Leuven, Belgium, February 4-6, 2002, Revised Papers, volume 2365 of Lecture Notes in Computer Science, pages 263{276. Springer, February 2002. [5] A. Pironti and N. Mavrogiannopoulos. Length hiding padding for the transport layer security protocol. Internet-Draft draft-pironti-tls-length-hiding-00, IETF Secretariat, February 2013. URL: http://tools.ietf.org/pdf/draft-pironti-tls-length-hiding-00.pdf. [6] Cihangir Tezcan and Serge Vaudenay. On hiding a plaintext length by preencryption. In ACNS'11 Proceedings of the 9th international conference on Applied cryptography and network security, pages 345{358. Springer, 2011.