포스팅 내용

악성코드 분석 리포트

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


안녕하세요? 이스트시큐리티 시큐리티대응센터(이하 ESRC)입니다.


브라질에서 모바일 워너크라이 랜섬웨어가 진화하여 다시 등장했습니다. 랜섬웨어로서의 기능뿐만 아니라 정보 탈취 기능과 원격 조종 등이 추가됐습니다.


한편, 한국에서는 랜섬웨어 기능은 빠져 있지만 원격 조종 코드 부분이 동일한 악성 앱이 등장했습니다. 해당 앱은 원격 조종을 통해서 문자 정보, 주소록 등의 개인 정보와 20가지 이상의 기기정보를 탈취합니다.

특히, 해당 앱은 분석을 어렵게 하기 위해서 중국 Tencent사의 패킹을 적용하였습니다.


본 분석 보고서에서는 'Trojan.Android.Agent'를 상세 분석하고자 합니다.


악성코드 상세 분석


1. 패킹 분석


1-1. 패킹 특징

중국 Tencent사의 패킹이 적용된 앱의 매니페스트 [그림 1]에는 원본 앱의 패키지명과 관련 컴포넌트들이 기입되어 있고 앱 실행 초기화 부분에서 언패킹을 진행합니다.

[그림 2]의 좌측은 패킹 된 상태의 클래스 구성이며 원본 앱과 관련된 부분을 전혀 찾을 수 없고 우측의 언패킹 이후 원본 앱의 구성을 볼 수 있습니다.


[그림 1] 패킹 된 앱의 매니페스트


[그림 2] 언패킹 전(좌) 후(우) 클래스


1-2. 안티 디스어셈블

언패킹 과정 중 암호화 된 부분들의 실제 복호화는 SO파일 로딩을 통해서 동적으로 이루어집니다. 해당 SO 파일에 언패킹 핵심 코드들이 기록되어 있기 때문에 안드로이드 SO파일 로딩의 특성을 이용해서 섹션 부분을 변조하고 이를 통해서 안티 디스어셈블을 구현하고 SO 파일의 정적 분석을 방해합니다. 



[그림 3] SO 파일에 적용된 안티 디스어셈블


1-3. SO 파일 복호화 

SO 파일의 특정 부분은 암호화 돼있고 해당 부분을 SO파일의 초기화 부분에서 복호화 합니다.


[그림 4] SO 파일 동적 복호화


악성 앱에서 생성되는 광고 창에는 Game Center의 화면이 노출되도록 되어 있으나 테스트 시 빈 화면만 노출되어 브라우저를 통해 접속한 화면입니다.


1-4. SO 파일 추가 복호화 

JNI_OnLoad 함수를 통해서 추가 복호화를 진행합니다.



[그림 5] 추가 복호화 진행

1-5. JNI 활용

RegisterNatives를 통해서 여러 개의 함수를 정의하고 그 중에서 “load”함수를 통해서 암호화 된 DEX파일을 복호화합니다.




[그림 6] load 함수 로딩

1-6. DEX 파일 복호화

안드로이드 런타임 형태 중 DVM인지 ART인지를 확인하고 이에 따라서 DEX파일의 복호화 방법이 달라집니다. 샘플 분석에 사용된 기기의 런타임 형태는 ART이고 복호화 된 DEX 파일은 libart.so 파일에 의해서 메모리로 로딩됩니다. 메모리에 로딩 된 DEX파일을 스크립트로 덤프합니다.





[그림 7] DEX 파일 덤프

2. dex 파일 분석


2-1. 실행 화면

앱을 처음 실행하면 “중년채팅”을 사칭하며 회원가입, 로그인 등의 창이 나타납니다. 지속적인 악성 행위를 위해서 “배터리 사용량 최적화 안 함”을 통해서 앱 종료를 방지합니다. 또한, 해당 화면은 안드로이드 웹뷰를 이용하여 103.93.79.112 주소의 내용을 앱 화면으로 로드합니다.





[그림 8] 웹뷰를 활용한 앱 사칭

2-2. 원격 명령

최근 이슈가 되고 있는 모바일 랜섬웨어 코드 중에서 원격 명령 코드의 형태가 동일합니다. https://ti.360.net/blog/articles/the-first-counterfeit-wannacry-malware-that-happened-in-brazil/ 분석 내용과 비교 해보면 [그림 9]의 명령어 코드가 동일하고 [그림 10]의 명령어 형태도 비슷합니다.





[그림 9] 분석 샘플의 원격 명령 코드




[그림 10모바일 랜섬웨어(상) 와 분석 샘플(하) 명령 비교

2-3. 정보 탈취

20가지 이상의 기기와 관련된 정보들을 확보하여 C2로 탈취합니다.



[그림 11정보 탈취


결론


해당 악성 앱은 채팅 앱을 사칭합니다. 기기와 관련된 거의 모든 정보를 탈취하고 원격 명령을 통해서 실시간으로 기기를 감시하고 원하는 개인 정보를 탈취합니다. 특히, 앱의 분석을 어렵게 하기 위해서 중국 Tencent 패킹을 적용했습니다. 따라서, 악성 앱으로부터 피해를 최소화하기 위해서는 백신 앱을 통한 주기적인 검사가 중요합니다. 출처가 불명확한 URL과 파일은 실행하지 않는 것이 기본이고 공식 마켓인 구글 플레이스토어를 통해서 확보한 앱이라도 백신 앱을 추가 설치하여 주기적으로 업데이트하고 검사해야 합니다.


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




티스토리 방명록 작성
name password homepage