본문 바로가기
악성코드 정보

안드로이드 폰을 겨냥한 ‘아이폰6 이벤트’

by DH, L@@ 2014. 11. 28.

최근 금융 관련 사고가 증가하면서 사람들의 관심이 집중되고 있다. 모바일도 예외는 아니다. 대부분의 스마트폰 사용자는 '스미싱'이 무엇인지 설명하지 않아도 알고 있을 정도이다. 그만큼 피해가 생활에 밀접하게 다가와 있음을 방증하는 것이다.

 

악성코드 제작자는 각종 사회적 이슈를 이용하여, 악성코드를 배포하는데, 이번에는 '아이폰6' 소유 욕구를 자극하고 있었다. 안드로이드 기반의 스마트폰 사용자를 '아이폰6'로 유혹한다? 물론 실제로 아이폰6를 주는 것은 아니지만, 안드로이드 사용자가 아이폰으로 바꾼다면, 악성코드 제작 그룹은 이제 '스미싱' 을 어떻게 하겠다는 것일까?

 

서론은 여기까지 하고, 본론으로 들어가겠다.

 

'아이폰6 이벤트' 메시지에 포함된 링크로 접근하면, 악성 앱(apk)이 업로드된 페이지로 연결된다. 해당 앱을 다운로드 하여 설치하면, 크롬으로 위장한 아이콘을 볼 수 있다.


[그림 1] '스미싱'을 통한 악성 앱 설치 과정

 

악성 앱을 설치하면 크롬으로 위장한 아이콘이 생성된다. 해당 앱을 실행하면, 아이콘은 사라지고, 휴대폰 관리자 활성화를 요구한다.

 

[그림 2] 악성 앱의 아이콘 및 휴대폰 관지자 활성화

 

악성 앱의 Classes.dex 에는 직접적으로 악의적인 코드를 넣지 않았다. 대신 p.dex 파일을 로드하여 악의적인 코드를 실행한다.

 


[그림 3] classes.dex 코드

 

p.dex 파일은 악성 앱(apk) 파일의 'assets' 에 존재한다.

 


[그림 4] 악성 앱 구조

 

p.dex의 주요 기능은 아래와 같다.

 

스마트폰에 설치된 뱅킹 앱 정보 수집 => 정상 뱅킹 앱 제거 유도 => 제거된 정상 앱을 사칭한 악성 뱅킹 앱 설치 유도

 

악성 앱은 "새로운 버전이 출시되었습니다." 메시지와 함께 기존에 설치된 정상 앱을 제거하도록 유도한다.

 


[그림 5] 정상 앱 제거 과정

 

아래 패키지명과 일치하는 앱이 설치되어 있는지 확인하고, 제거하도록 유도한다.

 

"com.wooribank.pib.smart",

"com.kbstar.kbbank",

"com.ibk.neobanking",

"com.sc.danb.scbankapp",

"com.shinhan.sbanking",

"com.hanabank.ebk.channel.android.hananbank",

"nh.smart",

"com.epost.psf.sdsi",

"com.kftc.kjbsmb",

"com.smg.spbs"

[표 1] target 뱅킹 앱 리스트

 

스마트폰에 설치된 정상 뱅킹 앱을 제거를 유도하고, 제거한 정상 앱으로 위장한 악성 앱을 아래의 패키지명으로 설치하도록 유도한다.

 

"com.cash.apc.woori.kr.android.apd",

"com.kr.androids.kbstar.kbbankings.app",

"com.ibk.korea.kr.androids.ibkbanking",

"com.goog.sc.android.dadbdkr.scbankapp",

"com.android.google.shinhanbbk.kr.app",

"com.hana.google.kr.channel.korea.app",

"com.we.google.nhb.kr.bk.app",

"com.android.post.fsps.kr.wu.sdsi",

"com.kr.android.ftkc.kjb.kjbsmb.app",

"com.androids.kr.kf.androids.sm.spb"

[표 2] target 뱅킹 앱을 사칭한 악성 앱 리스트

 

은행별 다운로드 되는 링크는 아래의 코드 조합으로 이루어진다.

 


[그림 6] target 뱅킹 앱 리스트 & 추가 악성 앱 다운로드 코드

 

은행별로 코드를 조합하면 아래와 같은 주소에서 악성 앱을 다운로드 하게 된다.

 

http://******.****.net:6545/com.cash.apc.woori.kr.android.apd.apk

http://******.****.net:6545/com.kr.androids.kbstar.kbbankings.app.apk

http://******.****.net:6545/com.ibk.korea.kr.androids.ibkbanking.apk

http://******.****.net:6545/com.goog.sc.android.dadbdkr.scbankapp.apk

http://******.****.net:6545/com.android.google.shinhanbbk.kr.app.apk

http://******.****.net:6545/com.hana.google.kr.channel.korea.app.apk

http://******.****.net:6545/com.we.google.nhb.kr.bk.app.apk

http://******.****.net:6545/com.android.post.fsps.kr.wu.sdsi.apk

http://******.****.net:6545/com.kr.android.ftkc.kjb.kjbsmb.app.apk

http://******.****.net:6545/com.androids.kr.kf.androids.sm.spb.apk

[표 3] 추가로 다운로드하는 악성 뱅킹 앱

 

실제로 정상 앱이 제거되고, 악성 앱이 설치되는 과정은 아래와 같다.

 


[그림 7] 정상 앱 제거 및 정상 앱으로 위장한 악성 앱 설치 과정

 

악성 앱이 설치되면, 스마트폰의 공인인증서 및 금융 정보를 탈취한다.

 


[그림 8] 악성 앱에 의한 금융 정보 탈취

 

이러한 악성 앱들은 분석가의 분석시간을 오래 걸리게 하려는 방법으로 사용하거나, 자신이 만든 서버의 생명주기를 연장하기 위한 수단으로 코드를 난독화 한다. 이 악성 앱에서는 탈취한 정보를 전송하는 서버주소를 파악하기 어렵게 난독화 하였다. 사용한 방법을 살펴보면 아래와 같다. 아래 코드는 3개의 클래스에 나뉘어 있는 코드들이다. 이 3개의 코드를 조합하고 계산해야만 접근하는 주소를 알 수 있다.


[그림 9] 서버 주소의 난독화

 

계산 방법은 간단하다.

 

우선, 1.class의 "012017006020095000 ~중략~ 010001016016027010088" 값을 3.class 의 xor 함수 계산과 2.class 의 값을 조합하면, 접근하는 페이지의 주소를 알 수 있다. 값을 계산하면 아래와 같은 주소를 알 수 있다.

 

http://*.*****.com/profile?hostuin=28*****449

[표 4] XOR + 코드 조합의 계산 결과

 

해당 주소로 접근하여 IP주소를 받아온다.


[그림 10] QQ블로그의 IP주소

 

XXX!.XXX!XXX!XXX! 와 같은 형식의 IP주소를 받아오면, 치환 코드를 이용해 문자열을 변환하고, XOR 계산을 통해 얻은 값과 조합하여 또 다른 주소를 반환한다.

 


[그림 11] IP주소의 치환 및 XOR 과정

 

주소를 계산하는 과정을 정리하면, 문자열 => XOR 계산 + 코드 조합 => QQ블로그 접속 => IP주소 획득(가변) => IP주소 치환 + 문자열 XOR + 코드 조합 => 서버주소 완성 => 탈취한 금융 정보 전송!

 

이러한 과정을 거쳐 최종적으로 아래의 서버주소로 탈취한 정보를 전송한다.

 

126.**.***.**7/****/****/cers.php

[표 5] 악성 앱에 의해 탈취된 정보를 수집하는 서버주소

 

하지만 위에서 살펴본 것처럼 서버주소는 제작자에 의하여 수시로 변경이 가능하도록 설계되었다. 이 분석정보를 작성하는 중간에도 주소가 변경된 것으로 보아, 제작자는 활발히 활동하는 것으로 추정된다.

 

QQ 블로그를 이용한 악성코드는 Windows 기반의 banki 류 에서 hosts 파일을 변조할 때 자주 이용되는 방식이었다. Windows에서 사용하는 악성코드의 배포 방법과 정보 수집 방식들을 모바일에서 적용하는 사례가 증가하고 있다.

 

V3 제품에서는 아래와 같이 진단이 가능하다

 

<V3 제품군의 진단명>

 

 

 

 

 

댓글