이번 포스팅에서는 가장 흔하게 배포되고 있는 안드로이드 스미싱 악성코드인 CJ대한통운 택배 사칭 앱에 대한 악성코드 분석을 한다. 분석 방법은 AndroidManifest.xml 분석과 코드 정적 분석 그리고, 직접 실행하여 유출되는 패킷을 분석하는 동적 분석을 진행할 예정이다.
해당 악성 앱은 실제 구글 앱 스토어에 있는 앱과 아이콘이 유사하기 때문에, 일반 사용자들은 이를 CJ대한통운 택배 앱으로 착각하고 설치하게 되었을 때, 피해를 입게 된다. 다음과 같이 CJ대한통운 택배 앱을 사칭하며, 실제 정상 앱과 유사한 아이콘으로 일반 사용자들을 속이고 설치를 유도한다.
해당 악성코드를 Virustotal 사이트에서 확인해보면, 다음과 같이 많은 백신 엔진에서 이를 탐지하고 있음을 알 수 있으며, 탐지명은 대다수가 Android.Trojan.SmsSpy 명칭을 사용하는 악성코드로 SMS 정보를 탈취하는 행위를 하는 것을 가늠할 수 있다.
1. AndroidManifest.xml 분석
Apktool를 이용하여 AndroidManifest.xml를 열어보면, 해당 악성 앱은 다음과 같은 권한을 요구한다.
- 네트워크 사용 권한 (INTERNET)
- 폰 상태 정보 읽기 권한 (READ_PHONE_STATE)
- SMS 읽기 권한 (READ_SMS)
- SMS 보내기 권한 (SEND_SMS)
- 부팅 완료 시, 브로드캐스트를 받을 수 있게 하는 권한 (RECEIVE_BOOT_COMPLETED)
- SMS 수신 권한 (RECEIVE_SMS)
- 환경설정 변경 권한 (WRITE_SETTINGS)
- 전화 수신 관련 권한 (CALL_PHONE)
- 폰 상태 변경 권한 (MODIFY_PHONE_STATE)
최초로 수행되는 Entry Point는 MainActivity로 등록되어 있으며, 그 밖에 1개의 Activity와 1개의 Service, 2개의 Receiver로 구성되어 있음을 확인할 수 있다.
2. 소스 코드 정적 분석
소스 코드 정적 분석의 경우 JEB Decompiler를 이용하였으며, 이전 포스팅에서 JEB Decompiler에 대한 설명을 하였다.
JEB Decompiler : 2017/05/02 - [Analysis/Android] - 안드로이드 디컴파일러 (JEB Decompiler)
최초 앱이 실행되면 아래 그림처럼 실행과 동시에 애플리케이션 목록에서 해당 앱의 아이콘을 은폐시킨다. 또한, 앱 디렉토리 내에 shared_prefs에서 perf.xml 파일에 접근하여 해당 정보를 가져오며, PreodicService와 RegDPMActivity를 각각 인텐트로 Service와 Activity 형태로 실행하게 된다.
http://goncp.ucmkb.net/ DNS 주소를 확인할 수 있다.
다음으로 Intent를 이용하여 Service로 등록시킨 PreodicService를 분석해보면, 해당기기의 전화번호를 http 프로토콜의 파라메타 형태로 전송한다.
RegDPMActivity 경우, Intent를 이용하여 Activity 형태로 실행시키며 앱이 실행되면 기기 관리자 정보를 요구한다.
다음으로 Receiver로 등록된 CallStateReceiver와 SMSBroadcastReceiver의 경우, 기기의 상태를 체크하여 해당 기기의 정보를 탈취하려는 의도를 확인할 수 있다.
3. 네트워크 동적 분석
다음으로 Tcpdump를 이용하여, 해당 악성 앱을 동작시켜 실제 유출지로 기기의 정보를 전송하는지 분석한다.
안드로이드 환경에서의 Tcpdump 사용 방법은 이전 포스팅에서 설명하였다.
안드로이드 환경에서의 Tcpdump 사용 방법 : 2017/05/03 - [Android] - 안드로이드 환경에서의 Tcpdump 사용 방법
해당 기기에서 악성 앱을 동작시키고 덤프 받은 pcap 파일을 분석하면 다음과 같이 기기의 정보를 전송하는 것을 확인할 수 있다.
또한, 유출 도메인을 nslookup 명령어를 실행하여 해당 DNS 정보를 조회할 수 있는데, 이를 조회할 경우 다음과 같은 IP를 확인할 수 있다.
해당 IP를 whois를 이용하여 유출 국가를 확인할 수 있는데, 다음과 같이 홍콩으로 해당 정보가 유출되는 것을 확인할 수 있다.
4. 악성 앱 제거 방법
해당 앱을 삭제하기 위해서는 다음과 같이 기기 관리자 정보에서 기기 관리자 권한을 해제한 후, 제거가 가능하다.
'Analysis > Android' 카테고리의 다른 글
안드로이드 악성코드 DES 암호화 패킹 복호화 방법 (0) | 2017.05.03 |
---|---|
안드로이드 리패키징 앱의 위험성 (1) | 2017.05.02 |
Apktool을 이용한 안드로이드 apk 파일 디컴파일 및 리패키징 (6) | 2017.05.02 |
안드로이드 디컴파일러 (JEB Decompiler) (0) | 2017.05.02 |
안드로이드 디컴파일러 (BytecodeViewer) (0) | 2017.05.02 |