본문 바로가기

벌새::Security

Oracle Java 제로데이(0-Day) 취약점 : CVE-2012-4681 (2012.8.29)

2012년 8월 26일경 해외 보안 연구원에 의해 최초로 확인된 Oracle Java Runtime Environment(JRE) 7 최신 버전의 알려지지 않은 보안 취약점(CVE-2012-4681)을 이용한 악성코드 유포 행위가 발견되었습니다. 

   <FireEye> Zero-Day Season is Not Over Yet (2012.8.26)

 

  <KISA 인터넷침해대응센터> Oracle Java JRE 신규 취약점 주의 권고 (2012.8.28)

 

해당 유포 행위는 특정 웹 사이트에 접속시 중국(China)에서 제작된 Dadong's JSXX 0.44 VIP 툴을 이용하여 제작된 악성 스크립트를 이용하여 Oracle Java Runtime Environment(JRE) 7 Update 6 최신 버전이 설치되어 있는 환경에서 자동으로 감염되도록 제작되어 있습니다.

 

이를 통해 Gondzz.class, Gondvv.class 2개가 포함된 악성 applet.jar 파일을 불러와 hi.exe 또는 Flash_update.exe와 같은 최종 파일을 다운로드하여 감염을 유발하는 것으로 알려져 있습니다.

 

감염된 환경에서는 "C:\WINDOWS\system32\mspmsnsv.dll" 파일을 생성하며, 해당 파일은 시스템 시작시 "Portable Media Serial Number Service" 서비스 값을 등록하여 자동 실행되어 Poison Ivy Remote Access와 같은 백도어(Backdoor) 기능을 하는 것으로 보입니다.

 

  • Mozilla Firefox on Ubuntu Linux 10.04
  • Internet Explorer / Mozilla Firefox / Chrome on Windows XP
  • Internet Explorer / Mozilla Firefox on Windows Vista
  • Internet Explorer / Mozilla Firefox on Windows 7
  • Safari on OS X 10.7.4

현재 알려진 분석 정보에 의하면 Windows XP ~ Windows 7 운영 체제에서 Internet Explorer, Mozilla Firefox 웹 브라우저를 사용하는 사용자가 Oracle Java Runtime Environment 7 Update 0 ~ Oracle Java Runtime Environment 7 Update 6 버전이 설치된 경우 자동으로 감염이 이루어지는 것으로 보입니다.

 

특히 현재 해외의 경우 Blackhole Exploit Kit 범죄 도구를 통해 CVE-2012-4681 제로데이(0-Day) 취약점을 이용한 악성코드 유포 행위가 확인되고 있으며, 국내의 경우 중국(China) 사이버 범죄 조직에서 국내를 표적으로하는 광범위한 사용이 예상됩니다.

 

참고로 Oracle Java Runtime Environment(JRE) 제품은 OpenOffice와 같은 응용 소프트웨어 동작 또는 특정 웹 페이지 구현을 위해 필요한 플러그인입니다.

 

이에 임시로 취약점을 가진 Oracle Java Runtime Environment 7 제품의 삭제없이 기능을 OFF할 수 있는 방법을 운영 체제(OS)와 웹 브라우저 환경에 따라 소개해 드리도록 하겠습니다.(※ 해외에서 공식적으로 제공하는 일부 방법이 실제와는 다른 부분이 있는 관계로 개인적으로 응용하였으므로 100% 안전성은 담보하지 못합니다.)

 

1. Windows XP 운영 체제 : Internet Explorer 웹 브라우저

 

(1) 실행창에 "javacpl.cpl" 명령어를 입력하여 "Java 제어판"을 실행합니다. 

 

(2) Java 제어판의 "Java" 탭 메뉴에서 제공하는 "보기" 버튼을 클릭하여 "Java Runtime Environment 설정" 창을 실행합니다. 

Java Runtime Environment 설정창에서는 현재 사용자 PC에 설치된 Oracle Java Runtime Environment 7 버전을 사용하도록 체크되어 있는 것을 확인할 수 있습니다.

 

해외 정보에서는 해당 사용 체크 박스를 해제하도록 안내하고 있지만, 테스트 과정에서는 체크 해제가 되지 않는 것으로 확인되고 있습니다. 

그러므로 해당 항목에서 ① "추가" 버튼을 클릭하여 그림과 같이 추가줄은 생성한 후, ② 현재 설치되어 있는 Oracle Java Runtime Environment 7 버전의 사용 체크 박스를 해제하시기 바랍니다. 

그 이후 추가한 줄을 선택하여 "제거" 버튼을 클릭하시면 최초의 상태로 돌아온 상태에서 사용 체크 박스는 체크 해제된 상태를 유지하게 됩니다.

 

(3) Java 제어판의 "고급" 탭에서 "브라우저용 기본 Java" 항목에 체크된 "Microsoft Internet Explorer" 체크 박스를 해제하시기 바랍니다. 

모든 절차가 완료된 환경에서 Internet Explorer 웹 브라우저를 종료한 후 재실행한 경우에는 변경한 설정값이 적용되어 사용자가 Internet Explorer 웹 브라우저를 이용하여 인터넷을 이용하는 과정에서 Oracle Java Runtime Environment 취약점을 이용한 감염이 이루어지지 않게 됩니다.

 

(4) Internet Explorer 웹 브라우저의 "추가 기능 관리" 메뉴를 실행하여 "도구 모음 및 확장 프로그램"에 등록된 다음의 2개 항목을 찾아 "사용 안 함"으로 변경하시기 바랍니다. 

  • Java(tm) Plug-In SSV Helper
  • Java(tm) Plug-In 2 SSV Helper

모든 조치가 완료된 경우 반드시 Internet Explorer 웹 브라우저 종료를 통해 재실행 하시기 바랍니다. 

실제로 Oracle Java Runtime Environment 취약점을 이용한 감염을 유발하는 웹 사이트에 접속한 경우 자동으로 감염되지 않으며, 그림과 같이 해당 페이지에서는 Java를 사용한다는 메시지만을 표시하는 동작을 확인할 수 있습니다.

 

2. Windows Vista / Windows 7 운영 체제 : Internet Explorer 웹 브라우저

 

(1) "제어판 → 프로그램 → Java" 메뉴를 실행하여 "Java 제어판 → Java → 보기" 버튼을 실행하여 "Java Runtime Environment 설정" 창을 실행하시기 바랍니다. 

생성된 Java Runtime Environment 설정창에서는 Windows XP 운영 체제에서와 마찬가지로 "추가" 버튼을 통한 새로운 줄을 추가하여 기존에 등록된 Oracle Java Runtime Environment 7 제품의 사용 체크 박스를 해제하시기 바랍니다. 

이를 통해 최종적으로 Java Runtime Environment 설정창이 그림과 같은 상태가 되도록 설정을 변경하시기 바랍니다.

 

(2) "Java 제어판 → 고급" 탭에서 제공하는 "브라우저용 기본 Java → Microsoft Internet Explorer"의 체크 박스를 해제하시기 바랍니다. 

Windows Vista / Windows 7 운영 체제 환경에서는 해당 체크 박스가 비활성화되어 있는 관계로 Java 제어판에서는 체크 해제가 불가능하므로 다음과 같은 절차를 따르시기 바랍니다. 

참고로 레지스트리 편집기(regedit)는 반드시 관리자 권한으로 실행하여 진행하시기 바랍니다.

 

■ 32비트 운영 체제 사용자 

레지스트리 편집기에서 "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Plug-in\10.6.2\UseJava2IExplorer" 값을 선택하시기 바랍니다.(※ 10.6.2 버전값은 사용자 PC에 설치된 Oracle Java Runtime Environment 7 버전에 따라 달라질 수 있습니다.) 

"UseJava2IExplorer" DWORD 기본값은 "1"로 설정되어 있으며, 해당 값을 "0"으로 변경하시기 바랍니다. 

이를 통해 Java 제어판의 고급 메뉴에 등록된 브라우저용 기본 Java가 Microsoft Internet Explorer에서 체크 해제된 것을 확인할 수 있습니다.

 

■ 64비트 운영 체제 사용자

 

64비트 운영 체제 환경에서는 레지스트리 편집기(regedit)를 실행하여 "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Plug-in\10.6.2\UseJava2IExplorer" 레지스트리 값을 선택하여 "1 (기본값) → 0"으로 변경하시면 됩니다.

 

(3) Internet Explorer 웹 브라우저의 "추가 기능 관리" 메뉴를 실행하여 "도구 모음 및 확장 프로그램"에 등록된 다음의 3가지 항목을 찾아 "사용 안 함"으로 변경하시기 바랍니다. 

  • Deployment Toolkit
  • Java(tm) Plug-In SSV Helper
  • Java(tm) Plug-In 2 SSV Helper

모든 조치가 완료된 경우 반드시 Internet Explorer 웹 브라우저 종료를 통해 재실행 하시기 바랍니다. 

실제 설정이 완료된 환경에서 Java 취약점을 이용한 악성 웹 사이트에 접속할 경우 Windows XP 운영 체제와 마찬가지로 Java 동작과 관련된 안내창이 표시되며, 웹 브라우저 하단에서는 Java SE Runtime Environment 추가 기능을 실행할지 묻는 동작을 확인할 수 있습니다.

 

하지만 사용자가 "허용" 버튼을 클릭하여도 실제 감염으로 연결되지 않는 것을 확인할 수 있었습니다.

 

2. Mozilla Firefox 웹 브라우저 

  • Java Deployment Toolkit 7.0.60.24 10.6.2.24
  • Java(TM) Platform SE 7 U6 10.6.2.24

Mozilla Firefox 웹 브라우저 사용자는 "부가 기능 관리자 → 플러그인" 메뉴를 선택하여 등록된 2개의 Java 관련 플러그인을 "사용 안 함"으로 변경하시기 바랍니다.(※ 붉은색 버전은 사용자 PC에 설치된 Oracle Java Runtime Environment 7 버전 정보에 따라 다릅니다.)

 

3. Google Chrome 웹 브라우저

 

현재 알려진 정보에 따르면 CVE-2012-4681 취약점은 구글 크롬(Google Chrome) 웹 브라우저 환경에서는 동작하지 않는 것으로 알려져 있습니다.

 

하지만 구글 크롬(Google Chrome) 웹 브라우저 환경에서 Java 플러그인을 해제할 수 있는 방법을 소개해 드리겠습니다. 

구글 크롬(Google Chrome) 웹 브라우저 주소창에 "chrome://plugins" 명령어를 입력하시면 현재 사용자 PC에서 사용할 수 있는 플러그인 목록에 제시됩니다.

 

그 중에서 Java 관련 2개의 플러그인(Next Generation Java Plug-in 10.6.2 for Mozilla browsers, NPRuntime Script Plug-in Library for Java(TM) Deploy)을 찾아 "사용 중지" 버튼을 클릭하여 비활성화하시기 바랍니다.

 

이상으로 보안 패치가 공개되지 않은 CVE-2012-4681 제로데이(0-Day) 보안 취약점 문제를 임시적으로 해결할 수 있는 방법을 소개해 드렸으며, Oracle Java Runtime Environment 7 버전이 설치된 사용자는 되도록 보안 패치가 공개되는 시점까지 비활성화를 하시고 인터넷을 이용하시기 바랍니다.

 

또한 보안 패치가 공개되어 설치시에는 반드시 해당 설정값을 원래대로 수정하시고 설치를 진행하시기 바랍니다.