상세 컨텐츠

본문 제목

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

악성코드 분석 리포트

by 알약(Alyac) 2018. 5. 24. 17:00

본문

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


DNS 하이재킹을 이용한 안드로이드 악성 앱이 등장하였습니다. DNS 하이재킹은 라우터를 공격하여 사용자가 정상 사이트 접속 시 악성 사이트로 리다이렉트 되도록 합니다. 이후 페이스북, 크롬 등 유명한 앱으로 위장한 악성 앱을 사용자가 설치하도록 유도합니다.


사용자의 통화 내용을 녹음하고 설치된 은행 앱, 게임 앱 등과 관련된 정보들을 탈취합니다. 특히, C&C서버의 주소를 감추기 위해서 중국 사이트 파싱을 통해 주소를 수신하고 10개 이상의 원격 명령을 통해서 사용자의 기기를 실시간 제어합니다.


본 분석 보고서에서는 “Roaming Mantis”를 상세 분석하고자 합니다.




악성코드 상세 분석


1) 악성 행위 유지를 위한 장치

가. 아이콘 숨김

지속적인 악성 행위를 위하여 앱의 아이콘을 숨깁니다.


[그림 1] 아이콘 숨김



나. 삭제 방해

관리자 권한을 요구하고 현재 실행되고 있는 최상위 액티비티를 확인하여 그 패키지 명이 “환경설정”이나 “V3 백신”일 경우 홈 화면으로 되돌아가도록 합니다. 관리자 권한이 승인된 앱을 삭제하고자 할 때는 “환경설정”에서 관리자 권한을 먼저 해제해야 앱의 삭제가 가능합니다.

 

[그림 2] 삭제 방해



다. 절전모드 방해

“wakelock”을 통해서 앱이 종료될 수 있는 절전모드 진입을 막아 지속적인 악성 행위를 가능토록 합니다. 해당 기능은 “acquire”메소드를 통하여 활성화한 후 “release”메소드로 해제를 해주어야 하나 해당하는 코드가 없어 배터리의 사용량을 증가시킵니다.


[그림 3] 절전모드 방해



라. 재실행

기기가 부팅되면 앱이 재실행 됩니다.


[그림 4] 부팅 시 앱 재실행



마. 와이파이 강제 연결

와이파이 연결을 확인하고 와이파이가 비활성화되면 자동으로 재 연결되도록 합니다.


[그림 5] 와이파이 재 연결



바. 배터리 최적화 옵션 해제

배터리 최적화 옵션을 해제함으로써 앱의 종료를 방지하여 지속적인 악성 행위를 합니다.


[그림 6] 배터리 최적화 옵션 해제



2) 인코딩된 악성 덱스 파일 디코딩

실질적인 악성 행위를 하는 “data.sql”파일은 앱의 Assets 폴더 내부에 Base64로 인코딩되어 저장되어 있습니다. 해당 파일은 Base64로 디코딩되어 “/data/data/ghd.et.hds(패키지명)/files”경로에 “test.dex”파일로 생성됩니다.

 

[그림 7] 악성 덱스 파일 디코딩



3) 악성 덱스 파일 동적 로딩

Base64로 디코딩된 “test.dex”파일을 동적으로 로딩하고 이 덱스 파일 내부에 “com.Loader”클래스의 “create”와 “start”메소드를 실행합니다. 실제 해당 덱스 파일이 메모리에 실제 로드되었는지는 “/proc/self/maps” 파일을 통해서 확인할 수 있습니다.


[그림 8] 동적 로딩



4) 인텐트 및 액션 추가

다수의 인텐트 및 액션을 동적으로 추가합니다.


[그림 9] 인텐트 및 액션 추가



5) 앱 변경

설치되는 앱 중 탈취하고자 하는 앱이 있으면“/sdcard/.update2/”폴더의 공격자가 원하는 앱으로 바꿔치기한 후 설치되는 앱은 삭제가 되고 공격자의 바꿔치기 된 앱이 실행합니다. 

 

[그림 10] 특정 앱 탈취



6) 구글 계정 탈취

사용자의 기기에 저장된 계정 중 구글 계정을 탈취합니다.

 

[그림 11] 구글 계정 탈취



7) 구글 계정 관련 정보 탈취

위에서 탈취된 구글 계정을 이용하여 사용자의 기기를 서버로 하는 피싱 사이트를 팝업하고 관련 정보 작성을 유도합니다. 피싱 사이트와 관련된 부분은 하드코딩 되어 있으며 한국어, 일본어, 중국어, 영어를 지원합니다.

 

[그림 12] 구글 계정 관련 정보 탈취



8) 원격 명령

C&C 서버로부터의 원격명령을 통하여 실시간으로 악성 행위가 가능합니다.


[그림 13] 원격 명령


9) 탈취 정보 전송

아웃룩 메일을 통하여 기기와 네트워크 상태의 기본정보를 전송합니다. 사용되는 계정은 “asw????v@hotmail.com”이며 디버깅 메시지를 보면 메일 전송은 되지 않고 있습니다.


[그림 14] 아웃룩 이용 탈취 정보 전송



10) C&C 서버 주소 수신

중국의 “baidu" 사이트를 파싱하여 특정 문자열을 얻어온 후 문자열“beg”를 킷값으로 xor 복호화를 진행하여 C&C 서버 주소를 얻습니다. 사이트 주소 구성을 보면 중간에 특정 ID가 들어가게 되는데 이 ID는 감염된 사용자의 국가에 따라 다른 ID가 들어갑니다. (사이트 구성이 변경되어 C&C 서버를 알 수 없음)

 

[그림 15] C&C 서버 주소 수신



11) 탈취되는 앱

하드 코딩된 18개의 앱의 정보가 탈취됩니다. 주 표적은 한국임을 알 수 있으며 은행 앱, 게임 앱, OTP 앱을 대상으로 합니다.

 

[그림 16] 탈취되는 앱 목록


12) 정보 탈취

가. 설치된 앱들의 패키지명 탈취

기기에 설치된 앱들의 패키지 명을 탈취합니다.


[그림 17] 설치된 앱 패키지명 탈취



나. 통화 녹음

통화를 녹음하고 “/sdcard/.rec/”폴더에 “. rec.amr"파일로 저장합니다. 폴더와 파일 앞에 “.”을 추가하여 숨김을 하고 있습니다.


[그림 18] 통화 녹음



다. 수신되는 SMS 탈취

SMS가 수신되면 문자 내용, 발신 번호, 수신 시간을 탈취합니다.


[그림 19] SMS 탈취


라. MMS 탈취

MMS 문자를 탈취합니다.


[그림 20] MMS 탈취



마. 종합 정보 탈취

앞에서 탈취한 개인정보와 관련된 부분뿐만 아니라 기기의 세세한 부분과 관련된 정보까지 추가로 탈취하여 개인정보 및 기기 정보를 종합하여 탈취합니다.


[그림 21] 종합 정보 탈취 



결론


해당 악성 앱은 기기 정보 및 개인정보를 탈취하고 은행 및 게임과 관련된 앱의 정보까지 추가로 탈취하여 금전적인 이득을 노리고 있다는 것을 알 수 있습니다. 지속적으로 악성 행위를 하기 위하여 앱의 아이콘을 은닉하고 앱 삭제와 관련된 기기의 환경설정 및 백신의 실행을 감시하여 앱 삭제를 방해합니다.


따라서, 악성 앱에 감염되지 않기 위해서는 예방이 중요합니다. 출처가 불명확한 URL은 실행하지 않아야 합니다. 또한, 주변 기기의 비밀번호를 자주 변경하고 OS와 애플리케이션을 항상 최신 업데이트 버전으로 유지해야 합니다.


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





관련글 더보기

댓글 영역