본문 바로가기

벌새::Security

Java 캐시 뷰어를 이용한 악성코드 감염 엿보기

악성코드 유포 방식 중에 Java 취약점을 이용한 방식은 Adobe Flash Player 취약점을 이용한 방식과 함께 국내외에서 활발하게 이용되고 있으며, 수시로 Oracle Java 제품군에 대한 보안 취약점 패치가 발표되고 있습니다.

 

  업데이트 : Oracle Java SE Runtime Environment 6 Update 33 & 7 Update 5 (2012.6.13)

 

만약 사용자가 보안 취약점에 노출된 구버전의 Oracle Java SE Runtime Environment 플러그인이 설치된 PC 환경으로 변조된 웹 사이트에 방문할 경우 자동으로 감염될 수 있으며, 이로 인하여 개인정보 유출, 백도어(Backdoor) 설치로 인한 추가적인 피해가 발생할 수 있습니다.

 

그렇다면 이런 Oracle Java 취약점을 이용한 악성코드 감염 또는 감염 시도가 있었는지 엿볼 수 있는 방법이 있는지 "Java 캐시 뷰어"를 통해 엿볼 수 있는 방법을 살펴보도록 하겠습니다.

 

우선 정상적인 Java 실행을 통한 모습을 통해 Java 캐시 뷰어에 대한 개념을 이해해 보도록 하겠습니다. 

Adobe Flash Player와 마찬가지로 Java 역시 사용자가 인터넷을 이용하는 과정에서 특정 Java 플러그인을 요구하는 웹 페이지에 접속할 경우 Google Chrome 웹 브라우저의 경우 상단에 그림과 같은 노란색 바를 생성하여 실행 여부를 묻는 동작을 확인할 수 있습니다.

 

만약 실행할 할 경우 해당 웹 서버로부터 동작에 필요한 jar 파일을 다운로드하여 구현이 이루어지는 정상적인 응용 프로그램 역할을 하게 됩니다.

 

일반적으로 사용자가 인터넷을 이용할 경우 웹 페이지에 노출되는 다양한 콘텐츠는 인터넷 임시 폴더 내에 파일을 다운로드하여 웹 브라우저에 구현이 되며, Java 동작 역시 특정 폴더에 다운로드된 캐시가 저장되게 됩니다. 

해당 캐시를 통해 어떤 파일이 저장되었는지 확인할 수 있는 방법은 "제어판 → 프로그램 → Java" 항목을 통해 생성된 "java 제어판 → 임시 인터넷 파일" 항목을 통해 확인할 수 있습니다. 

임시 인터넷 파일 항목의 "보기" 버튼을 클릭하시면 "java 캐시 뷰어" 창이 생성되며, 위에서 예시로 보여준 특정 웹 페이지에서 Java 플러그인 구현을 위해 다운로드된 노란색 리소스 항목이 등록된 것을 확인할 수 있습니다.

 

그런데 해당 리소스 목록에 보시면 주말에 집중적으로 유포되는 Gondad.jpg 악성 파일과 관련된 부분이 기록되어 있는 것을 확인할 수 있습니다.

 

수정 날짜에서는 2012년 3월 29일경 다운로드 또는 제작이 된 것으로 추정되며, 이런 경우 다운로드 당시 Oracle Java 프로그램이 취약점에 노출된 버전인 경우 자동으로 감염이 이루어졌을 확률이 매우 높았을 것으로 보입니다.

 

§ 여기서 잠깐!

 

만약 보안 패치가 완벽하게 이루어진 PC 환경에서 Java 취약점을 이용한 웹 사이트 접속시 Java 캐시 뷰어에는 어떻게 기록되는지 확인해 보도록 하겠습니다. 

실제 최신 버전의 Oracle Java 프로그램이 설치된 환경에서 악성 웹 페이지를 방문할 경우 그림과 같이 감염을 유발할 수 있는 Half.jar 파일이 사용자의 Java 캐시 폴더에 다운로드되는 것을 확인할 수 있습니다.

 

이 상태에서 취약점에 노출된 버전인 경우 추가적인 감염이 이루어질 수 있으며, 최신 버전인 경우(단, 제로데이(0-Day) 취약점 관련이 아닌 경우)에는 캐시 파일에만 저장될 뿐 감염으로 연결되지는 않습니다.

 

이로 인하여 백신 프로그램을 이용하여 정밀 검사를 할 경우 해당 캐시 폴더에 다운로드된 jar 파일을 진단하여 보안 패치가 완벽한 PC에서도 감염이 아닌가 의심할 수 있으리라 판단됩니다. 

참고로 해당 캐시 파일(MD5 : 72ff644c6b2c3bfec0a4f9468c16d608)에 대하여 TrendMicro 보안 제품에서는 JAVA_BLACOLE.BBT (VirusTotal : 2/42) 진단명으로 진단되고 있는 것을 확인할 수 있습니다.

 

다시 본론으로 돌아와서 Oracle Java SE Runtime Environment 프로그램이 설치된 경우, 기본값으로 임시 파일 저장과 관련된 폴더 위치는 Windows 7 운영 체제 기준으로 "C:\Users\(사용자 계정)\AppData\LocalLow\Sun\Java\Deployment\cache\6.0" 폴더로 되어 있습니다.

 

해당 폴더 내에는 과거부터 인터넷을 이용하는 과정에서 Java 플러그인을 통해 생성된 숫자로 구성된 다수의 폴더가 존재합니다. 

이 중에는 앞서 정상적인 Java 플러그인 동작을 위해 실행한 Java 캐시 파일(jar)이 그림과 같이 저장되었을 수도 있으며, 사용자가 인지하지 못한 악성 웹 사이트에 접속하여 저장된 악성 Java 캐시 파일이 저장되어 있을 수도 있습니다.

 

저장된 캐시 파일은 "(영문+숫자)-(영문+숫자)" 패턴의 파일로 저장되어 어떤 파일인지 일반 사용자가 확인하기 매우 어려우므로, 현재 사용자 PC에 다운로드된 캐시 정보는 "Java 캐시 뷰어"에 기록된 리소스 이름과 URL 정보를 바탕으로 대략적인 확인이 가능합니다.

 

단 이미 보안 제품의 진단으로 인해 삭제된 캐시 파일 정보 역시 Java 캐시 뷰어에 기록되어 있을 수 있으므로, Java 취약점을 이용한 감염을 체크하실 때에는 해당 뷰어 내용을 참고하시는 것도 좋은 방법입니다. 

만약 뷰어에 표시된 특정 리소스가 악성으로 확인된 경우에는 해당 항목을 선택하여 상단의 붉은색 삭제(X) 버튼 또는 마우스 우클릭을 통해 생성된 삭제 메뉴를 통해 목록 제거 및 캐시 파일이 존재할 경우 자동으로 삭제 처리가 이루어집니다. 

만약 사용자가 일정한 수준의 지식이 없는 경우에는 "임시 파일 설정" 창에서 제공하는 "파일 삭제" 기능을 이용하여 추적 및 로그 파일, 캐시에 저장된 응용 프로그램 및 애플릿, 설치된 응용 프로그램 및 애플릿 파일을 삭제할 수 있습니다.(※ 설치된 응용 프로그램 및 애플릿 항목은 체크하지 마시고 삭제를 하시길 권장합니다.)

 

하지만 이런 경우 일부 정상적인 응용 프로그램 관련 파일이 제거될 수 있으므로 주의하시기 바랍니다.