Spyware. Android. PowerOffHijack
Poweroffhijack은 중국에서 발견된 악성 앱으로 중국 안드로이드폰 사용자를 대상으로 동작하는 악성앱입니다. 이 악성앱의 특징은 사용자가 스마트폰의 전원을 차단해도 악성앱이 동작하여 지속적으로 사용자의 정보를 수집하는 행위를 한다는 것입니다. 최초로 발견된 것은 2014년 11월경으로, 중국에서 발견되었습니다. Power-offhijack 악성앱은 기기의 power 상태 변화를 감시합니다. reboot이나 shutdown등의 요청 시 화면만 검은색으로 바꾸어 기기의 전원이 off 상태인 것처럼 위장하여 사용자를 속이는 행위를 합니다. 이후 사용자의 개인 정보를 지속적으로 탈취합니다.
초기의 Poweroffhijack은 몇 가지 제약이 있어 중국 이외의 국가에서는 발견되지 않았습니다. 그 첫 번째 이유는 중국에서 사용되는 기기에만 존재하는 데이터나 프로세스를 활용하는 코드의 사용으로 다른 지역에서는 설치된다 해도 제대로 동작하기 어렵기 때문입니다. 두 번째 이유로는 사용자 기기가 루팅 상태여야만 전원관리 코드를 훅하여 전원 관리 상태를 공격자의 의도대로 변경할 수 있기 때문입니다.
본 분석 보고서의 대상 샘플은 기존 Poweroffhijack의 변종으로 시스템에 의존적인 코드가 제거되어 있습니다. 따라서 지역과 기기의 루팅 여부와 상관없이 스파이 행위를 하도록 코드가 변경된 것으로 판단됩니다.
악성코드 분석
※ APK 분석
파일정보
A. 파일 이름 : 14D9F1A92DD984D6040CC41ED06E273E.apk
B. MD5 : 14D9F1A92DD984D6040CC41ED06E273E
C. 패키지 명 : com.google.progress
D. 주요 사용 퍼미션
[표 1] 앱이 사용하는 주요 권한
행위
앱은 다음의 행위들을 수행하는 코드를 가지고 있습니다.
A. 오디오 녹음
발신 통화 녹음, 사용자 도청
B. 문자 목록 가져오기
사용자 문자 메시지 수집
C. 네트워크 정보 가져오기
사용자 기기를 항상 네트워크를 사용할 수 있는 환경으로 유지
D. GPS로 위치 확인
사용자 위치 파악
E. 통화 내역 가져오기
사용자 통화 내역 수집
F. 연락처 목록 가져오기
기기에 저장된 연락처 정보 수집. 이름, 이메일, 전화번호 수집
[그림 1] 악성앱 설치 화면
설치가 완료되면 앱의 최초 실행인 열기 버튼이 비활성화되어 있는 상태이기 때문에 앱을 실행할 수 없습니다. 이후 악성앱에 대한 흔적은 실행 프로세스 목록 등에서 확인할 수 있습니다.
코드 흐름도
다음 [그림 2]는 앱이 설치되어 최초로 실행될 때의 코드 흐름입니다. 각 클래스별로 역할이 나뉘어져 있으며, 대부분의 코드는 사용자 기기의 상태를 점검하여 정보 수집 및 탈취를 위한 환경을 설정합니다.
[그림 2] 최초 실행 코드 흐름도
초기 실행 코드에서는 다음과 같은 부분을 체크하고 있습니다.
오디오 및 마이크 상태
GPS 상태
Wifi 상태
공격자 번호 등록 (그림 2에서는 감시 번호)
[그림 2]에서 감시 번호 등록은 공격자의 전화번호를 의미합니다. 이는 공격자의 스마트폰에서 피해자에게 직접 공격 명령을 내릴 수 있다는 뜻입니다. 공격은 도청에 한하여 수행되는 것으로 기존의 악성앱들과는 확연히 다른 공격 방법을 사용하고 있습니다.
[그림 2]의 주요 클래스에 대해 살펴 봅시다.
- BootReceiver
이 클래스는 엔트리 포인트로 BOOT_COMPLETED, SMS_RECEIVED, NEW_OUTGOING_CALL, SCREEN_OFF, PACKAGE_INSTALL의 리시버 코드가 있습니다. 최초 실행 코드는 자신의 설치 여부를 확인하는 “PACKAGE_INSTALL” 메시지를 리시브 하여 AndroidcliendService를 시작시킵니다.
[그림 3] 전화 상태 변경 시 코드 흐름도
[그림 4]는 도청 공격 시 동작하는 코드 흐름입니다. 이 코드는 공격자가 사용자의 스마트폰으로 전화를 거는 것을 신호로 동작합니다. 공격자의 번호로 전화가 오면 코드는 화면을 검은색으로 변경합니다. 이후 스크린 On/Off 리시버를 등록하여 도청을 수행하고, 도청이 끝나면 전화를 끊고 홈 화면으로 이동합니다.
[그림 4] 공격자가 사용자 폰 도청 시 수행되는 코드
[그림 5]는 BakcGroundActivity가 실행되면 최초로 수행되는 코드입니다. 단지 화면을 검게 만드는 코드만 존재합니다.
[그림 5] BackGroundActivity의 진입 코드
※ 코드 상세분석
부트 리시버
앱 실행 시 최초 실행 코드이며, 주요 동작은 AndroidClientService의 구동입니다.
[그림 6] BootReceiver 코드
스크린 On/Off 리시버
화면 on/off 상태를 감시하기 위해 다음의 리시버를 등록합니다. 화면상태 변경 감지 시, 도청을 중지시킵니다.
[그림 7] ScreenBroadcastReceiver
[그림 8] 네트워크 상태 체크
문자 가져오기
사용자의 문자를 수집하는 코드입니다.
[그림 9] 사용자의 SMS 문자 수집 코드
[그림 10] GPS 정보와 구글을 통해 현재 위치 수집
[그림 11] 통화 내역 수집 코드
연락처 수집
연락처를 수집하는 코드입니다. 수집 대상은 각 연락처의 이름, 이메일, 전화번호입니다.
[그림 12] 연락처의 이메일 수집 코드
악성코드 분석 결론
Spyware.Android.PowerOffHijack 악성앱은 사용자 정보를 탈취하는 것이 주된 목적입니다. 이 악성앱의 위협적인 부분은 피해자가 자신도 모르게 실시간으로 도청당할 수 있다는 점과 공격자가 내 위치를 실시간으로 파악할 수 있다는 점입니다.
이러한 악성앱의 설치를 막기 위해서는 다음과 같은 조치를 취해야 합니다.
- 스미싱을 진단할 수 있는 앱 사용
- 백신을 사용하여 주기적으로 검사
- 다운로드 받은 파일의 설치 전 백신 검사 실행
- ‘알 수 없는 소스’ 옵션 비활성화 (공식 마켓을 통한 앱 설치 권장)
- 스마트폰의 구조를 임의로 변경하지 않기
※ 관련 내용은 알약 보안동향보고서 3월호에서도 확인하실 수 있습니다.
[악성코드 분석리포트] Spyware.Infostealer.VicePass (3) | 2015.06.11 |
---|---|
직장 내 괴롭힘 보고서 내용 사칭 표적공격 분석 (2) | 2015.06.02 |
[악성코드 분석 리포트] Trojan. Cutwail. Aj (5) | 2015.04.08 |
페이스북 계정 탈취를 노리는 피싱 공격 주의! (6) | 2015.04.01 |
'카카오톡 본인인증이 필요합니다' 카카오톡 위장한 보이스피싱 유도 악성앱 발견 (15) | 2015.03.30 |
댓글 영역