ASEC에서는 8월 29일 "오라클 자바 JRE 7 제로 데이 취약점 악용 악성코드 유포"를 통해 자바(Java) JRE에서 알려지지 않은 제로 데이(Zero-Day, 0-Day) 취약점이 발견되었으며, 이를 악용한 악성코드가 유포되었다고 공개하였다.


해당 CVE-2012-4681 자바 취약점외에도 다른 CVE-2012-0507 자바 취약점 역시 다수의 악성코드 유포에 사용되고 있다.


일반적으로 자바의 경우 JVM을 이용한 샌드박스(SandBox) 개념의 보안 기능을 운영체제에 제공하고 있다. 악의적인 코드의 경우 JVM에서 시큐리티 매니져(Security Manager)를 기준으로 차단을 하게 된다. 예를 들어 파일을 디스크에 쓰거나 실행하는 경우에 정책(Policy)에 허용 되지 않은 경우에는 해당 명령은 허용 되지 않는다.


그러나 최근에 발견된 자바 취약점을 악용하는 악성코드 제작자들은 샌드박스를 우회 하기 위해 2가지 방법을 사용하고 있다.


1. 샌드박스 자체 무력화 - CVE-2012-0507 취약점



해당 CVE-2012-0507 취약점은 AtomicReferenceArray에서 발생한다. AtomicReferenceArray 클래스의 경우 시큐리티 매니져에서 ArrayObject에 대한 타입(Type)을 체크 하지 않으며, 해당 배열 생성시 역직렬화를 하고, 역직렬화된 악의적인 코드를 doWork에 정의된 클래스가 샌드박스 밖에서 실행하도록 한다.


역직렬화를 하게 되면 메모리에 악의적인 코드가 쓰일 수 있기 때문에 시큐리티 매니져에서 해당 객체에 대해서 접근에 대한 체크가가 필요하지만, 체크 하지 않아 문제가 발생하게 된다.


2. 샌드박스 내부의 정책 우회를 위하여 시큐리티 매니져를 setSecurityManger(Null)로 우회 - CVE-2011-3544와 CVE-2012-4681 취약점


샌드박스에서 시큐리티 매니져는 정책으로서 접근제어를 수행하게 된다. 하지만 시큐리티 매니져가 무력화 될 경우 접근제어를 수행하지 않기 때문에 악의적인 코드 실행이 가능해진다.


자바는 JVM에서 명령을 수행하기 위해서는 시큐리티 매니저가 함수내에서 빈번하게 호출되며, 자바 애플릿 역시 예외가 아니다. JVM이 포함되어 있는 웹 브라우저가 애플릿이 포함된 웹 사이트 접속시 JVM으로 애플릿을 다운 받아 실행하게 된다. 이 과정에서 로컬에서 실행하기 위해서는 디스크에 파일을 쓰고 실행을 하여야 하는데, 시큐리티 매니져를 우회 하여야 악성코드를 감염 시킬 수 있게 된다.



CVE-2011-3544와 CVE-2012-4681의 경우가 시큐리티 매니져를 우회하는 취약점으로 해당 취약점들은 toString Method에서 해당 함수를 실행할 경우 시큐리티 매니져를 우회 하는 취약점이였다. 


시큐리티 매니져를 해제하기 위해서는 setSecurityManager함수를 이용하여 시큐리티 매니져를 해제 해야한다. 하지만 JRM에서 setSecurityManger(NULL)을 호출하게 되면, 에러(Error)와 함께 함수 호출에 대해 실행을 허가 하지 않지만, toString Method를 이용하게 되면 해당 함수를 호출할 수 있는 취약점이다.


이와 비슷한 원리로 작동하는 취약점이 CVE-2012-4681으로 해당 취약점은 sun.awt.SunToolkit을 이용하여 파일시스템에 대한 모든 권한을 부여함으로서 시큐리티 매니져를 비활성화하도록 한다. 


현재 앞서 설명한 자바 취약점들 모두 다수의 악성코드에서 악용되고 있음으로 오라클(Oracle)에서 제공하는 보안 패치를 설치하여야만 다른 보안 위협들로보터 시스템을 보호 할 수 있다.

저작자 표시 비영리 변경 금지
신고
Posted by 비회원

ASEC에서는 8월 29일 "오라클 자바 JRE 7 제로 데이 취약점 악용 악성코드 유포"를 통해 오라클 자바 JRE(Java Runtime Environment) 7에서 임의의 코드를 실행 할 수 있는 코드 실행 취약점(CVE-2012-4681)을 발견하였음을 공개하였다.


한국 시간으로 8월 31일 금일 자바 JRE 7에 존재하는 취약점 CVE-2012-4681을 제거 할 수 있는 보안 패치를 보안 권고문 "Oracle Security Alert for CVE-2012-4681"를 통해 공개하였다.


현재 해당 자바 JRE 7에 존재하는 취약점 CVE-2012-4681을 악용하는 JAR 파일이 공다 팩(GongDa Pack)블랙홀(Blackhole)이라 불리는 웹 익스플로잇 툴킷(Web Exploit Toolkit)을 통해 백도어 기능을 수행하는 윈도우 악성코드와 맥(Mac) 악성코드 등 지속적으로 다양한 형태의  악용 사례가 발견되고 있다.


그러므로, 오라클에서 배포 중인 해당 보안 패치를 즉시 설치하여 해당  CVE-2012-4681 취약점을 악용하는 다양한 보안 위협을 예방하는 것이 중요하다.


오라클에서 배포 중인 보안 패치를 포함한 최신 버전은 웹 사이트 "무료 Java 다운로드" 또는 "Java SE Downloads"를 통해 다운로드 가능하다.


그리고 기존 버전이 설치되어 있다면 아래와 같은 절차를 통해 자동 업데이트 및 설치가 가능하다.


1. 윈도우 제어판에서 [자바 제어판] 실행 후, 상단 [갱신] 탭을 클릭하여 [자동 갱신 확인]에 체크가 되어 있는지 확인하고 없다면 체크 하도록 한다. 그리고 하단의 [지금 갱신]을 클릭한다.



2. [자동 갱신 확인]에 체크 한 후 [지금 갱신]을 클릭하면 아래 이미지와 같이 자동 업데이트가 진행된다.



앞서 언급한 바와 같이 현재 해당 자바 JRE 7에 존재하는 취약점 CVE-2012-4681을 악용하는 사례가 존재함으로 해당 보안 패치를 즉시 설치하는 것이 중요하다.

저작자 표시 비영리 변경 금지
신고
Posted by 비회원

미국 현지 시각으로 8월 26일 보안 업체 FireEye에서 블로그 "ZERO-DAY SEASON IS NOT OVER YET"를 통해 오라클(Orcle) 자바 JRE(Java Runtime Environment) 7에서 임의의 코드를 실행 할 수 있는 코드 실행 취약점(CVE-2012-4681)을 발견하였음을 공개하였다.


현재 해당 자바 JRE 취약점은 개발 업체인 오라클에서 해당 보안 취약점을 제거할 수 있는 보안 패치를 제공하지 않고 있는 제로 데이(Zero-Day, 0-Day) 취약점으로 각별한 주의가 필요하다.


이 번에 발견된 자바 JRE 관련 제로 데이 취약점은 다음 버전의 소프트웨어에서 악용이 가능하다.


Oracle Java 7 (1.7, 1.7.0)

Java Platform Standard Edition 7 (Java SE 7)

Java SE Development Kit (JDK 7)

Java SE Runtime Environment (JRE 7)


해당 자바 JRE 관련 취약점은 최초 아래 이미지와 같이 중국에서 제작된 공다 팩(GongDa Pack)이라 불리는 웹 익스플로잇 툴킷(Web Exploit Toolkit)에서 사용되는 스크립트 악성코드를 통해 유포되었으며, 최초 유포지는 대만에 위치한 특정 시스템이다.



이 번 자바 JRE 취약점 악용을 위해 유포된 공다 팩에서 사용되는 스크립트를 디코딩 하게 되면 스크립트가 유포된 동일한 시스템에 존재하는 Appelt.jar (7,855 바이트)와 hi.exe (16,896 바이트)가 다운로드 되도록 제작되었다.


다운로드 된 Appelt.jar (7,855 바이트) 내부에는 아래 이미지와 같이 해당 CVE-2012-4681 취약점을 직접적으로 악용하도록 제작되어 있는 클래스(Class) 파일인 App.class (7,231 바이트)가 포함되어 있다.



해당 자바 JRE 취약점(CVE-2012-4681)으로 인해 실행되는 hi.exe (16,896 바이트)는 최초 실행이 되면 윈도우 시스템 폴더(C:\WINDOWS\system32\)에 mspmsnsv.dll (10,240 바이트) 파일을 생성하게 된다.


C:\WINDOWS\system32\mspmsnsv.dll 


그리고 윈도우 시스템에 존재하는 정상 프로세스인 svchost.exe를 실행하여 해당 프로세스의 스레드로 생성한 mspmsnsv.dll (10,240 바이트)을 인젝션하게 된다.


인젝션이 성공하게 되면 특정 도메인명을 가진 C&C 서버와 통신을 시도하나 분석 당시에는 정상적인 접속이 이루어지지 않았다. 정상적으로 접속이 성공하게 되면 원격 제어 등의 공격자가 의도하는 백도어 기능을 수행하게 된다.


추가적으로 핀란드 보안 업체 F-Secure에서는 블로그 "Blackhole: Faster than the speed of patch"를 통해 블랙홀 웹 익스플로잇 툴 킷(Blackhole Web Exploit Toolkit)을 통해서도 유포 중에 있는 것으로 공개하였다.


ASEC에서 이와 관련한 추가 정보들을 확인하는 과정에서 사회 공학 기법을 악용한 이메일을 통해 최소 약 300개의 도메인을 이용해  유포 중인 것으로 파악하였다.


현재 블랙홀 웹 익스플로잇 툴 킷을 통해 유포 중인 CVE-2012-4681 취약점을 악용하는 JAR 파일은 Pre.jar (31,044 바이트)Leh.jar (31,044 바이트) 파일명으로 유포 중이나 2개 모두 동일한 파일이다. 그러나 현재 언더그라운드에서는 해당 취약점을 악용 가능한 PoC(Proof of Concept)가 공개되어 있음으로 다양한 변형들이 지속적으로 유포될 것으로 예측된다.


이 번에 발견된 자바 JRE 7에서 임의의 코드를 실행 할 수 있는 코드 실행 취약점(CVE-2012-4681)을 악용하는 악성코드들 모두 V3 제품 군에서 다음과 같이 진단한다.


JS/Downloader

JAVA/CVE-2012-4681

JS/Blacole

Win-Trojan/Poison.16898 

Win-Trojan/Buzus.153447

Trojan/Win32.Npkon


그리고 네트워크 보안 장비인 트러스가드(TrusGuard) 제품군에서는 해당 취약점을 악용한 공다 팩 스크립트 악성코드와 취약한 클래스 파일을 포함한 JAR 파일을 다음과 같이 탐지 및 차단이 가능하다.


javascript_malicious_gongda-2(HTTP)

java_malicious_jar-8(HTTP)

java_malicious_jar-gd(HTTP)


앞서 언급한 바와 같이 현재 자바 JRE에서 발견된 취약점은 제로데이 취약점으로 자바 개발 업체인 오라클에서 보안 패치를 제공하지 않고 있다.


이와 관련하여 US-CERT에서는 보안 권고문 "Oracle Java JRE 1.7 Expression.execute() and SunToolkit.getField() fail to restrict access to privileged code" 을 통해 아래와 같은 사항들을 임시 방안으로 권고하고 있다.


* 자바 플러그인 비활성화


- 파이어폭스 (Firefox)

파이어폭스 실행 후 상단의 [도구]->[부가 기능]을 클릭한다. 그 중에서 "플러그인"을 선택 후 자바 관련 플러그인들을 "사용안함"으로 설정한다.


- 사파리(Safari)

[기본 설정]을 클릭후 [보안]을 선택한다. 그리고 "Java 활성화"에 체크 마크를 해제한다.



- 크롬(Chrome)

크롬을 실행 후 주소 창에 "chrome://plugins/"을 입력한 후, "JAVA Plug-in"을 사용 중지한다.


- 인터넷 익스플로러(Internet Explorer)

윈도우 제어판을 실행 훈 "Java 제어판" -> [고급]을 선택 한 후 [브라우저용 기본 Java]에서 [Microsoft Internet Explorer]에 체크 마크를 해제한다.



앞서 언급한 바와 같이 현재 해당 취약점은 보안 패치가 제공되지 않는 제로 데이 취약점임으로 각별한 주의가 필요하다. 그리고 언더그라운드에는 이미 해당 취약점을 악용 할 수 있는 PoC 코드가 공개 되었음으로 다양한 보안 위협에서 해당 취약점을 악용 할 가능성이 높을 것으로 예측 된다.

저작자 표시 비영리 변경 금지
신고
Posted by 비회원