상세 컨텐츠

본문 제목

[악성코드 분석 리포트] Spyware.PWS.KRBanker.serv

악성코드 분석 리포트

by 알약(Alyac) 2014. 8. 5. 09:21

본문

Spyware.PWS.KRBanker.serv -ALYac Division Malware Research


해당 악성코드는 취약한 웹사이트를 경유지로 이용하여 유포되며, 수년간 비슷한 수법을 통해 다양한 변종을 만들어내고 있습니다. 제작자의 목적은 주로 금전적인 이득으로, 최근 몇 년 동안은 파밍(Pharming) 방식을 이용한 온라인 뱅킹 사용자를 타겟으로 하고 있습니다.


최근 발견된 악성코드 또한 금전적 취득을 목적으로 하여 공격한다는 점에서 크게 다르지 않지만, VPN(Virtual Private Network) 가상 사설망을 이용하여 탐지차단을 우회하려 한다는 점에서 기술적 차이가 있습니다.


VPN이란, 인터넷망을 전용선처럼 사용할 수 있게 해주는 통신망입니다. 원거리에 있는 지점과 기존 전용선을 사용하지 않으면서 망 구축과 암호화된 네트워크 통신이 가능해 많은 회사에서 사용하고 있습니다. 그러나 가상 사설망과 암호화된 네트워크를 사용한다는 점에서 익명성을 어느 정도 보장받을 수 있기 때문에 악성코드의 탐지회피나 해커그룹의 커뮤니티 채널로 악용되기도 합니다.


※ VPN의 동작 방식


[그림1] VPN 동작 방식


기업에서 내부망(인트라넷)은 조직 내부의 업무를 효율적으로 이용하기 위해 만드는 정보통신망입니다. 이는 내부 데이터가 외부로 노출되는 것을 막고, 사내에서 자유롭게 통신할 수 있도록 합니다. 그러나 해외 지점에서의 근무 또는 자택 근무와 같이 외부에서 사내 데이터를 사용해야 할 경우, 전용선을 설치하지 않는 이상 사내망 사용이 제한적입니다. 이를 효과적으로 해결하기 위해 VPN을 활용하는 방법이 있습니다. 

 

VPN은 인터넷상에서 터널링 방식을 사용하여, 외부 사용자와 VPN 서버까지 사내망 연결을 가능하게 합니다. 예를 들어, 사내망 네트워크 대역이 10.0.0.* 이라면 사내망 사용자들끼리 통신이 가능하지만, 사내망이 아닌 외부에서는 직접적인 통신이 제한됩니다. VPN은 사내가 아닌 사용자일지라도 10.0.0.* 대역의 IP를 할당하기 때문에 원격 사용자가 사내망을 구성할 수 있습니다.



※ VPN의 익명성과 데이터 보호

VPN을 통해 접속한 사용자의 경우, 메인 서버 외에는 사용자의 IP를 측정할 수 없습니다. 예를 들어 해외 특정 서버가 해킹되어 VPN서비스가 이루어지고 해당 서버를 통해 A라는 사람이 국내 B 업체를 해킹한 경우, A는 자신의 IP를 숨길 수 있습니다. A의 IP가 VPN 망을 사용해 자신의 IP가 아닌 해킹된 VPN 서버 IP만을 노출하기 때문입니다.


이 경우 통신 자체도 암호화된 프로토콜을 사용합니다. L2TP(Layer Two Tunneling Protocol), PPTP(Point-to-Point Tunneling Protocol), SSTP(Secure Socket Tunneling Protocol)은 VPN이 사용하는 제공하는 통신 규격의 종류이며, 기본적으로 암호화·캡슐화 기술이 적용되어 데이터 내용을 보호할 수 있습니다.


[그림2] VPN의 익명성


※ VPN 악용사례

앞에서 언급된 것과 같이, VPN을 사용하면 원격지에서 원하는 지역의 IP대역대를 사용할 수 있습니다. 공격자는 공격하고자 하는 지역(또는 나라)의 IP를 사용하면 특정지역이나 특정 아이피만 접속이 가능한 보안 정책을 우회할 수 있다는 점을 악용하여, 그 지역의 VPN서버를 해킹하거나 상용 VPN을 이용합니다. 

 

이 특징을 악용한 대표적인 사례가 PC방 IP를 이용한 게임이용입니다. 게임회사의 정책에 따라, PC방에서 게임을 이용하면 가격인하, 아이템 증정, 무료 사용 시간 부여 등 여러 혜택을 볼 수 있습니다. 이 때문에 몇몇 공격자들은 PC방에 VPN서버를 불법적으로 구축하여, 해외 또는 PC방이 아닌 곳에서 PC방 IP로 게임 접속을 시도합니다. 또한 VPN을 통해 사내 방화벽을 통과하여 데이터를 유출하거나, 비인가 사이트에 접속하는 행위도 악용사례 중 하나라고 할 수 있습니다.



악성코드 순서도




악성코드 상세 분석


1. 악성파일 분석(intt.exe)

 

intt.exe 파일은 실질적인 악성 행위를 하는 V3Safer32.dll을 생성한 후, 서비스로 등록하여 실행합니다.

 

- 서비스 실행

V3Safer라는 서비스의 이름으로 생성해 동작시킵니다. 서비스명은 잘 알려진 백신 이름으로 사용해 악성행위가 아닌 것처럼 보이도록 위장하고 있습니다.


[그림3] 서비스 시작 코드


- 파일 생성

V3Safer서비스를 동작하기 위해 시스템 폴더 내에 악성 파일을 생성합니다.

생성 경로

%시스템폴더%\V3Safer32.dll


[그림4] 악성파일 생성 코드



2. 악성파일 분석(V3Safer32.dll)

 

V3Safer32.dll파일은 서비스로 실행되어 크게 3가지로 동작합니다. 그 후 V3Safer32.dll 내부의 IEFire함수를 호출하여 실질적인 악성행위를 합니다.


서비스 동작시 3가지 행위

- 백신 무력화

- 파일다운로드 및 호스트파일변조

- IEFire함수 실행


[그림5] 주요 악성행위를 실행하는 코드


- 백신 무력화

백신 무력화를 위한 코드가 존재하지만, 드라이브를 통한 커널 레벨의 강제적인 무력화 대신 사용자가 직접 삭제하는 방식과 같은 방법을 이용합니다. 레지스트리에 등록된 백신 정보를 알아내고, CMD명령어를 이용하여 백신을 삭제합니다.


[그림6] 백신 무력화 코드


- 파일 다운로드

특정 사이트에 접속해 추가로 내려 받을 악성파일에 대한 정보를 받아옵니다. 이 후 해당 정보를 통해 hosts 파일 변조 악성파일을 다운 받아 실행시킵니다. 먼저 다운받는 악성파일의 존재를 확인하고, 해당 파일이 존재하지 않으면 해당 악성파일을 다운받습니다. 이는 한번 index.txt파일이 받아지면 더 이상 같은 경로를 통해 새로운 명령이 전달되지 않는다는 것을 뜻합니다. 


다운로드 할 파일의 정보를 담고 있는 위치

- %Program files%\Common Files\Plugins\index.txt


[그림7] 추가로 다운 받을 악성파일에 대한 정보


파밍이 VPN방식으로 이루어지기 때문에 호스트파일은 VPN 가상IP로 변조됩니다.


[그림8] hosts.ics파일이 변조된 화면


- Rundll를 통한 IEFire 실행

해당 악성코드는 내부에 존재하는 함수인 IEFire를 실행시켜 사용자의 행위를 판단하여 파밍을 시도합니다.


[그림9] IEFire 함수를 실행 하는 코드


- IEFire 함수

IEFire 함수는 사용자가 Internet Explorer를 사용할 때 특정 사이트 접속 여부를 확인하고, 조건이 만족하는 경우 악성행위를 시도합니다. 우선 VPN을 통한 파밍을 하기 위해 Internet Explorer의 버전을 확인합니다.


[그림10] Internet Explorer의 버전 확인 코드


이 후 Internet Explorer 주소 입력창에 URL 문자열 값을 가져옵니다. 주소 입력창에 URL 문자열과 파밍을 위한 은행권 사이트 문자열을 확인하여, 동일한 경우에는 VPN을 연결한 후에 파밍 사이트로 접속하게 합니다.


[그림11] Internet Explorer 주소입력 핸들을 가져와 URL주소를 얻는 코드


사용자가 특정 주소로 접속하는 것이 확인되면 VPN접속 환경을 만듭니다. 이 후 가상 사설망을 이용해 특정 필터링을 우회하여 파밍 사이트에 접속합니다. 다음은 VPN 서버 주소와 감시 대상 URL관련 코드입니다.


VPN서버 주소

- 2*9.***.1*2.**8


[그림12] 해당 사이트로 접속하는지를 확인하는 코드


공격자는 파밍 사이트를 통해 정보를 습득한 후에 인증서를 탈취합니다. 탈취한 인증서는 해당 PC의 IP를 포함한 파일명으로 FTP를 통해 공격자에게 전송됩니다.


전송 FTP 정보

- 주소 : 70.**.**.1*

- ID : v**

- PW : g4***u*


[그림13] 인증서를 탈취하는 코드


모든 정보를 탈취하면 악성코드는 사용자 PC가 일반적인 동작을 하도록 VPN접속 해제 후 삭제합니다. 


[그림14] VPN연결 삭제


이 후, 정상적인 웹 검색이 될 수 있도록 호스트파일 내용을 삭제합니다. 사용자 자신의 정보가 악성코드에 의해 탈취되었다는 사실을 인지하지 못하도록, 네트워크를 다시 정상으로 교묘하게 돌려 놓습니다.


[그림15] 변조된 호스트 파일을 빈 파일로 복구


- VPN을 통한 파밍

파밍 악성코드에 감염된 PC에서 해당 사이트에 접속하면 아래와 같이 VPN서버에 접속됩니다. PPTP를 이용한 서버와의 통신을 통해, 정상 페이지가 아닌 변조된 페이지에 접속되는 것입니다.


[그림16] VPN서버에 접속, 통신하는 패킷 화면


[그림17] 공격자가 생성한 악성 페이지



악성코드 분석 결론


국내 온라인 금융권 사이트 파밍을 통해, 사용자의 금액을 탈취하기 위한 악성코드들은 지금 이 순간에도 꾸준히 증가하고 있습니다. 이번 악성코드도 이와 동일한 목적의 악성코드이나, 기존과 달리 주목할 부분은 VPN을 사용하고 있다는 것입니다. 

 

일반 사용자들은 VPN이라는 기술적인 내용을 이해하지 못하고 있어, 피해가 많을 것이라 예상됩니다. 따라서 관련하여 사용자의 보안 의식 고취 및 제고가 필요하며, VPN뿐만 아니라 그 밖에 새로운 공격방식에 대비해야 할 필요가 있습니다.



악성코드 대응방안


현재 웹사이트를 이용한 악성코드 유포방식이 증가 추세에 있으며, 이번 악성코드 역시 이러한 사례라고 볼 수 있습니다. 이에 대한 대응방안으로 개인 사용자는 웹 브라우저, Office, JAVA, Flash 등에 있어서 취약한 버전의 플러그인을 사용하지 않고, 사용하는 소프트웨어 프로그램은 항상 최신 버전을 유지해야 합니다. 또한 정기적인 보안 업데이트 습관을 가져야 합니다. 또한 악성코드 감염을 막기 위해 ‘알약 익스플로잇 쉴드’ 같은 취약점 차단 프로그램을 설치하는 것도 좋은 방법일 것입니다.


웹 사이트를 관리하는 기업의 경우, 보안 담당자는 OWASP와 같은 커뮤니티를 통해 웹 기반 최신 취약점에 관심을 기울이고 악성코드 유포지로 악용 당하지 않도록 주의가 필요합니다.


VPN은 개인 사용자나 기업 모두 정상적으로 사용할 수 있기 때문에 필요에 따라 서비스를 중지하거나 사용하도록 해야 합니다. 일반적으로 VPN은 1723포트 사용 여부를 통해 서비스가 활성화 되어있는지를 간단하게 확인할 수 있습니다. 만약 VPN 포트가 확인된다면, 외부로부터 1723 포트에 대한 접속을 차단하거나 아래와 같은 방법으로 서비스를 중지할 수 있습니다.


 윈도 시스템

제어판 ▶ 관리도구  서비스

‘Routing and Remote Access’ - 서비스 중지


 리눅스 시스템

cmd  chkconfig pptpd off




관련글 더보기

댓글 영역