[Tech Report]금융 정보 탈취형 악성코드의 보이지 않는 특징
파밍 악성코드가 기승을 부리고 있다. 파밍(Pharming)이란 합법적인 사용자의 도메인을 탈취하거나 도메인 네임 시스템(DNS) 또는 프록시 서버의 주소를 변조함으로써 사용자들로 하여금 진짜 사이트로 오인하여 접속하도록 유도한 뒤 개인정보를 탈취하는 공격 기법이다. 최근 국회 발표에 따르면 우리나라의 파밍 피해액은 2011년 72억원에서 2012년 349억원으로 급증했고, 2013년에는 546억원으로 불어났다. 또한 2014년 10월까지의 집계액은 642억원, 같은 기간 파밍 사기의 신고 건수는 1만4412건인 것으로 알려졌다.
취약한 웹사이트를 통한 파밍 악성코드 유포는 오래 전부터 발견되었지만 여전히 유포가 활발하게 진행되고 있다. 이 글에서 취약한 웹 사이트를 통해 유포되는 파밍 악성코드 행위 분석을 통해 이 악성코드의 주요한 특징을 알아보자.
취약한 웹사이트를 통해 감염되는 파밍 악성코드의 행위 분석
침해 사이트를 통해 유포되는 악성코드는 정상적인 웹사이트에 악성 스크립트를 삽입하는 방식을 이용하기 때문에 일반 사용자가 인식하기가 어렵다. 지금부터 사용자가 사이트에 접속했을 때 악성코드가 어떻게 감염되는지 그 과정을 살펴보자. 우선 사용자가 침해 사이트 페이지에 접근하면 악성 스크립트가 삽입된 사이트로 리다이렉트(redirect)되어 악성코드가 다운로드 및 실행된다.
[그림 1] 침해 사이트
[표 1] 침해 사이트에서 접근하는 사이트 목록
이 때 침해 사이트의 악성코드 유포 경유지를 살펴보면 [그림 2]와 같다.
[그림 2] 악성코드 유포 경유지
침해 사이트에는 공격자가 삽입한 스크립트가 존재하고 있으며 난독화되어 있다.
[표 2] 침해 사이트에서 로드하는 파일에 삽입된 스크립트 일부
위의 [그림 2]의 침해 사이트 중 가장 마지막에 접근하는 사이트로부터 최종적으로 ‘v3c.exe’ 파일이 다운로드된다. [그림 2]와 같이 다운로드된 파일은 파밍 악성코드로, 실행되면 DNS(도메인 네임 시스템)를 변조하거나 악성코드 자신이 DNS 역할을 한다. 해당 악성코드의 상세 행위를 살펴보면 [그림 3]과 같다.
[그림 3] 다운로드된 악성코드
악성코드가 실행되면 [표 3]과 같이 파일을 추가로 생성한다.
[표 3] 생성된 파일
이 가운데 inst.exe 파일은 [표 4]와 같이 레지스트리에 등록한다.
[표 4] 레지스트리 등록
[그림 4]와 같이 악성코드는 시작프로그램에 inst.exe를 등록하여 윈도 시작 시마다 자동 실행시킨다. 또한 윈도 방화벽에 예외로 등록하여 방화벽을 우회한다. 추가적으로, 인터넷 익스플로러의 시작페이지를 수정하여 사용자가 인터넷을 사용할 경우 파밍 사이트로 자동 연결하도록 유도한다.
[그림 4] 윈도 방화벽에 예외 처리된 악성코드
[그림 5] IE 시작페이지 변경 전(상)/ 후(하)
이 악성코드가 추가 생성하는 cgi_personal_card 파일은 특정 사이트로 접근하며, 파밍에서 사용될 서버의 IP를 확인하는데 사용된다. [표 5]는 cgi_personal_card 파일의 내용이다.
[표 5] cgi_personal_card 파일 내용
악성코드에 감염되면 계속해서 특정 사이트로 접근하여 cgi_personal_card 파일을 생성한다. 이렇게 공격자의 IP를 가져온 후 악성코드는 사용자 PC에서 공인인증서를 탈취하고 PC의 정보를 전송한다.
[표 6] PC에 저장되는 공인인증서 위치
위의 [표 6]의 경로에 NPKI 폴더가 있을 경우, [표 7]의 위치로 복사하고 Temp폴더에 zip 파일을 생성하여 [그림 6]과 같이 공격자의 서버로 전송한다.
[표 7] 복사된 공인인증서 위치
[그림 6] 압축된 공인인증서 전송
[표 8] 맥 주소(MAC Address) 정보를 가져오는 함수
또한 [표 8]과 같이 함수를 통해 맥 주소의 정보를 가져와 공격자의 서버로 전송한다.
[그림 7] 맥 주소 정보 전송
이 경우 맥 주소를 전송하는 IP로 접속하면 [그림 8]과 같이 비밀번호(P/W)를 입력하는 창이 나타난다. 이와 함께 [그림 7]의 Count.asp에서 확인할 수 있듯이 감염된 사용자의 카운팅 및 정보 수집을 하는 페이지로 추정된다.
[그림 8] 맥 주소를 전송하는 페이지
또한 이 악성코드는 같이 PC의 DNS를 [그림 9]와 같이 127.0.0.1 / 8.8.8.8로 변조한다.
[그림 9] 맥 정보 및 DNS 정보/ DNS 변경 전(상)과 후(하)
[그림 9]에서 이 악성코드가 DNS를 변조하는 이유는 호스트(hosts) 파일을 변조하여 파밍 사이트로 연결하는 것이 아닌 로컬호스트(127.0.0.1)로 루프백(loopback)을 하여, 악성코드가 IP를 변조한 후 공격자가 제작한 파밍 사이트로 접속하도록 하는 것이다.
또한 이 악성코드는 변조에 사용할 URL 목록을 암호화된 상태로 가지고 있다. 여기에서 보조 DNS가 8.8.8.8로 설정되는 이유는 악성코드가 DNS 역할을 하지만, 파밍이 목적이기 때문에 그에 해당하는 URL만 가지고 있다. 그 외 다른 사이트는 정상적으로 사용하도록 하기 위해 구글의 DNS인 8.8.8.8로 설정하는 것이다.
이 악성코드에 의해 파밍에 사용되는 URL은 [표 9]와 같다.
[표 9] 파밍에 사용되는 URL
이렇게 악성코드에 감염된 PC의 사용자가 인터넷 익스플로러를 실행하면 [그림 10]과 같이 파밍 사이트로 연결된다.
[그림 10] 파밍 사이트
사용자는 정상 사이트에 접속하더라도 해당 사이트가 침해 사고를 당했다면 악성코드에 감염될 가능성이 있다.
취약한 웹사이트를 통한 악성코드 유포 과정
2014년에는 리그(Rig), 스위트 오렌지(Sweet Orange), 뉴클리어(Nuclear) 등 다양한 웹 익스플로잇 킷(Exploit Kit)이 등장하면서, 취약한 웹사이트를 악용한 악성코드 유포가 급증하였다. 특히 지금까지 파밍 악성코드 유포에 주로 사용되었던 ‘공다 익스플로잇 킷 및 카이홍 익스플로잇 킷(Gongda Exploit Kit & Caihong Exploit Kit)’ 형태에서 최근에는 ‘카이홍 익스플로잇 킷 및 갓모드(Caihong Exploit Kit & God Mode)’로 유포 형태가 변화되어 시선이 집중되고 있다.
갓모드 취약점을 이용한 악성코드 유포는 2014년 11월에 등장하였으며, 이후 12월에 '카이홍 및 갓모드'를 이용한 파밍 악성코드 유포가 급증하고 있어 일반 사용자들의 주의가 필요한 시점이다.
최근에 파밍 악성코드 유포로 탐지된 종교 관련 웹사이트의 URL 트리(Tree)는 [표 10]과 같다.
[표 10] 웹사이트 URL Tree
[그림 11]과 같이 갓모드 공격에 해당하는 main.html의 중반부에는 카이홍(Caihong)으로 난독화되어 있으며, 하단에는 VB스크립트 코드가 존재한다. VB스크립트는 난독화된 코드를 복호화하고 취약점 CVE-2014-6332를 악용하여 최종 명령을 실행한다.
[그림 11] main.html 중 카이홍으로 난독화된 부분
[그림 12] 1차 복호화된 카이홍 코드 중 일부
[그림 13] 최종 복호화된 실행 코드
갓모드 공격의 CVE-2014-6332(윈도 OLE 자동화 배열 원격 코드 실행 취약점)는 윈도와 인터넷 익스플로러를 사용하는 대부분의 환경(윈도 95이상, IE 3~11)에서 동작할 수 있어 그 영향도가 매우 크다.
갓모드 공격은 IE가 VB스크립트 엔진을 포함하는 점을 악용하는 것으로, 공격자는 VB스크립트를 통해 시스템 명령을 실행할 수 있는 권한을 획득하여 VB스크립트를 실행, 사용자 PC에 악성코드를 감염시킨다.
해당 악성코드의 상세한 동작 정보는 위에서 먼저 살펴본 침해 사이트의 악성코드 행위와 유사하다.
[그림 14] 악성코드 감염 후 포털 접속 및 배너 클릭 시 나타나는 화면
CVE-2014-6332 취약점에 대한 패치는 2014년 11월에 제공되었으나, 최신 보안 업데이트를 진행하지 않은 경우에는 갓모드 기법을 통해 누구나 쉽게 악성코드에 감염될 수 있어 매우 치명적이다.
인터넷은 정보의 바다이기도 하지만, 그만큼 악성코드 또한 많이 배포되고 있어 사용자들은 주의를 기울여 사용할 필요가 있다.
이러한 파밍 악성코드 감염을 예방하기 위해서는 보안 업데이트를 꼼꼼히 확인하고, 설치한 백신 제품의 엔진을 최신 버전으로 유지하는 사용자의 올바른 습관이 선행되어야 한다. @
- AhnLabASEC 대응팀 김영진, 양태연 연구원