키콤백신의 악성코드 진단 방법

키콤백신은 다양한 형태의 파일로 감싼 악성코드에 대응할 수 있는 아키텍처를 가지고 있다. 이는 개발자인 본인이 아무리 설명해봐야 이해가 힘들것 같다. 그런데 최근에 키콤백신의 진단 방법을 설명할 수 있는 악성코드가 발견되었다. 이 악성코드가 Trojan.JS.Downloader.DCR이다. 키콤백신이 Trojan.JS.Downloader.DCR 악성코드를 어떤 방법으로 진단을 하는지 알아보자.

1. Trojan.JS.Downloader.DCR 분석

아래의 사이트에는 Trojan.JS.Downloader.DCR 악성코드에 대한 분석이 소개되고 있는데 이를 간략하게 살펴보도록 하겠다.

Trojan.JS.Downloader.DCR 악성코드는 MS 오피스 워드 파일인 docx로 되어 있다. MS 오피스의 워드 파일은 확장자가 docx이기는 하지만 실제는 zip 파일이다.

압축을 해제하면 word\embeddings\oleObject1.bin 파일이 존재한다. 이것은 엑셀파일이다. 즉 워드 파일을 열면 다음과 같은 모습이 된다.

엑셀 파일은 OLE 구조로 되어 있다.

위 그림은 엑셀의 OLE 내부 중 ☺Ole10Native를 보고 있는데 왼쪽에 4.jse 글자를 볼 수 있다. 이는 엑셀 파일에 4.jse가 포함되어 있음을 의미한다. 4.jse를 추출하여 메모장으로 열면 아래와 같다.

4.jse 파일은 백신의 진단을 피하기 위해 다수의 주석문(/*, */)을 사용하고 있다. 이 주석문을 모두 제거하면 아래와 같은 내용을 보게 된다.

주석문을 제외한 4.jseVBE라고 불리는 방법으로 암호화 되어 있다. 이를 복호화하면 다음과 같이 자바스크립트를 볼 수가 있다.

이번에도 백신의 진단을 피하기 위해 주석문(//)을 사용하였다. 여기까지 도달하면 백신들은 다양한 방법으로 악성코드를 검사하는데 어떤 백신은 주석문 제거 없이 검사하기도 하고 어떤 백신은 주석도 지우고 모든 공백도 지운 다음에 악성코드를 검사하기도 한다. 참고로 키콤백신에서는 후자의 방법을 사용한다.

2. Trojan.JS.Downloader.DCR에 대한 타 백신의 진단 현황

참고
Creative Commons License
문서를 작성하는 현재 기준으로 http://www.malwares.com에서 캡처하였다. 따라서 이 문서를 읽는 시점에는 백신들의 진단 상황이 바뀔 수 있음을 인지하기 바란다.

2.1 docx 파일의 진단

먼저 악성코드 자체인 docx를 진단한 결과이다.

3개의 업체에서 진단하는 것을 확인할 수 있다.

2.2 xls 파일의 진단

docx 파일을 풀어내면 내부에 엑셀 파일이 존재한다. 이 파일을 꺼내서 별도로 악성코드를 검색한 결과이다.

그런데 검사 결과가 바뀌었다. Avast를 제외한 나머지 업체들은 docx 파일에서 시그너처 혹은 해시를 이용한 방법으로 검사했을 가능성이 크다. 이 방법은 대다수의 백신업체들이 사용하는 방법이다.

만약 docx가 아닌 파워포인트인 pptx에 삽입된 엑셀 파일을 검사할 수 있을까? 대부분의 백신들의 진단 방법이면 역시 악성코드를 검사할 수 없다. 이런 방법으로는 조금만 파일의 형태가 바뀌어도 악성코드를 검사할 수 없다. 따라서 이 결과에서는 Avast의 검사 방법이 우수하다고 볼 수 있다. 분명 Avast는 docx에서 엑셀 파일을 추출한 후 악성코드를 검사했을 가능성이 크기 때문이다.

2.3 4.jse 파일의 진단

이번에는 엑셀 파일 내부의 4.jse 파일을 분석한 결과이다.

이번에는 ESET-NOD32가 다시 진단했다. 앞서 ESET-NOD32는 엑셀을 진단하지 못했으므로 4.jse는 별도로 패턴을 추가한 것으로 보인다.

2.4 4.js 파일의 진단

4.jse는 주석문이 추가된 자바 스크립트로 VBE로 암호화 되어 있다고 말했다. 이를 복호화해야지만 4.js 파일을 볼 수 있다. 아래는 4.js를 검사하는 결과이다.

갑자기 Avast와 ESET-NOD32를 제외하고 5개의 백신이 추가로 악성코드를 검사하였다. 그런데도 불구하고 타 백신들이 4.jse를 진단하지 못한것은 VBE에 대해 복호화를 하지 못하거나, 주석문으로 인해 백신이 악성코드 검사에 방해 받았을 가능성이 크다.

3. Trojan.JS.Downloader.DCR에 대한 키콤백신의 진단 현황

키콤백신은 다양한 방법으로 악성코드가 숨겨진 형태를 추적하는 기능을 탑재하고 있다. 이는 키콤백신이 가지는 큰 장점 중 하나이다. 이 기능으로 인해 악성코드에 대한 대응이 상당히 간편하다. 왜냐하면 악성코드가 어떠한 형태로 숨어 있는지는 별로 중요하지 않다. 키콤백신이 알아서 마지막에 숨겨진 악성코드를 찾을 것이기 때문이다.

참고로 키콤백신은 Trojan.JS.Downloader.DCR에 대한 악성코드 패턴은 다음과 같다.

2286:81ad75f05644ca15d8c783899c41adaa:Trojan.JS.Downloader.DCR

즉, Trojan.JS.Downloader.DCR을 진단하기 위해 하나의 패턴만을 사용한다.

3.1 4.js 진단

이제부터는 Trojan.JS.Downloader.DCR에 대한 키콤백신의 진단 상황을 보여주려고 한다. 이해를 돕기 위해 Trojan.JS.Downloader.DCR의 진단 순서를 거꾸로 볼 것이다. 즉, 4.js 부터 진단하는 것을 보도록 하겠다.

위 결과를 보면 4.js는 악성코드가 아니라고 나왔다. 이는 4.js 내부에 악성코드의 검사를 우회하기 위한 주석문이 삽입되어 있다. 따라서 주석문으로 인해 악성코드를 진단하지 못했다.

하지만, 4.js (Comment#2) 라고 적혀 있는 부분에서 악성코드가 진단되었다. 이는 4.js에서 주석문을 제거한 뒤에 검사를 하였다는 의미이다. 참고로 (Comment#2)는 키콤백신 내부에서 사용하고 있는 주석문의 타입을 의미한다.

3.2 4.jse 진단

아래는 4.jsVBE로 암호화된 4.jse에 대한 검사 결과이다.

위 결과를 보면 4.jse (Comment#1)을 통해 역시 주석문이 존재했고 제거 되었음을 알 수 있다. 그 다음을 보면 4.jse (Comment#1/VBE)에서 주석문을 제거했더니 VBE 암호화된 내용물을 발견했다는 의미이다. 그래서 이것을 복호화한 뒤 악성코드를 검사했더니 발견되지 않았다. 당연히 이 시점이 4.js 파일이 된 상태이다. 4.js에서 주석문을 제거해야 악성코드가 보인다. 따라서 다음라인인 4.jse ... t#1/VBE/Comment#2)에서 악성코드가 발견되었다.

3.3 엑셀 파일 진단

아래는 4.jse를 가진 엑셀 파일을 검사한 결과이다.

위 결과에서 oleObject1.bin 파일이 엑셀 파일이다. 역시 엑셀 파일 자체로는 악성코드가 아니다. oleObject1.bin (☺Ole10Native/4.jse)를 보면 ☺Ole10Native 내부에 4.jse 파일이 숨어 있다. 이 파일을 추출해 내서 주석문을 제거하면 악성코드를 검사할 수 있다.

3.4 docx 파일 진단

아래는 docx 파일을 검사한 결과이다.

이번에는 파일명이 좀 길다. 4FD53F748006C7F7729CD ... 9A50740E253CB2583F5330FD5E35B64CB04로 표현된 것이 docx 파일이다. docx는 검사가 쉽다. docxzip 파일이기 때문에 압축만 해제하면 엑셀 파일을 발견할 수 있다. 위 결과를 보면 (word/embeddings/oleObject1.bin) 여기에서 엑셀 파일이 발견 되었다.

4. 정리

어떤가? 키콤백신은 하나의 악성코드 패턴을 이용하여 다양한 방법으로 깊숙히 숨겨둔 악성코드도 끝까지 추적하여 진단할 수 있다. 하지만 타 백신들을 살펴보면 이 같은 방법을 사용하고 있지 않음을 알 수 있다.

사용자의 PC로 유입되는 악성코드는 다양한 경로를 통해 침투가 가능하다. 또한 다양한 방법으로 은닉하여 악성코드가 침투되기도 한다. 대표적인 것이 악성코드를 압축 프로그램으로 여러번 압축하여 백신의 진단을 우회하는 방법이다. 따라서 백신들은 이런 형태로 유입되는 악성코드를 진단하는 방법들을 모색해야 한다.


Update

  • 2016-05-29 : 최초로 작성


크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 4.0 국제 라이선스에 따라 이용할 수 있습니다.