상세 컨텐츠

본문 제목

Trojan.Android.Banker 악성코드 분석 보고서

악성코드 분석 리포트

by 알약(Alyac) 2018. 10. 25. 13:00

본문

녕하세요? 이스트시큐리티입니다.


MS사의 Xamarin을 활용하는 또 다른 악성 앱이 등장하였습니다. 해당 앱은 구글 플레이스토어와 비슷한 이름과 아이콘을 사용하여 사용자를 속입니다. 지속적인 악성 행위를 위해서 앱의 아이콘을 숨기고 관리자 권한을 요구합니다. 또한, 원격 명령을 통해서 기기정보 탈취뿐만 아니라 문자기록, 주소록 등의 개인정보까지 탈취합니다. 무엇보다 가짜 사이트를 띄워 카드 관련 정보를 탈취합니다.

 

본 분석 보고서에서는 “Trojan.Android.Banker”를 상세 분석하고자 합니다. 




악성코드 상세 분석


1. 악성 행위 준비

처음 악성 앱을 실행하면 사용자를 속이기 위해서 해당 앱의 아이콘을 숨기고 관리자 권한을 요구합니다. 관리자 권한을 허용하도록 유도하는 문구를 띄우고 관리자 권한이 허용되면 기기의 바탕화면으로 자동 이동합니다. 아이콘을 숨김으로써 지속적인 악성 행위가 가능하고, 관리자 권한 허용을 통해서 앱 삭제를 방해합니다.


 

[그림 1] 악성 행위 준비



2. 기기 정보 등록

기기와 관련된 정보들을 C&C 서버 5.9.33.226:541에 등록합니다. 그러나, 실제 통신은 되지 않고 있습니다. 저장되는 정보들로는 기기의 전화번호, 모델, 제조사, 유심정보 등 10가지 기기 정보가 등록됩니다.


[그림 2] C&C 서버에 저장되는 기기 정보



3. 카드 정보 탈취

해당 샘플의 “assets” 폴더 내부의 구글 결제를 사칭한 “index_main.html”를 띄우고 카드 관련 정보를 탈취합니다. 해당 언어는 러시아어로 되어있어 공격 대상이 러시아임을 알 수 있습니다.


[그림 3] 카드 정보 탈취 



4. 원격 명령

C&C 서버를 통하여 원격 명령을 내릴 수 있다. 원격 명령은 기기의 모든 기능을 통제하는 23가지 명령으로 되어 있습니다.


[그림 4] 원격 명령


SendSMS 명령을 통해서 SMS 관련 권한을 확인하고 SendTextMessage 메소드를 통해서 SMS를 전송합니다.

 

[그림 5] SendSMS 명령


RequestGoogleCC 명령을 통해서 카드 정보를 훔치는 구글 결제 사칭 화면을 언제든지 띄울 수 있습니다.

 

[그림 6] RequestGoogleCC 명령


Wipe 명령을 통해서 기기의 사용자 데이터 정보를 삭제합니다.


[그림 7] Wipe 명령


OpenBrowser 명령을 통해서 원하는 사이트를 기기의 화면에 띄울 수 있습니다.

 

[그림 8] OpenBrowser 명령


SendUSSD 명령을 통해서 기기와 관련된 특정 정보를 확인할 수 있습니다. 예를 들면, *#44336#로 통화를 누르면 소프트웨어 버전의 정보를 알 수 있고, *#92782#는 기기 모델 등을 알 수 있습니다. 이와 관련하여 USSD는 Unstructured Supplementary Service Data의 약자이며, 상호작용하는 프로토콜로 180여 개의 명령이 존재합니다.

 

[그림 9] SendUSSD 명령


ServerChange 명령을 통해서 C&C 서버의 주소를 변경할 수 있습니다.

 

[그림 10] ServerChange 명령


StartApp 명령을 통해서 다른 앱을 추가 실행할 수 있습니다.


[그림 11] StartApp 명령


CallPhone 명령을 통해서 특정 번호로 전화를 걸 수 있습니다.

 

[그림 12] CallPhone 명령


SetPingTimer 명령을 통해서 C&C 서버와의 통신주기를 조절할 수 있습니다.

 

[그림 13] SetPingTimer 명령


SMSBroadcast 명령을 통해서 수신되는 SMS를 확인할 수 있습니다.

 

[그림 14] SMSBroadcast 명령


RequestContacts, RequestSMSList, RequestAppList, RequestLocation 각 명령을 통해서 주소록, SMS 목록, 설치된 앱 목록, 위치 정보를 요청할 수 있습니다.

 

[그림 15] RequestContacts 명령

 

[그림 16] RequestSMSList 명령

 

[그림 17] RequestAppList 명령

 

[그림 18] RequestLocation 명령


ShowNotification 명령을 통해서 기기의 상단 바로 알람이 가도록 할 수 있습니다.

 

[그림 19] ShowNotification 명령


SetLockPassword 명령을 통해서 기기의 비밀번호를 제어합니다.


[그림 20] SetLockPassword 명령


LockNow 명령을 통해서 화면을 잠급니다.

 

[그림 21] LockNow 명령


MuteSound 명령을 통해서 기기의 소리를 제어합니다.

 

[그림 22] MuteSound 명령


LoadScript, LoadPlugin, Evaluate, AddInject, RemoveInject 5개의 각 명령을 통해서 스크립트 삽입, 코드 삽입 및 삭제 등의 추가 행위가 가능합니다.

 

[그림 23] 코드 추가 및 삭제와 관련된 명령



5. 기타 행위

C&C 서버와의 통신을 유지하기 위해서 와이파이를 관리하고, 전원 제어를 통하여 앱이 꺼지지 않도록 합니다. 또한, 수신되는 SMS의 번호와 내용을 탈취하여 수시로 C&C 서버로 전송합니다.


[그림 24] 와이파이 제어

 

[그림 25] 전원 제어 


[그림 26] 수신 문자 탈취



결론


해당 악성 앱은 공식 마켓인 구글 플레이스토어의 아이콘과 이름을 사칭합니다. 사용자를 속이기 위해서 앱을 숨기고 지속적인 악성 행위를 위해서 관리자 권한을 요구합니다. 원격 명령을 통해 기기 및 개인 정보를 탈취하는데, 특히 신용 카드 정보를 탈취하기 때문에 사용자의 금전적 피해가 커질 수 있습니다.


따라서, 악성 앱으로부터 피해를 최소화하기 위해서는 백신 앱을 통한 주기적인 검사가 중요합니다. 출처가 불명확한 URL과 파일은 실행하지 않는 것이 기본이고 공식 마켓인 구글 플레이스토어를 통해서 확보한 앱이라도 백신 앱을 추가 설치하여 주기적으로 업데이트하고 검사 해야 합니다.


현재 알약M에서는 해당 앱을 “Trojan.Android.Banker”탐지 명으로 진단하고 있습니다.



관련글 더보기

댓글 영역