Trojan.Java.RAT.A
해당 악성코드는 스팸 메일로 사용자에게 전파되어 첨부파일 실행 시 사용자의 정보를 외부 서버로 전송하고, 사용자의 타이핑을 가로채는 키로깅 기능, 감염된 PC를 조종할 수 있는 봇의 기능을 가진 악성코드입니다.
기능상으로는 기존 악성코드와 별차이가 없지만, 이번 악성코드는 JAR(Java Archiver)파일이 포함된 스팸 메일로 유포되었고, 자바가 설치된 사용자 타겟으로 제작되었다는 특징이 있습니다.
악성코드 순서도
악성코드 상세 분석
※ 악성파일 분석(Docs.jar)
Docs.jar 파일은 사용자 정보 확인, JNativeHook을 이용한 키로깅, 파일복사, 레지스트리 추가, 플로그인 로드, 네트워크 접속, 봇 행위들을 수행합니다. 상세분석에서는 해당 기능들에 대한 자세한 내용들을 살펴보도록 하겠습니다.
참고로 Docs.jar 파일이 동작하기 위해서는 자바 7 (build 1.7) 이상 버전이 설치되어 있어야 하며,
스팸 메일에 첨부된 Docs.jar 파일을 오픈하면 바로 실행할 수 있습니다.
- 사용자 정보 확인
스팸메일에 첨부된 파일이 실행되면 사용자의 컴퓨터이름, 맥 어드레스, OS 종류 및 버전, 시스템 루트 경로를 파악합니다. 체크하는 OS종류는 Linux, Mac os x, Windows 총 3가지입니다.
[그림1] 사용자 정보 체크 코드
- 파일 생성 및 레지스트리 추가
사용자의 OS종류가 확인되면 OS에 맞게 자신을 복사할 '홈 디렉토리' 또는 '특정 디렉토리' 를 구합니다. 디렉토리가 구해지면 각각 폴더에 자기자신을 복사하고, 부팅 시 자동 시작될 수 있도록 쉘 스크립트 및 데몬을 등록합니다.
□ Linux OS 자동시작을 위한 쉘 스크립트 생성
□ Mac OS X 자동시작을 위한 plist 파일 생성
□ Windows OS 자동시작을 위한 Run 레지스트리 생성
※ JNativeHook을 이용한 키로깅
키로깅 오픈소스 JNativeHook 라이브러리를 이용하여 사용자의 키보드와 마우스의 정보를 가로챕니다. 이번 파일에 포함된 'JNativeHook' 라이브러리는 'JNativeHook-1.1.4' 버전으로 확인되며, Windows, Linux(unix), Mac OS X 등의 OS 종류에 따라 키보드, 마우스의 이벤트 Hook을 가능하게 합니다.
JNativeHook 라이브러리가 시작되면 'registerNativeHook()'을 호출해서 훅을 시도합니다. 이 후 리스너를 등록하며, 후킹 모듈에서 리스너를 호출하고 이벤트 데이터를 전달하는 방식으로 되어있습니다.
[그림2] JNativeHook 라이브러리 로드 코드
각 OS와 아키텍쳐 별로 그에 맞는 후킹 모듈들을 모두 가지고 있으며, 아래와 같은 폴더 경로에 포함되어 있습니다. OS 환경 정보를 구해와 그에 맞는 후킹 라이브러리 파일을 로드합니다.
[그림3] OS에 따른 Hook 라이브러리 체크 코드
각 OS 환경에서 후킹 라이브러리 파일을 로드 하는 내용은 아래의 표와 같습니다.
OS에 따른 각각의 방법으로 키보드와 마우스 이벤트를 후킹합니다. OS 별로 후킹하는 방법은 다르지만 이벤트를 처리하는 콜백 부분부터는 이벤트 데이터를 변환하고 JNI를 통해 자바 내부에 특정 메소드를 호출하는 동일한 방식을 사용합니다.
[그림4] 이벤트 데이터 추출 코드
이벤트 데이터가 추출되면, 특정 클래스에서 이벤트 데이터를 받아 이벤트 종류에 따라 처리 후 로깅을 수행합니다.
[그림5] 이벤트 전달 후 로깅 코드
추가적으로 OS별 후킹 방식은 아래와 같습니다.
□ Windows OS 후킹
Windows의 경우 “SetWindowsHookEx” API 를 이용한 후킹 방식을 사용합니다.
[그림6] Windows 후킹 방식
□ Linux OS (Unix) 후킹
Linux OS의 경우에는 X Record Extenstion Library를 이용한 방법을 사용합니다.
[그림7] Linux OS (Unix) 후킹 방식
□ Mac OS X 후킹
Mac OS X 에서는 “CGEventTapCreate()” 를 이용해서 훅을 수행합니다. 그리고 키보드 및 마우스의 이벤트에 대한 마스크 설정 이후 콜백과 함께 등록합니다.
[그림8] Mac OS X 후킹 방식
OS별 후킹이 완료되면, 홈디렉토리에 'js_logs' 폴더를 생성 후 '년-월-일-시(ex: 2014-10-22-14.txt)'를 생성합니다. 이 행위는 1시간마다 반복되어 파일명 '시'만 변경됩니다.
※ 아래 그림은 Windows OS에서 동작 시 생성된 로그
[그림9] 사용자 정보가 담긴 키로깅 저장 파일
[그림10] 키로깅 저장 파일 내부
※ 플러그인 로드
악성파일은 자신이 가지고 있는 플러그인 Jar 파일 2개를 복사하기 위해 '홈디렉토리'에 'js_plugins' 폴더를 생성합니다.
[그림11] js_plugins 폴더 생성 코드
'js_plugins' 폴더가 생성되면 'plugins.txt' 파일을 읽어 txt 파일 속에 있는 문자를 파싱합니다. 파싱 방법은 ':' 구분자를 통해 파일을 구분하여 2개의 jar 파일을 실행시키는 것입니다.
[그림12] plugins.txt 파일 플러그인 리스트
[그림13] plugins.txt 파일 파싱 코드
플러그인 Jar 파일 복사가 완료되면, 정상적으로 복사가 되었는지 해당 폴더에 파일이 존재하는지 검사합니다. 정상적으로 복사가 되었다면 아래와 같은 메시지를 가져옵니다.
FOUND DisableWebcamLightsStub.jar, WANTED DisableWebcamLightsStub.jar
FOUND MessageBox.jar, WANTED MessageBox.jar
[그림14] 플러그인 Jar 파일 검사 코드
플러그인 Jar파일 검사가 끝나면 플러그인 파일들을 실행합니다. DisableWebcamLightsStub.jar 플러그인은 노트북이나 데스크탑 캠 사용 시 표시되는 웹캠 라이트와 PC 랜카드 사용 시 표시되는 LED를 해제합니다.
해제 방법은 관련 레지스트리 셋팅 값을 수정하는 것입니다.
[그림15] 웹캠 라이트 및 랜카드 LED 해제 코드
MessageBox.jar 플러그인은 메시지 박스를 팝업시킵니다.
[그림16] 메시지 박스 생성 코드
※ 서버 접속
특정서버에 주기적으로 접속을 시도합니다. 접속 성공 시 사용자 정보, 실행 중인 악성코드 정보, 키로그 저장 파일과 C&C서버와의 통신이 이루어집니다
- 사용자 정보
컴퓨터이름, 맥 어드레스, OS 종류 및 버전, 시스템 루트 경로
- 실행 중인 악성코드 정보
시작 파라미터 : true
ID : jSpy Session
버전 : 0.32
숨김모드 파라미터 : true
- 키로그 저장 파일
js_logs 폴더 하위 “년-월-일-시.txt” 파일 (ex : 2014-10-22-14.txt)
- C&C 접속 서버 IP 및 포트
193.0.***.***, TCP 2209
※ 봇 기능
C&C 서버 접속이 성공적으로 이루어지면, 오퍼의 명령에 의해 36가지 봇의 기능들을 수행할 수 있습니다. (분석 시 C&C 서버와 통신이 불가하여 코드 흐름 상 아래와 같은 행위들을 할 수 있을 것으로 추정)
[그림17] C&C 접속 후 실행 가능 한 봇 기능 리스트
악성코드 분석 결론
해당 악성코드는 사용자의 입력데이터를 가로채는 키로깅과 감염PC를 조정할 수 있는 봇의 기능을 가진 파일입니다. 이번 파일에서는 키로깅과 봇의 기능뿐만 아니라, 감염된 상태를 알아채지 못하도록 웹캠과 네트워크 사용 LED등을 해제하는 기능도 추가되어 있었습니다. 따라서 제작자가 웹캠을 원격 제어해도 사용자는 감염 상태를 파악하기 어렵습니다.
공격자들은 기존 스팸메일에 보통 ZIP형식으로 압축된 EXE, SRC 확장자를 가진 PE파일 또는 문서파일(MS Office, HWP)의 아이콘으로 위장한 PE파일을 주로 사용해왔습니다. 그러나 스팸메일을 감시하는 시스템들이 점차 늘어남에 따라, JAVA 파일을 삽입하여 스팸 시스템 필터링을 우회할 목적을 갖고 공격을 시도하는 것으로 추측됩니다.
이번 파일을 분석하면서 Allatori Java obfuscator 같은 난독화 프로그램에 의해 보호되어 있어 분석이 어려운 점도 있었습니다. 이러한 경향은 갈수록 심화될 것으로 판단됩니다. 따라서 다양한 obfuscator에 대한 지속적인 연구가 이루어져야 할 것으로 보입니다.
악성코드 대응방안
스팸 메일로 유포되는 악성코드를 예방하는 방법은 아래와 같습니다.
- 검증 되지 않은 사람이 보내는 메일은 가급적 열지 말고 삭제한다.
- 이메일에 첨부된 파일은 최신 업데이트가 된 보안제품으로 검사한 후 실행한다.
- 이메일에 링크된 의심스런 웹사이트 링크는 클릭하지 않는다.
- 윈도우, 오피스 제품, 인터넷 익스플로러와 같은 브라우저 제품은 최신 보안패치를 유지한다.
입사지원서 문서파일 사칭 악성코드 공격 사례 분석 (2) | 2015.01.28 |
---|---|
Trojan. Ransom. CTBLocker 주의! (0) | 2015.01.20 |
[악성코드 분석리포트] Trojan.Android.KRBanker (APKPROTECT) (3) | 2014.12.17 |
사용자 OS 시스템파일을 악성파일로 변조 및 감염시키는 악성코드 유행 (9) | 2014.12.09 |
더블 다이렉트(Double Direct) MITM 공격 원리 및 조치 방법 (2) | 2014.12.01 |
댓글 영역