보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

XXN(X-XSS-Nightmare) IE 인터넷 브라우저 필터 우회 취약점 (CVE-2015-6144, CVE-2015-6176)

2016.02.03

27,152

 

 

 

보안관제사업본부 보안분석팀 이수현


1. 개요

 

지난 12월 Microsoft에서 Windows 사용자들이 사용하고 있는 인터넷 브라우저(IE) 취약점에 대한 긴급패치가 업로드 되었다. 해당 취약점은 CVE-2015-6144, CVE-2015-6176로 인터넷 브라우저(IE) 에서 XSS(Cross-Site-Scripting) 공격 예방을 위해 보안상 제공되는 XSS Filter를 Bypass 하여 공격을 일으키는 취약점이다.  CVE 두 개의 번호로 할당되어 인터넷 IE 8,9,10,11 버전(CVE-2015-6144)과 Windows 10에서 제공되는 Edge 브라우저(CVE-2015-6176)에 적용된다.

 

 

XXN(X-XSS-Nightmare) 취약점 공격기법은 일본인 Masato Kinugawa에 의해 발표되었다.
해당 취약점은 인터넷 브라우저(IE)가 보안을 위해 적용하고 있는 XXS Filter에 적용된 http 응답 값 대신 XXS Filter에 의해 html 특성이 잘못 비활성화되어 해당 필터를 우회할 수 있게 되는 취약점이며, Nightmare라는 이름처럼 XXS Filter가 적용되어 있으나 잘못된 적용 때문에 공격을 성공할 수 있는 것이 특징이다. 그러나 현재까지는 해당취약점을 통한 공격사례는 발견되지 않았다.

 

 

 

 CVE ID

 CWE ID

 취약점 종류

 최초 발표일

 업데이트 일

 점수

 CVE-2015-6144

 79

 Cross Site ScriptingBypass

 2015-12-09

 2015-12-09

 4.3

 CVE-2015-6176

 79

 Cross Site ScriptingBypass

 2015-12-09

 2015-12-09

 4.3


[표 1] CVE 취약점

 

 

 

2. 취약점 정보

XXN(X-XSS-Nightmare) 취약점은 인터넷 브라우저(IE 7)을 제외한 대부분의 인터넷 브라우저(IE)가 영향을 받고 있으며, 영향받는 브라우저 및 업데이트 정보는 아래와 같다.

 

 

 구분

 영향 받는 브라우저

취약한 버전 

 CVE-2015-6144

 Internet Explorer 8

 MS 보안 업데이트
3116180 이하의 모든 버전

 Internet Explorer 9

 Internet Explorer 10

 Internet Explorer 11

 CVE-2015-6176

 Microsoft Edge

 MS 보안 업데이트
3116184 이하의 모든 버전


[표 2] 취약한 인터넷 브라우저(IE) 정보

 

 


3. 취약점 분석

1) Internet Explorer XSS Filter 원리

일반적으로 MS용 인터넷 브라우저(IE)는 XSS Filter를 통해 XSS 공격을 차단하고 있다. XSS Filter는 브라우저(IE)를 통하는 모든 요청(Request)과 응답(Response)을 확인하여 정규식을 통해  XSS Filter를 감지한다.
Internet Explorer는 XSS 공격 시 정규식으로 공격을 감지하게 되면 페이지 내용을 변환하는 특징이 있다.
여기서 특징은 응답 값 소스를 변경하여 삽입하더라도 그 이후에 페이지가 변경되어 공격을 차단한다.

 

 

[그림 1] IE XXS Filter 원리


XSS Filter가 적용된 상태에서 XSS 스크립트 구문을 삽입하여 Reflacted XSS를 시도 하였으나, 교차 사이트 스크립팅 방지를 위해 페이지를 변경했다는 정보를 알려주고 있으며 소스코드 확인결과 내용이 실제로 변경되어 Internet Explorer 브라우저가 XSS Filter를 통해 페이지 내용을 변경한다는 것이 증명되었다.

 



[그림 2] XSS 공격구문 확인 및 변경된 코드 확인(IE)

 

 

2) XXN(X-XSS-Nightmare) 공격 원리


style 태그에 대한 XSS Filter의 정규표현식은 아래와 같다.

 



[그림 3] Style 태그 정규표현식

 


① 속성으로 /, tab, “, ‘중 하나
② 문자열이 더 포함되어 있는 경우 Style  뒤 동일한 문자열의 요청을 잘라낸다.
③ 앞 문자열이 (나 가 존재 시 요청을 자른다
④ : 또는

 


XXN의 근본적인 원인은 XSS 필터가 HTML 특성을 잘못 비활성화해서 생기는 취약점으로 이는 XSS 필터에서 사용하는 정규표현식이 입력 값에 대한 검증이 아니라 입력 값이 존재할 때 내부 소스코드까지 참조하여 정규표현식을 성립 시킬 수 있기 때문에 문제가 된다. 아래 Style 태그 정규표현식과 매칭시켜 정규표현식 만족값을 완성해 보는 과정을 나열하였다.

 



[그림 4] Style 태그 정규표현식

 



[그림 5] Request 정규표현식 만족값

 



[표 3] 소스코드 Response 값

 


정규표현식을 변환시켜 검증해 주는 사이트가 존재하고 있어 비교 검증 후 만족하고 있는 값임을 확인하였다.

 

 

[그림 6] 정규표현식 검증

 

앞서 실제 정규 표현식에 맞게 필터링 되는지 확인하기 위해 입력이 가능한 테스트용 웹 페이지를 구현해 보았다.

 

 

[표 4] 테스트 소스코드

 

**RegExr v2.0BETA : http://regexr.com/

 

해당 테스트는 Windows 7 IE 8 환경에서 진행하였으며, 필터링 여부 확인을 위해 “style=“x:expresstion( 
삽입결과 교차 사이트 스크립팅 방지를 위한 페이지로 변경되었다.

 



[그림 7] Style 태그 공격차단

 

 

소스보기로 확인결과 삽입하였던 스타일 태그 부분이 XSS Filter에 의해 변경된 것을 확인할 수 있다.

 



[그림 8] 소스코드 확인

 


파라미터의 입력 값(Requset) 호출과 응답 값(Response )에서 정규표현식을 만족하게 되면 XSS 필터가 적용된다. 이를 확인하기 위해 앞서 검증한 정규표현식을 만족한 값(/style++++++=++=)을 해당 파라미터에 삽입결과 공격구문을 삽입하였을때와 동일하게 필터가 적용되었다.

 

 

[그림 9] 정규표현식 테스트

 



[표 5] Style 태그 변경확인

 


다음과 같이 XSS Filter로 인해 < /style > 태그가  변경되게 되면 < style > 영역이 코드 전체를 덮게 된다.
CSS 코드는 비정상 문법 존재 시 무시하고 다음 줄을 실행시키는 특징이 있다.

 



[표 6] Style 태그 변경확인

 



[표 7] Style 태그 변경확인

 


3) XXN(X-XSS-Nightmare) 공격 시나리오


공격자는 대상 홈페이지 소스보기 등을 통해 Style 태그를 사용중인지 확인하고 정규표현식을 만족하는 값을
찾는다. 이후 정규표현식 값과 XSS 공격코드를 함께 전달하여 의도적으로 XSS 필터를 통해 Style 태그를 변경하도록 한다. Style 태그가 #처리되면서 이후에 삽입한 Style 태그 스크립트가 실행되는데, 스크립트 실행을 통해 악성 사이트로 유도 또는, 접속자의 세션탈취 등의 공격이 가능하다.

 



[그림 10] XXN 공격 시나리오

 


4) XXN(X-XSS-Nightmare) 공격 테스트


테스트 브라우저는 IE 8, 9, 10, 11 그리고 Edge 브라우저를 통해 진행하였다. 

 

 

 구분

테스트 브라우저 

XSS 검증 

CVE-2015-6144

Internet Explorer 8 8.0.6001. 18702

 실행

Internet Explorer 9 9.0.8112.16421

 실행

Internet Explorer 10

 실행

Internet Explorer 11 11.0.9600.18124

 실패

CVE-2015-6176

Microsoft Edge 25.10586.0.0
Microsoft EdgeHTML 13.10586

 실패

 

[표 8] XXN 공격 검증 브라우저


테스트를 위해 간단한 코드로 페이지를 만들었으며, 앞서 진행하였던 Style 태그를 이용하여 XSS 공격을 진행
하였다.

 



[표 9] Style 태그 이용한 페이지 생성

 


5) XXN(X-XSS-Nightmare) 공격 테스트


직접 코딩한 테스트 페이지 파라미터값에 아래와 같은 스크립트 구문을 삽입하여 접속하였다.  

 

 

[그림 11] Style 태그 스크립트 삽입


Internet Explorer IE 8에서는 해당 구문이 실행되는 것을 확인하였다.

 



[그림 12] Style 태그 스크립트 실행

 

Internet Explorer IE 9에서는 해당 구문이 실행되는 것을 확인하였다.

 

 

[그림 13] Style 태그 스크립트 실행
 

 

Internet Explorer IE 10에서는 동일한 구문이 공격이 불가하여 일부 소스코드와 스크립트 구문 및 정규표현식 만족 값을 수정하여 실행 가능하였다.

 



[그림 14] ] Style 태그 스크립트 실행

 

 

 

4. 결론 & 대응방안


현재까지 취약점을 이용한 공격사례는 발견되지 않았으며, 해당 취약점은 인터넷 브라우저(IE)에서 제공하는 XSS 필터에 대한 위협이었으나, 실제로 IE 이외에 제공되고 있는 Chrome, Opara, Safari 등도 정규표현식을 통해 필터링이 감지되고 있음으로 완전한 위협이 사라졌다고는 볼 수 없다. 보안담당자 및 개발자 그리고 사용자도 모두 관심을 가지고 예방 및 조치에 힘을 기울여야 한다.

 

1) Windows 업데이트를 통한 대응방안

취약점의 영향을 받는 인터넷 브라우저(IE)들은 아래와 같으며, 3116180/3116184 버전 이하의 경우 모두 최신 버전 및 아래의 긴급 보안 업데이트를 진행해야 한다.

 

 

 취약한 버전

보안 업데이트 

 Internet Explorer 8

 Internet Explorer용 누적 보안 업데이트(3116180)
https://technet.microsoft.com/library/security/ms15-124​ 

 Internet Explorer 9

 Internet Explorer 10

 Internet Explorer 11

 Microsoft Edge

 Microsoft Edge용 누적 보안 업데이트(3116184)
https://technet.microsoft.com/library/security/ms15-125

 


[표 10] 취약한 인터넷 브라우저(IE) 정보


2) HTTP 헤더설정을 통한 보안

 X-XSS-Protection Response Header 값을 사용하며 X-XSS-Protection: 1; mode=block 으로 적용한다.


HeadersFilter 다운로드 : https://jira.spring.io/browse/SEC-2099

 


3) XSS 공격 패턴 일부 차단


OWASP에서는 XSS Filter를 우회가능 하였던 스크립트에 대한 정보를 제공한다. 아래 패턴들은 테스트에 사용하였던 공격패턴 종류들로 공격차단 및 탐지에 활용한다.


XSS Filter 우회 공격 패턴 : https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet

 

 XSS 공격 패턴

 < SCRIPT SRC=http://ha.ckers.org/xss.js >< /SCRIPT >

 < XSS STYLE="xss:expression(alert('XSS'))" >

 < XSS STYLE="behavior: url(xss.htc);" >

 < LINK REL="stylesheet" HREF="javascript:alert('XSS');" >

 < LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css" >

 

[표 11] XSS 공격 패턴 리스트

 

4) Smart Screen 필터 적용

 

MS에서 제공하는 브라우저의 기능인 Smart Screen 필터를 적용하여 악성코드 다운로드 및 위협 사이트의 악의적 기능을 차단한다.
**Smart Screen 필터 : 안티 멀웨어 지원 (Activex, Expoit의 보안기능지원), 악성코드 차단등의 기능존재.


[Microsoft Edge 설정 방법]


설정 → 고급설정보기 → SmartScreen 필터

 

 


[Internet Explorer 설정 방법]

 

인터넷옵션 → 고급 → 보안>SmartScreen 필터 사용

 

 

 

 

 

5. 참고자료

http://www.cvedetails.com/cve/CVE-2015-6144/
https://technet.microsoft.com/library/security/ms15-124
https://technet.microsoft.com/library/security/ms15-125
http://www.cvedetails.com/cve/CVE-2015-6144/
http://www.cvedetails.com/cve/CVE-2015-6176/
http://www.slideshare.net/masatokinugawa/xxn-en