분석 정보/모바일 분석 정보

[정보]실행 아이콘 없는 안드로이드 앱의 허와 실

TACHYON & ISARC 2012. 4. 25. 16:11

1. 개 요


일반적으로 사용자들은 특정 애플리케이션을 사용하기 원할때 다운로드 및 설치 후 생성된 아이콘(LAUNCHER)을 클릭하여 실행하게 된다. 그러나 일부 악용의 소지가 있는 애플리케이션 혹은 제작시 악의적인 목적을 가지고 만든 악성 애플리케이션은 필요에 따라 실행시 사용될 수 있는 아이콘(LAUNCHER)을 아예 제외하는 경우가 있으며, 사용자는 이 경우 어떤 애플리케이션이 어떠한 목적으로 가지고 언제 실행되었는 확인하기가 힘들다.

최근 이렇게 은밀한 실행 방법을 띄는 애플리케이션들이 지속적으로 발견되고 있으며, 이같은 애플리케이션은 대부분 악의적인 목적을 가지고 제작되는 경우가 대부분이기 때문에 사용자들의 선별적인 다운로드 습관 함양 및 스마트폰 보안성에 대한 인식이 무엇보다 중요해지고 있다.

이번에 소개할 악성 애플리케이션의 경우 애초에 악의적인 목적을 가지고 제작된것은 아니지만 위에서 설명한 것과 같이 실행 아이콘이 존재하지 않으며, 사용시 어떠한 의도 및 목적을 가지느냐에 따라 개인 정보에 대한 보안성에 많은 취약점을 노출할 수 있기 때문에 사용자들은 사용에 각별한 주의가 필요하다.
 
전화오면 일어나는 좀비폰, 한국 이용자 겨냥 시도?
http://erteam.nprotect.com/266

  

2. 유포 및 감염 증상

해당 악성 애플리케이션은 구글 정식 마켓을 통해서는 배포되고 있지 않으며, 해외 파일공유 사이트 및 제작사 홈페이지를 통해서 배포되고 있다. 마켓이 아닌 상태에서 APK파일 자체가 배포되기 때문에 PC상에서도 해당 악성 애플리케이션을 다운로드 할 수 있다.

아래의 그림과 같이 제작사의 홈페이지에서 해당 악성 애플리케이션에 대한 SDK 버전별 다운로드 링크 및 메뉴얼을 제공하고 있다.

  

◈ 설치 화면


해당 악성 애플리케이션은 설치시 아래의 그림과 같이 특정 권한들을 요구하게 된다.

 
※ 전체 권한

- android:name="android.permission.GET_TASKS"
- android:name="android.permission.RECEIVE_BOOT_COMPLETED"
- android:name="android.permission.INTERNET"
- android:name="android.permission.CALL_PHONE"
- android:name="android.permission.READ_CONTACTS"
- android:name="android.permission.WRITE_CONTACTS"
- android:name="android.permission.PROCESS_OUTGOING_CALLS"
- android:name="android.permission.RECEIVE_SMS"
- android:name="android.permission.READ_SMS"
- android:name="android.permission.WRITE_SMS"
- android:name="android.permission.ACCESS_FINE_LOCATION"
- android:name="android.permission.ACCESS_COARSE_LOCATION"
- android:name="android.permission.READ_PHONE_STATE"
- android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"
- android:name="android.permission.MODIFY_PHONE_STATE"
- android:name="android.permission.WRITE_EXTERNAL_STORAGE"
- android:name="android.permission.WRITE_SETTINGS"
- android:name="android.permission.WAKE_LOCK"
- android:name="android.permission.DISABLE_KEYGUARD"
- android:name="android.permission.VIBRATE"
- android:name="android.permission.MODIFY_AUDIO_SETTINGS"

설치가 완료되면 개요 부분에서 설명한것과 같이 LAUNCHER가 존재하지 않아 별도의 실행 아이콘은 보이지 않는다. 이로인해 사용자들 스스로 해당 애플리케이션을 설치하지 않은 이상 자신의 스마트폰에 이와같은 프로그램이 설치되어 있는지 여부를 바로 확인하기 어렵다. 다만, "환경설정" -> "응용프로그램" -> "응용프로그램 관리"에서 아래의 그림과 같은 아이콘을 통해 설치여부를 확인할 수 있다.

  

◈ 악성 기능 분석


해당 악성 애플리케이션의 전체적인 악성 기능을 아래와 같이 몇가지로 요약해볼 수 있다.

※ 전체 악성 기능

- SMS 수신 감시 및 수집
- 위치 정보 수집
- 통화내역 정보 수집
- 인터넷 사용 정보 수집
- IMEI, 안드로이드 OS SDK 등의 단말기 정보 수집
- 홈페이지 가입 시 입력한 계정 정보(ID/PW) 수집
- 수집된 정보의 외부 유출 시도
- 기타 증상(내부적으로 사용된 코드에 의해 배터리 과다 사용)

해당 악성 애플리케이션이 위와 같은 악의적인 기능을 수행하기 위해서는 우선, 설치 후 회원가입 및 별도의 활성화 과정을 거쳐야한다. 회원가입은 제작사 홈페이지에서 가능하며 보안성을 위한 확인 절차는 전무하다. 아래의 그림은 회원가입 시 필요한 기입정보이다.

계정생성은 위 그림과 같이 간략한 정보만 기입하면 가능하기 때문에 많은 시간이 소요되지 않는다. 감염시킬 스마트폰을 잠시만 사용자 몰래 사용할 수 있다면 손쉽게 홈페이지 접속 후 설치 및 계정생성을 진행할 수 있다.

해당 악성 애플리케이션은 별도의 활성화 과정을 위해 몇가지 브로드캐스트 리시버 등록(전화 발신 이벤트 등의 감지)을 통한 Client 활성화 방법을 사용하고 있다. 이때, 브로드캐스트 리시버에서 "전화 발신 이벤트"를 감지시 특정 발신 번호(#123456*)가 분기 조건부로 따른다.

위에서 설명한 조건부를 충족시키기 위해 다이얼에 특정 발신 번호(#123456*)를 입력한 후 "통화" 버튼을 누르게 되면 해당 악성 애플리케이션이 활성화 되며, 아래의 일부 코드와 같이 각종 정보 입력 및 저장을 위한 DB 파일(SPYOO.db)을 생성하게 된다.

또한, 해당 악성 애플리케이션은 DB생성과 동시에 아래의 그림과 같이 메인 설정 화면을 출력하게 된다.

위와 같은 메인 화면에서 Email Address와 Password 를 입력 후 "Login" 버튼을 클릭하게 되면 해당 악성 애플리케이션은 내부의 악성 서비스들을 실행하게 되며, 해당 악성 서비스들로 인해 유출되는 모든 정보가 제작사의 웹 페이지로 전송되게 된다. 아래의 그림은 악성 서비스가 실행된 상태의 프로세스 정보이다.

또한, 해당 악성 애플리케이션은 메인 화면과 같이 "Setting" 버튼을 통해 내부 기능의 커스터마이징을 위한 설정 기능을 제공하고 있으며, 조정이 가능한 설정 값들은 아래의 그림과 같다.


"Setting" 항목에서 설정할 수 있는 기능은 위 그림에서 보는바와 같이 "애플리케이션 활성화 및 Secret Key 설정", "모니터링 포워딩", "통화 내역 확인", "SMS 사용 내역 확인", "웹 사이트 사용 내역 확인", "위치 정보 확인" 기능들에 대한 적용 여부이다. 아래의 그림을 통해 DB에 저장된 각 설정 값의 일부를 확인 할 수 있다.


또한, GPS의 경우 세부 설정이 가능한데 "일정시간 마다 위치정보를 체크"하거나 "일정 거리 이동시 마다 위치정보를 체크" 하는 등의 설정이 가능하다. 다만, 이러한 세부 기능을 구현하는 API가 뛰어난 정밀성을 보장하지는 못한다.

설정을 모두 완료한 후 "Exit" 버튼을 클릭하게 되면, 해당 악성 애플리케이션은 저장된 설정값과 함께 백그라운드 상태에서 리시버와 서비스가 지속적으로 동작하는 상태로 숨겨지게 된다.

이렇게 해당 악성 애플리케이션에 대한 설정 및 활성화 작업이 종료되면 이제 본격적으로 아래의 일부 코드들을 통해 "SMS 정보 수집", "위치 정보 수집", "통화 내역 정보 수집", "인터넷 사용 정보 수집", "IMEI, SDK 버전 등의 단말기 정보 수집" 등의 악의적인 기능들을 수행하게 된다.


아래의 그림을 통해 수집된 각 정보의 DB 저장 상태를 일부 확인 할 수 있다.


수집된 각 정보는 위와 같이 악성 애플리케이션에 의해 생성된 DB에 저장된 후 아래의 일부 코드를 통해 리스트화 되어 IMEI 값과 함께 외부 사이트로 해당 정보들을 유출 시도하게 된다.


아래의 그림은 수집된 각 정보들이 유출 시도될 때의 디버깅 캡쳐 화면이다.


위에서 해당 악성 애플리케이션에 의해 수집된 정보를 제작사의 홈페이지를 통해 확인 할 수 있다고 언급하였다. 제작사의 홈페이지에서 생성한 계정정보를 입력 후 로그인 하게되면 아래의 그림과 같이 수집된 정보들을 실시간으로 열람 및 확인 할 수 있다.


제작사의 홈 페이지에서는 위와 같은 위치 정보 뿐만 아니라, 수신된 SMS 정보, 통화 내역 정보, 인터넷 사용 정보 등을 모두 열람할 수 있다. 그러나 현재는 위치 정보를 제외하면 모두 유료 결제 후에 열람이 가능하다.

해당 악성 애플리케이션의 주된 감염 증상은 위와 같이 여러 정보들에 대한 수집 및 외부 유출이라고 볼 수 있다. 다만 이와는 별개로 권장하지 않는 내부 API 사용 방법에 의해 배터리의 급속한 소모 또한 사용자 입장에서는 원치 않는 악성 감염 증상이라고 볼 수 있다.

해당 악성 애플리케이션은 서비스 등의 일부 백그라운드 상태에서의 동작을 위해 WakeLock을 사용한다. 다만, 해당 API의 경우 사용시 급속한 배터리의 소모를 유발할 수 있어 acquire() 후 반드시 해제 하는 등 후처리가 따라야 이러한 증상을 막을 수 있다.

물론 제작사 측에서 이러한 배터리 소모를 의도하고 API를 사용하였다고 추정되지는 않지만 이러한 점으로 인해 애플리케이션 사용시 원치 않는 결과가 도출된다면 사용자 입장에서는 충분히 악의적인 동작으로 볼 수 있다.

3. 예방 조치 방법

위와 같은 애플리케이션은 사용에 필요한 "계정 생성에 별다른 본인 확인 절차가 없다는점", "절차의 간단함으로 인해 인증 과정에 많은 시간이 소요되지 않는다는 점", "설치 후 별도의 실행 아이콘이 존재하지 않는다는 점" 이렇게 3가지 점때문에 악용의 소지가 다분하다고 볼 수 있다.

예전에 블로그를 통해 사용자 몰래 수신되는 SMS를 특정 휴대폰으로 포워딩하는 악성 애플리케이션에 대해 소개한 바 있으며, 이번에 소개한 악성 애플리케이션의 보안 위협성이 그때와 같다고 볼 수 있다.

악성파일 유포 기법중 가장 널리 사용되는 사회공학 기법이 별게 아니다. 특정인이 사용자 몰래 감염을 원하는 스마트폰에 간단하고 빠른 절차를 악용하여 해당 악성 애플리케이션을 설치 후 활성화 시켰다고 가정해 보자. 사용자는 의도치 않게 눈뜨고 코베이는 격으로 자신의 개인 정보를 고스란히 남에게 양도하게 될것이다.

때문에 이러한 악성 애플리케이션으로 부터 안전한 스마트폰 사용을 위해서는 아래와 같은 "스마트폰 보안 관리 수칙"을 준수하는 등 사용자 스스로의 관심과 노력이 무엇보다 중요하다고 볼 수 있다.

※ 스마트폰 보안 관리 수칙

1. 신뢰할 수 있는 보안 업체에서 제공하는 모바일 백신을 최신 엔진 및 패턴 버전으로 업데이트하여 실시간 보안 감시 기능을 항상 "ON" 상태로 유지해 사용할 수 있도록 한다.

2. 애플리케이션 다운로드 시 항상 여러 사용자를 통해 검증된 애플리케이션을 선별적으로 다운로드 하는 습관을 가질 수 있도록 한다.

3. 다운로드한 애플리케이션은 항상 모바일 백신으로 검사한 후 사용 및 설치 하도록 한다.

4. 스마트폰을 통해 의심스럽거나 알려지지 않은 사이트 방문 또는 QR 코드 이용시 각별히 주의한다.

5. 발신처가 불분명한 MMS 등의 메시지, 이메일 등의 열람을 자제한다.

6. 스마트폰에는 항상 비밀번호 설정을 해두고 사용하도록 한다.

7. 블루투스와 같은 무선 인터페이스는 사용시에만 켜두도록 한다.

8. 중요한 정보 등의 경우 휴대폰에 저장해 두지 않는다.

9. 루팅과 탈옥 등 스마트폰 플랫폼의 임의적 구조 변경을 자제한다.


※ 잉카인터넷(시큐리티대응센터/대응팀)에서는 해당 악성 애플리케이션에 대해 아래와 같이 진단/치료 기능을 제공하고 있으며, 24시간 지속적인 대응체계 가동 및 "nProtect Mobile for Android" 를 통해 다양한 모바일 보안 위협에 대응하고 있다.