파밍 악성코드의 호스트파일 암호화 기법 고찰
들어가며...
여러분들 중 조금이나마 보안관련 뉴스에 관심을 갖고 보신 분이라면, 아마 한번쯤은 들어보셨을 것이라 생각됩니다. 올해는 그 어느 때보다 한국 맞춤형 전자금융사기용 악성파일이 특히 더 기승을 부리고 있는 해입니다. 일각에서는 ‘융단폭격’이라는 다소 과격한 표현까지 인용할 정도로 실제 광범위한 공격이 이뤄지고 있는 것이 관계 전문가들의 공통된 의견입니다.
파밍 기법의 전자금융사기는 육안으로 금융사이트의 진위여부를 판별하기 어렵게 만든 후, 이용자가 정상적인 인터넷 뱅킹 서비스로 착각하게 만듭니다. 그렇기 때문에 조작된 IP 주소를 실제 금융회사의 도메인 URL 주소로 연결하여 작동을 하도록 설계하겠지요.
파밍용 IP 주소는 범죄자들에 의해 매일 새롭게 만들어지고 사라지기를 반복합니다. 물론, 외부에 노출되지 않을 경우 오랜 기간 잠복기간을 유지하며 악의적인 명령에 장기간 악용될 수 있습니다.
보안업체와 유관기관들은 이러한 파밍용 IP 주소의 명령고리를 조기에 탐지하고 차단하여 범죄자들의 사기행각을 신속히 무력화하는데 많은 노력을 기울이고 있습니다. 따라서 공격자들도 파밍용 IP 주소의 생존시간을 높이는 방법에 많은 연구와 투자를 하고 있지요.
호스트 변조를 하기 위한 각고(?)의 노력
이러한 악성코드들이 사용하는 은폐기법에는 어떤 것들이 있을까 궁금합니다. 근래까지도 매우 다양하고 기발한 방식이 동원된 경우가 많았습니다.
초기에는 실제 금융사의 도메인 주소와 단순히 유사하게 만드는 조잡한 경우도 있었지만, 얼마 전에는 메모리 상에서 데이터를 변조하는 이른바 ‘메모리 해킹’이 사회적으로 큰 이슈가 되었지요. 지금은 이용자가 육안상으로 쉽게 판별하기 어렵고, 무심코 착각하게 만든 호스트 파일 변조 기법들이 가장 성행하고 있습니다.
공격자들에게 있어 가장 중요한 점은 가짜 금융 웹 사이트로 연결시킬 파밍 IP 주소가 외부에 노출되어 빨리 차단되지 않도록 은폐시키는 것이 주된 목적 중에 하나일 것입니다. 그렇다 보니 공격자들도 호스트 파일 변조용 파밍 IP 주소를 암호화하여 명령제어(C&C) 서버에 은밀하게 보관하고, 가변 IP 주소 체계를 유지하고 있습니다. 이것은 보안관제를 회피하여 이용자 컴퓨터까지 침투하기 위한 일련의 과정 중 하나로 볼 수 있겠지요.
그러면 본격적으로 근래 인터넷 뱅킹용 악성코드의 호스트 파일이 실제 어떻게 암호화되어 있고, 어떤 과정을 통해서 이용자 컴퓨터에 유입되는지 간략히 살펴보도록 하겠습니다.
나의 암호화를 적(?)에게 알리지 말라
초기시절 파밍용 IP 주소는 악성코드 내부에 하드코딩되어 있는 것이 대다수였고, 이후에 (중국) 웹 사이트나 트위터 등에 올려진 IP 주소를 가변적으로 로딩하는 형태로 발전을 거듭하고 있습니다. 이처럼 공개적인 웹 사이트나 게시물에 올려진 IP 주소가 파밍용으로 이용되고 있다는 것을 알리고 싶어하는 사이버 범죄자는 단 한 명도 없을 것입니다.
최근까지도 중국 QQ 블로그를 통해 파밍 IP 주소를 가져오는 경우가 많이 발견되고 있습니다. 이런 IP 주소는 보안 관계자라면 쉽게 눈치챌 수 있기 때문에 상대적으로 빠른 분석 및 대응이 가능할 것으로 보입니다.
▲ 파밍 IP C&C주소로 이용된 중국 QQ 개인블로그
반면 암호화된 파일을 호스트 파일로 이용되는 사례가 종종 발견되곤 하는데, 다음과 같은 방식을 취하고 있습니다. 우선 전자금융사기용 악성코드에 감염되면, 첫 번째로 파밍용 IP 주소가 숨겨져 있는 명령제어(C&C) 서버로 접근합니다. 아래는 2014년 08월 25일 발견된 실제 사례입니다.
먼저 악성코드가 작동하게 되면 아래와 같은 사이트로 몰래 접근을 하게 됩니다. 겉으로 보기에는 단순히 PHP 링크로 보이고, 이 글을 작성 중인 08월 26일 현재까지도 명령제어(C&C) 서버로 생존을 유지하고 있는 상태입니다. (참고 : http://142.4.117.212:806/plus.php)
사실 보는 것과는 다르게 해당 사이트에는 일반적인 PHP 파일이 아닌 암호화된 호스트(hosts.ics) 파일이 조작된 형태로 존재하는 것이며, 악성코드에 의해 다운로드가 진행됩니다. 물론 이용자의 컴퓨터에는 전혀 보이지 않는 부지불식간에 이뤄지게 됩니다.
▲ plus.php 파일 헤더를 압축 포맷으로 교묘하게 위장
악성코드은 104 바이트의 최상위 코드를 이용해서 마치 압축 포맷처럼 위장하고 있지만, 실제로 디코딩 과정을 거쳐 호스트 파일을 변조하는데 사용하게 됩니다. 악성파일은 내부의 디코딩 함수 루틴을 통해서 복호화 과정이 진행되는데, 방식을 설명하면 다음과 같습니다.
파일 헤더의 압축 포맷만 놓고 봤을 때는 ‘혹시 확장명을 ZIP으로 바꾸면 압축이 풀리지 않을까?’ 라는 생각을 해보신 분이 계실 수도 있을 텐데요. 실제 압축 프로그램으로 해당 파일을 실행할 경우 어떤 현상이 나타나는지 알집과 WinRAR 제품으로 파일을 열어보겠습니다. 예상대로 정상적인 압축파일이 아니기 때문에 아래와 같이 오류 창이 나오게 됩니다.
▲ plus.php 파일의 확장명을 ZIP으로 변경 후 알집으로 실행
▲ plus.php 파일의 확장명을 ZIP으로 변경 후 WinRAR으로 실행
그렇다면 plus.php 파일의 내부 구조를 살펴보도록 합시다. 104 바이트는 압축 헤더로 위장하여 분석 방해나 보안 솔루션의 탐지를 회피하기 위한 목적으로 추가된 위장코드입니다. 그리고 로컬에 다운로드 될 때는 data.mdb 이름의 파일명으로 생성된 후 호스트파일 변조에 악용됩니다.
악성코드는 꾸준하게 plus.php 파일명을 유지하고 있지만, 공격자 의도에 따라 언제든지 변경될 수 있으며, 08월 26일에는 info.php 스크립트 연결을 통해서 plus.php 주소로 연결시키는 방식이 새롭게 발견되기도 했습니다.
또한 디코딩 과정에서 제일 먼저 가짜 압축파일 헤더인 104 바이트를 읽어와서 제거합니다. 이후 OFFSET 번지의 홀수 및 짝수의 조건에 따라 Subtraction 연산합니다.
▲ plus.php 파일의 조작된 104 바이트 압축파일 포맷 헤더
104 바이트 이후부터는 16진수로 복호화 연산을 진행합니다. 홀수일 경우에는 [-B5], 짝수일 경우에는 [-C6] 값이 반복적으로 변환작업을 하게 됩니다. 따라서 상기 화면에서 황색부분의 시작부분부터 변환이 이뤄집니다.
홀수 : E6 - B5 = 31
짝수 : F8 - C6 = 32
홀수 : EB - B5 = 36
짝수 : F4 - C6 = 2E
홀수 : EE - B5 = 39
짝수 : FF - C6 = 39
홀수 : E3 - B5 = 2E
짝수 : F8 - C6 = 32
홀수 : E5 - B5 = 30
짝수 : F7 - C6 = 31
E6 |
F8 |
EB |
F4 |
EE |
FF |
E3 |
F8 |
E5 |
F7 |
-B5 |
-C6 |
-B5 |
-C6 |
-B5 |
-C6 |
-B5 |
-C6 |
-B5 |
-C6 |
31 |
32 |
36 |
2E |
39 |
39 |
2E |
32 |
30 |
31 |
이렇게 모든 파일들의 연산과정을 거치면 암호화되어 있던 호스트파일은 정상적인 형태로 변경됩니다.
▲ 복호화된 plus.php 파일 내부
복호화 과정을 거친 후에 생성된 파일은 hosts.ics 파일로 생성되며, 기존에 존재했던 정상적인 hosts 파일은 삭제됩니다. 따라서 파밍용 악성코드에 의해서 ETC 폴더에 원래부터 있었던 hosts 파일은 삭제되고, hosts.ics 파일이 추가로 생성됨과 동시에 내부에는 가짜 금융사이트로 연결되도록 조작한 코드가 포함된 것을 확인할 수 있습니다.
▲ 호스트 파일 삭제 및 추가 생성화면
조작되어 추가로 생성된 hosts.ics 파일 내부에는 아래와 같이 plus.php 파일의 복호화 되었던 내용이 포함되어 있는 것을 확인할 수 있습니다.
▲ 추가로 생성된 hosts.ics 파일 내부 화면
이런 식으로 호스트 파일(hosts.ics)이 조작된 경우, 내부에 선언된 조건에 따라 정상적인 웹 사이트에 이용자가 직접 접근하더라도 악의적인 IP (126.99.201.189) 주소로 강제로 변경되고, 가짜 팝업 화면으로 현혹시킵니다. 이후 파밍 사이트를 통해 금융정보 및 개인정보 탈취를 유도합니다.
▲ 호스트 변조로 인한 가짜 포털 사이트의 팝업 화면
마치며...
지금까지 암호화된 호스트 파일이 어떤 과정을 통해 복호화가 이뤄지는지 최신 사례를 통해 간략하게 살펴보았습니다. ^^
시간이 지날수록 사이버 범죄자들은 불법적 수익금을 얻기 위해서 수단과 방법을 가리지 않고 있습니다. 지금 이 시간에도 각종 보안 취약점과 사회공학적 기법들을 결합해 인터넷 뱅킹 이용자들을 호시탐탐 노리고 있다는 점을 잊지 말아야 합니다.
특히, 마이크로소프트, 어도브, 오라클 자바 등의 주요 보안 취약점은 사이버 범죄자들이 자주 악용하고 있으므로, 항시 최신 업데이트 상태를 유지해 주셔야 합니다. 아울러 알약과 같은 신뢰할 수 있는 보안프로그램을 설치하고, 자동 업데이트와 함께 실시간 감시 등을 통해 각종 보안위협을 사전에 차단할 수 있도록 각자의 노력이 필요하겠습니다.
포토메일로 유혹하는 악성 첨부파일 주의보 (0) | 2014.10.07 |
---|---|
[악성코드 분석 리포트] Trojan.Lecpetex (0) | 2014.09.25 |
[악성코드 분석 리포트] Spyware.PWS.KRBanker.serv (7) | 2014.08.05 |
[알약 악성코드 분석리포트] Trojan.Keylogger.327680 (0) | 2014.07.15 |
[알약 악성코드 분석리포트] 스파이앱(Spyware.Android.PhoneSpy) (0) | 2014.07.02 |
댓글 영역