출처 : http://www.ahnlab.com/kr/site/securitycenter/asec/asecView.do?groupCode=VNI001&webNewsInfoUnionVo.seq=19717


6월에 마이크로소프트가 발표한 MS12-037 Internet Explorer 누적 보안 업데이트에 포함된 패치 중 CVE-2012-1875에 해당하는 동일한 ID 속성을 사용하는 원격 코드 실행 취약점의 인터넷상 공격 코드가 공개되었다. 현재 이 취약점을 이용한 공격 사례들이 많이 보고되고 있어 주의가 필요하다. 이번 취약점은 img 태그와 div 태그에서 동일한 ID 속성 값을 사용하는 경우에 발생하는 메모리 손상(Memory Corruption) 버그이며 use-after-free가 원인이다. Use-after-free 버그는 힙메모리에 할당(use)받아서 사용하고 해제(free)한 후에, 다시 해당 값을 사용할 때 발생한다.

 


[그림 2-2] 동일한 ID 속성을 사용하는 취약점 발생 코드

 

현재 보고된 바에 따르면 CVE-2012-1875는 Internet Explorer 8에만 해당되는 취약점으로 IE8을 이용하고 있다면 주의가 필요하다.

CVE-2012-1875 취약점을 공격하는 코드는 html 기반이며 메일이나 악의적인 웹 사이트를 통해 악성코드를 감염시키고 있다. 아울러 사용되는 코드에는 ROP(return-oriented programming) 기법이 내장되어 있어 DEP, ASLR 등의 윈도우 보안 메커니즘을 우회한다. 해당 공격코드는 인터넷 익스플로러를 사용하는 XP 시스템뿐만 아니라 윈도우 7에도 영향을 줄 수 있다.

 


[그림 2-3] ROP Exploit 기법

 

MS12-037 Internet Explorer 누적 보안 업데이트는 총 13개의 취약점에 대한 패치를 포함하고 있어 안전한 인터넷 사용을 위해서는 보안 패치를 먼저 실시하는 것이 필요하다.

 

 

XML 코어 서비스의 취약점으로 인한 원격 코드 실행 문제점(CVE-2012-1889)


6월 MS 보안 패치가 발표된 직후에 발견된 MS XML 코어 서비스(Core Services)에 대한 제로데이 공격이 발생한 사실이 알려져 MS에서 권고문을 발표했다.

 

현재 XML 코어 서비스 취약점에 대한 보안 패치는 없으며, 임시 방편으로 MS 권고문(보안 권고 2719615)에서 제공하는 마이크로소프트 픽스잇 솔루션을 통해 해결이 가능한 상태이다. 그러나 해당 취약점을 이용한 공격 사례들이 많이 보고되고 있으며, 최근에는 기존 취약점들(Java CVE-2010-0886, Flash CVE-2011-0611 등)과 결합된 복합적인 공격 형태도 보이고 있다.

 

해당 취약점은 msxml의 definition 함수에서 초기화되지 않은 메모리의 개체에 접근하려고 시도할 때 발생하여, 해당 접근으로 인해 메모리가 손상되어 악의적인 코드를 실행할 수 있게 된다.

 


[그림 2-4] msxml3.dll crash 화면

 

알려진 Exploit들은 CLASS ID 값으로 F6D90F11-9C73-11D3-B32E-00C04F990BB4를 쓰며 definition 함수를 이용하여 Heap spray 기법을 통해 공격하며 변형된 형태들도 많다.

 


[그림 2-5] xml core services 취약점 공격

 

이러한 공격을 방어하기 위해서는 알려지지 않은 특이한 웹 사이트 방문을 최소화하며 인터넷 익스플로러 이외의 빠른 자동 업데이트 보안을 제공하는 크롬(Chrome) 및 파이어폭스 등의 사용을 고려해 볼 수 있다.

 

 

XML 코어 서비스 취약점(CVE-2012-1889) 악용 증가


2012년 6월 12일 마이크로소프트는 XML 코어 서비스에서 알려지지 않은 제로데이 취약점이 발견되었음을 보안 권고문 <Microsoft Security Advisory (2719615) Vulnerability in Microsoft XML Core Services Could Allow Remote Code Execution>을 통해 공개했다.

 

해당 취약점은 공격자가 지정한 임의 코드를 실행할 수 있는 코드 실행 취약점이며, 해당 XML 코어 서비스를 사용하는 윈도우 운영체제와 오피스 2003, 2007 버전에서 악용할 수 있다. 해당 취약점은 현재까지도 마이크로소프트에서 보안 패치를 제공하지 않는 제로데이 취약점이며, 임시 방안으로 해당 취약점을 제거할 수 있는 픽스 잇(Fix it)을 보안 공지 <Microsoft 보안 공지 : Microsoft XML Core Services의 취약성으로 인한 원격 코드 실행 문제>를 통해 배포하고 있다.

 

해당 XML 코어 서비스를 악용하는 스크립트 악성코드가 국외에서 발견되는 사례가 서서히 증가하고 있어 주의가 필요하다. 최근 발견된 해당 제로데이 취약점을 악용하는 스크립트 악성코드는 [그림 2-6]과 같은 형태의 셸코드(Shellcode)가 구성되어 있다.

 


[그림 2-6] XML 코어 서비스 취약점을 악용하는 스크립트 악성코드

 

해당 스크립트 악성코드에 포함된 셸코드가 작동되면 홍콩에 위치한 특정 시스템에서 css.exe (32,936바이트)를 다운로드한 후 실행한다. 해당 파일이 실행되면 윈도우 운영체제에서 실행되는 정상 프로세스인 explorer.exe의 스레드로 자신의 코드들을 [그림 2-7]과 같이 삽입한다.

 


[그림 2-7] explorer.exe 프로세스 메모리에 덮어 쓰여진 악성코드

 

그리고 자신의 코드들이 정상적으로 스레드 인젝션 되면 구글의 공개용 DNS 서버로 질의를 송신하여 감염된 시스템이 인터넷에 정상적으로 연결되는지 확인한다. 그 후 싱가포르에 위치한 특정 시스템에 접속을 시도한다. 분석 당시에는 해당 시스템으로 정상적인 접속이 이루어지지 않았다. 해당 악성코드는 감염된 시스템에서 하드웨어 정보, 운영체제 정보 및 커맨드라인(Command-Line) 명령을 실행한다.

 

앞서 언급한 바와 같이, 해당 XML 코어 서비스 취약점은 보안 패치가 제공되지 않는 제로데이 취약점이므로 각별한 주의가 필요하다. 임시방편으로 마이크로소프트에서 제공하는 픽스 잇을 설치할 수 있다.



+ Recent posts