이번에 분석해 볼 앱은 정말 최근(2012. 4.11)에 발견된 원격 스마트폰을 SMS로 컨트롤하는 앱이다.
클래스파일이 너무 많아 line by line는 안되고 악성 행위를 하는 부분에 대해서만 설명하도록 하겠다.
일단 GPS 업데이트 부분을 한번 살펴보자. 해당 앱은 감염된 스마트폰의 GPS 정보를 전송하는 기능이 있는데 해당 기능은 [그림1]과 같은 소스코드가 수행하며 클래스 파일의 이름은 CdmaCellLocation이다.
[그림 1 - GPS 위치 전송 데이터 설정]
이번에는 전화통화를 강제로 종료하는 부분이다. 스마트폰의 스크린이 켜지면 그 이벤트를 감지하여 전화통화 상태일시 전화통화를 종료해버린다.
[그림 2 - 전화통화 강제종료]
이번에는 감염 스마트폰의 이미지 전송 부분이다. 사용자가 갤러리등을 통해 사진을 호출하려고 할 때 대부분의 앱들은 미리보기를 보여주게 되는데 이 미리보기가 호출되면 자동적으로 OnPreviceFrame() 메소드가 호출되어 이미지가 특정한 곳으로 전송 된다.
[그림 3 - 이미지 전송]
이번에는 가장 핵심적인 SMS 메시지 명령에 대한 부분을 보자. [그림 4]는 감염 스마트폰으로 SMS가 올 시 그것을 감지하는 부분이다.
[그림 4 - SMS 감지]
이번에는 명령을 체크하는 부분이다. 아래는 그 일부분이다.
[그림 5 - SMS 명령 체크]
이젠 어떠한 명령이 있는지 알아보자. 일단 네트워크에 관련된 부분이다.
[그림 6 - wift 체크]
[그림 6]은 wifi가 연결되어 있는지 확인하는 메소드 부분이다. 이뿐만 아니라 네트워크의 설정정보도 변경하며 사용자가 네트워크 설정 정보를 변경하면 그것또한 감지하여 다시 네트워크 정보를 변경한다.
[그림 7 - 재부팅]
[그림 7]은 악성 앱이 감염 스마트폰을 강제적으로 재부팅시키는 메소드 부분이다.
[그림 8 - 백그라운드 프로세스 Kill]
[그림 8]은 악성 앱이 백그라운드에서 실행되고 있는 프로세스를 죽이는 메소드 부분이다.
[그림 9 - 상수]
[그림 9]는 GPS와 녹음파일을 업로드 하는 메소드 부분에서 사용되는 상수 값이다. 앞에서 보았던 GPS 설정 데이터를 해당 부분에서 전송하며 녹음 파일 또한 같은 메소드에서 전송한다.
[그림 10 - 전송 후 삭제]
[그림 10]은 녹음 파일을 전송 한 후 삭제하는 부분이다. [그림 11]은 특정 서버와 연결하는 부분으로 해당 서버와 연결이 되면 계속해서 서버에서 오는 수신 메시지를 받는다.
[그림 11 - 서버메시지 수신]
마지막으로 화면잠금 해제 부분이다.
[그림 12 - 화면잠금 해제]
정말 앱 하나에 기능이 많이 들어가 있다. 보기 좋게 어떤 악성 행위를 하는지 정리해 보면 다음과 같다.
1. GPS 데이터 전송
2. SMS 특정번호로 전송
3. 네트워크 설정 정보 변경 및 연결상태 확인
4. 특정 서버와 데이터 송수신
5. 백그라운드의 프로세스 Kill
6. 녹음 파일 전송
7. 스마트폰 재부팅
8. 전화통화 강제종료
9. 이미지 전송
10. 화면 잠금 해제
결국 해당 앱은 감염 스마트폰으로 오는 메시지들을 모니터링 해서 명령에 해당하는 것이 있으면 해당 명령에 관한 기능을 수행한다. 또 스마트폰 상태에 따라 여러가지 정보를 변경한다. 마지막으로 여러 특정데이터들을 특정한 곳으로 전송 시킨다.
전형적인 봇의 형태를 나타내며, 악성코드로서의 행위도 하는 스마트폰에 어울리는 아주 스마트한 악성 앱이다.
'[+] Security > [-] Analysis' 카테고리의 다른 글
CVE 2012-0507 간단 분석 (12) | 2012.05.17 |
---|---|
Yszz 0.1 난독화 등장!! (0) | 2012.05.17 |
Android.Stiniter_TGLoader Analysis (0) | 2012.04.12 |
Encrypt By Dadong's JSXX 0.41 VIP 샘플 분석 (2) | 2012.03.10 |