1. 개 요
최근 안드로이드용 악성 어플리케이션이 지속적으로 등장하고 있어 스마트폰의 보안 위협이 계속해서 증가되고 있다. 악성 어플리케이션 제작에는 최근 정상 어플리케이션에 악의적인 기능을 추가하는 "재패키징" 기법이 가장 널리 사용되고 있으며, 최근에는 이러한 재피키징 기법에 새로운 악성 APK 파일을 내부에 포함하는 "2중 패키징 기법"을 사용하는 사례가 속속 발견되고 있다. 이번 시간에는 중국 QQ게임을 재패키징하고 내부에 2중 패키징 기법을 사용한 형태의 악성 어플리케이션을 살펴보고 해당 기법을 사용하는 악성 어플리케이션에 대한 대비책을 마련하는 시간을 가져보도록 하자.
2. 유포 경로 및 감염 증상
■ 정상 어플리케이션을 재패키징한 형태의 악성 어플리케이션
정상 어플리케이션에 악의적인 기능을 추가해 재패키징하는 형태의 악성 어플리케이션은 안드로이드 마켓, 블랙 마켓, 3rd party 마켓 등 넓은 유포 경로를 가질 수 있는 것이 특징이다.
해당 악성 어플리케이션은 설치 시 아래와 같은 권한 요구 화면을 보여주게 된다.
※ 코드에 포함된 권한 부분
- android:name="android.permission.ACCESS_NETWORK_STATE"
-> WiFi "ON" 체크 등 네트워크 통신에 관한 권한
- android:name="android.permission.INTERNET"
-> 외부 인터넷 사이트와 통신을 수행하기 위한 권한
- android:name="android.permission.VIBRATE"
-> 휴대폰 진동 제어 설정 권한
- android:name="android.permission.ACCESS_NETWORK_STATE"
-> WiFi "ON" 체크 등 네트워크 통신에 관한 권한
- android:name="android.permission.INTERNET"
-> 외부 인터넷 사이트와 통신을 수행하기 위한 권한
- android:name="android.permission.VIBRATE"
-> 휴대폰 진동 제어 설정 권한
위 그림과 같은 권한 요구 과정을 거친 후 설치를 완료하면 아래의 그림과 같은 "QQ Game"의 메인화면을 볼 수 있다.
해당 악성 어플리케이션은 설치 완료 후 아래와 같은 아이콘을 사용하고 있으며, 사용중인 아이콘은 정상 어플리케이션의 아이콘과 같다.
<QQ 게임 아이콘> |
설치가 완료되면 해당 어플리케이션은 내부의 코드를 이용해 추가적인 악성 APK 파일 설치를 위한 일련의 작업 과정을 거친다. 작업 과정에 사용될 추가적인 악성 APK 파일은 최초에 설치된 "QQ Game"의 APK 파일에 포함되어 있으며, 파일명 등은 아래의 그림을 참고 할 수 있도록 하자.
위 그림에는 두개의 적색 박스가 있으며, 각각의 파일은 APK, ELF(busybox는 압축된 형태의 파일) 파일이다. APK 파일의 경우 추가적인 악성 기능이 포함된 악성 어플리케이션이며, ELF 파일은 루팅 구문 구동을 위해 악용할 수 있는 리눅스 기반의 파일로 이해하면 쉬울 것이다.
위 설명에서 또 다른 악성 어플리케이션에 대한 설치를 위해 추가적인 작업 과정이 필요하며 위 그림은 그 과정에서 사용될 수 있는 파일이라 설명했다. 이제 해당 악성 어플리케이션에 대해 좀 더 세밀히 알아 보도록 하자.
설치된 악성 어플리케이션 내부에는 아래의 그림과 같이 리소스 부분을 따로 모아 선언해 놓은 부분이 있다.
위 그림의 "rageagainstthecage" 파일은 루팅을 위한 파일이며, 자세한 설명은 다음 부분에서 설명하도록 하겠다. 위 리소스를 참조하여 해당 악성 어플리케이션은 아래의 코드를 통해 "anserverb" 파일의 파일명을 "xxx.apk"로 바꾸게 된다.
또한, "xxx.apk" 파일의 설치를 위해 아래의 코드를 통해 앞전에서 미리 설명하였던 "추가적인 작업 과정"을 수행하게 된다. 여기까지 살펴보았다면 "추가적인 작업 과정"에 대해 어느정도 유추해 볼 수 있을것이다.
"추가적인 작업 과정"은 바로 루팅을 위한 작업을 말한다. 아래의 코드를 통해 루팅 관련 작업 및 "xxx.apk"파일에 대한 설치를 진행하므로 참고할 수 있도록 하자.
◆ 압축 해제, 루팅 관련 작업, 추가적인 APK 파일 설치 관련 코드
☞ 위 그림에서 "SMSApp.apk"파일과 "xxx.apk"파일로 파일명이 변경되는 "anserverb"파일은 자체 코드내의 리소스 값이 같다. 따라서 동일한 파일임을 알 수 있다.
물론 위 그림에서 설명한 루팅 관련 작업은 "안드로이드 SDK 버전이 2.2 이하 버전"일 경우에만 정상적으로 동작 할 수 있으니 이점 참고할 수 있도록 하자.
여기 까지 설명한 모든 부분이 모두 충족되었다면 "xxx.apk"파일이 자동으로 설치되겠지만 이 경우 2중 패키지 파일에 대한 설명 글을 통해 설명했다시피 권한 요구 관련 화면은 출력되지 못한다.
■ 악성 어플리케이션 내부에 포함된 또 다른 추가적인 악성 어플리케이션
아래의 그림은 추가적으로 설치되는 악성 어플리케이션에 대한 권한 요구 화면이니 참고할 수 있도록 하자.
※ 코드에 포함된 권한 부분
- android:name="android.permission.WRITE_SMS"
-> SMS 등의 메시지를 작성하기 위한 권한
- android:name="android.permission.RECEIVE_BOOT_COMPLETED"
-> 휴대폰 부팅 후 어플리케이션의 자동 실행을 위한 권한
- android:name="android.permission.VIBRATE"
-> 휴대폰 진동 제어 설정을 위한 권한
- android:name="android.permission.READ_SMS"
-> SMS 등의 메시지를 읽기 위한 권한
- android:name="android.permission.RECEIVE_SMS"
-> SMS 등의 메시지 수신을 받아오기 위한 권한
- android:name="android.permission.SEND_SMS"
-> SMS 등의 메시지 송신을 위한 권한
- android:name="android.permission.READ_PHONE_STATE"
-> 휴대폰 단말기 정보 획득을 위한 권한
- android:name="android.permission.DISABLE_KEYGUARD"
-> 휴대폰의 Lock 상태인 KEYGUARD를 Disable 하기 위한 권한
- android:name="android.permission.READ_CONTACTS"
-> 주소록 등을 읽기 위한 권한
- android:name="android.permission.WRITE_CONTACTS"
-> 주소록 등을 쓰기 위한 권한
- android:name="android.permission.INTERNET"
-> 외부 인터넷 사이트와 통신을 수행하기 위한 권한
- android:name="android.permission.ACCESS_NETWORK_STATE"
-> 네트워크 상태 접근을 위한 권한
- android:name="android.permission.CALL_PHONE"
-> 전화 걸기 등 통화 관련 제어를 위한 권한
- android:name="android.permission.WAKE_LOCK"
-> Device Power 설정을 위한 권한
- android:name="android.permission.RESTART_PACKAGES"
-> 패키지에 대한 종료/재시작 등을 위한 권한
- android:name="android.permission.WRITE_APN_SETTINGS"
-> 네트워크 연결 등에 필요한 APN 설정 권한
- android:name="android.permission.WRITE_SMS"
-> SMS 등의 메시지를 작성하기 위한 권한
- android:name="android.permission.RECEIVE_BOOT_COMPLETED"
-> 휴대폰 부팅 후 어플리케이션의 자동 실행을 위한 권한
- android:name="android.permission.VIBRATE"
-> 휴대폰 진동 제어 설정을 위한 권한
- android:name="android.permission.READ_SMS"
-> SMS 등의 메시지를 읽기 위한 권한
- android:name="android.permission.RECEIVE_SMS"
-> SMS 등의 메시지 수신을 받아오기 위한 권한
- android:name="android.permission.SEND_SMS"
-> SMS 등의 메시지 송신을 위한 권한
- android:name="android.permission.READ_PHONE_STATE"
-> 휴대폰 단말기 정보 획득을 위한 권한
- android:name="android.permission.DISABLE_KEYGUARD"
-> 휴대폰의 Lock 상태인 KEYGUARD를 Disable 하기 위한 권한
- android:name="android.permission.READ_CONTACTS"
-> 주소록 등을 읽기 위한 권한
- android:name="android.permission.WRITE_CONTACTS"
-> 주소록 등을 쓰기 위한 권한
- android:name="android.permission.INTERNET"
-> 외부 인터넷 사이트와 통신을 수행하기 위한 권한
- android:name="android.permission.ACCESS_NETWORK_STATE"
-> 네트워크 상태 접근을 위한 권한
- android:name="android.permission.CALL_PHONE"
-> 전화 걸기 등 통화 관련 제어를 위한 권한
- android:name="android.permission.WAKE_LOCK"
-> Device Power 설정을 위한 권한
- android:name="android.permission.RESTART_PACKAGES"
-> 패키지에 대한 종료/재시작 등을 위한 권한
- android:name="android.permission.WRITE_APN_SETTINGS"
-> 네트워크 연결 등에 필요한 APN 설정 권한
추가적인 악성 어플리케이션의 경우 설치가 완료된 후 아래의 코드 등을 통해 SMS 수집 및 송신, 주소록 등의 정보 탈취, 단말기 정보 탈취, 실행중인 어플리케이션에 대한 정보 획득 및 특정 어플리케이션에 대한 실행 방해 동작 등의 악성 동작을 할 수 있다.
클릭하실 경우 확대된 화면을 보실 수 있습니다.
위에서 설명한 해당 악성 어플리케이션은 설치 후 별도의 아이콘을 가지고 있지 않는다. 다만, "응용프로그램 관리" 부분을 살펴보면 아래의 그림과 같이 어느 정도 구별이 가능하니 참고할 수 있도록 하자.
3. 예방 조치 방법
해당 악성 어플리케이션의 경우 중국 사용자들을 대상으로 제작된 게임 어플리케이션이며, 국내에서는 아직 해당 어플리케이션 등으로 인한 피해 상황은 보고되지 않고 있다. 다만 스마트폰 어플리케이션의 특성상 국내에서도 이러한 해외 어플리케이션 설치가 자유로우며, 동일한 형태의 악성 어플리케이션 등장이 충분히 가능해 추가적인 피해 발생이 전무할 것이라고 단언할 수 없다. 또한, 이러한 재패키징 및 2중 패키징 기법을 사용한 악성 어플리케이션의 경우 사용자 몰래 스마트폰에 설치 등을 시도 할 수 있으므로 일반 사용자들은 아래의 "모바일 보안 관리 수칙"을 준수하는 등 스스로 관심과 주의를 기울이는 것이 안전한 스마트폰 사용을 위한 최선의 방법이라 할 수 있다.
※ 모바일 보안 관리 수칙
1. 신뢰할 수 있는 보안 업체에서 제공하는 모바일 백신을 최신 엔진 및 패턴 버전으로 업데이트하여 실시간 보안 감시 기능을 항상 "ON" 상태로 유지해 사용할 수 있도록 한다.
2. 어플리케이션 다운로드 시 항상 여러 사용자를 통해 검증된 어플리케이션을 선별적으로 다운로드 하는 습관을 가질 수 있도록 한다.
3. 중요한 정보 등의 경우 휴대폰에 저장해 두지 않는다.
1. 신뢰할 수 있는 보안 업체에서 제공하는 모바일 백신을 최신 엔진 및 패턴 버전으로 업데이트하여 실시간 보안 감시 기능을 항상 "ON" 상태로 유지해 사용할 수 있도록 한다.
2. 어플리케이션 다운로드 시 항상 여러 사용자를 통해 검증된 어플리케이션을 선별적으로 다운로드 하는 습관을 가질 수 있도록 한다.
3. 중요한 정보 등의 경우 휴대폰에 저장해 두지 않는다.
※ 잉카인터넷(시큐리티대응센터/대응팀)에서는 아래의 그림과 같이 모바일용 백신 "nProtect Mobile for Android" 를 통해 위와 같은 모바일용 악성 어플리케이션에 대한 진단/치료 기능을 제공하고 있으며, 다양한 보안 위협에 대비하기 위해 24시간 지속적인 대응체계를 유지하고 있다.
2011년 06월 06일 잉카인터넷 대응팀은 이외에도 약 8종의 새로운 안드로이드용 악성파일을 추가로 발견하여 업데이트를 완료한 상태이다.
'분석 정보 > 모바일 분석 정보' 카테고리의 다른 글
[주의]Angry Birds Rio Unlocker 파일로 위장한 안드로이드 악성파일 발견 (0) | 2011.06.13 |
---|---|
[주의]중국 PPXIU 게임으로 위장한 안드로이드용 악성 파일 발견 (0) | 2011.06.10 |
[주의]해외 금융 보안 제품으로 위장한 안드로이드용 악성 파일 발견 (0) | 2011.06.02 |
[주의]2중 패키징된 안드로이드용 악성 어플리케이션 등장 (1) | 2011.06.01 |
선정적 제목의 Android용 모바일 악성 어플리케이션 유포 주의! (0) | 2011.06.01 |