1. 개 요


얼마전 해외 유명 보안 솔루션 제공 업체인 Trusteer에서 제공중인 모듈로 위장한 악성 어플리케이션이 출현한 바 있다. 최근에 발견되고 있는 모바일 악성 어플리케이션은 유명 업체 등에서 제공하는 어플리케이션으로 위장하는 사례가 급증하고 있으며, 이러한 가운데 유명 Anti-Virus 업체인 Kaspersky에서 제공중인 어플리케이션으로 위장한 악성 어플리케이션이 등장해 이슈가 되고 있다. 이번에 발견된 악성 어플리케이션 역시 기능적인 면에서는 기타 다른 악성 어플리케이션과 마찬가지로 특정 정보에 대한 수집 등의 행위를 수행할 수 있게 구성되어 있다.

[주의]해외 금융 보안 제품으로 위장한 안드로이드용 악성 파일 발견

http://erteam.nprotect.com/164
  

2. 유포 경로 및 감염 증상

이러한 위장형 악성 어플리케이션의 경우 각종 블랙마켓, 3rd party 마켓 등을 중심으로 유포가 이루어질 수 있다. 또한, 해당 악성 어플리케이션의 경우 정상 어플리케이션으로 위장한 형태이기 때문에 일반 사용자가 악성 유/무를 직접 판별하기에는 어려움이 크다는 것이 특징이다.

아래의 분석 설명을 통해 해당 악성 어플리케이션의 감염 후 상세 동작을 살펴보도록 하겠다.

■ 설치 시 증상, 실행 시 감염 증상

해당 악성 어플리케이션에 대한 설치를 진행하면 아래의 그림과 같은 권한 요구 화면을 보여주게 된다.

 

 
※ 전체 권한 설명

android:name="android.permission.BROADCAST_STICKY"

android:name="android.permission.SYSTEM_ALERT_WINDOW"   

android:name="android.permission.INTERNAL_SYSTEM_WINDOW"

android:name="android.permission.ADD_SYSTEM_SERVICE"    

android:name="android.permission.VIBRATE"               

android:name="android.permission.REORDER_TASKS"         

android:name="android.permission.CHANGE_CONFIGURATION"  

android:name="android.permission.WAKE_LOCK"    
         
android:name="android.permission.STATUS_BAR"     
       
android:name="android.permission.ACCESS_WIFI_STATE"     

android:name="android.permission.READ_PHONE_STATE"      

android:name="android.permission.MODIFY_PHONE_STATE"    

android:name="android.permission.DEVICE_POWER"          

android:name="android.permission.DISABLE_KEYGUARD"      

android:name="android.permission.INTERNET"              

android:name="android.permission.WRITE_APN_SETTINGS"    

android:name="android.permission.BROADCAST_WAP_PUSH"    

android:name="android.permission.CHANGE_WIFI_STATE"     

android:name="android.permission.ACCESS_NETWORK_STATE"  

android:name="android.permission.CHANGE_NETWORK_STATE"  

android:name="android.permission.RECEIVE_BOOT_COMPLETED"

android:name="android.permission.READ_SMS"              

android:name="android.permission.RECEIVE_SMS"           

android:name="android.permission.BROADCAST_SMS"         

android:name="android.permission.WRITE_SETTINGS"  
      
android:name="android.permission.ACCESS_WIFI_STATE"     

android:name="android.permission.UPDATE_DEVICE_STATS"   

android:name="android.permission.CHANGE_WIFI_STATE"     

android:name="android.permission.WAKE_LOCK"             

android:name="android.permission.READ_PHONE_STATE"      

android:name="android.permission.WRITE_SECURE"          

android:name="android.permission.WRITE_SECURE_SETTINGS" 

android:name="android.permission.WRITE_EXTERNAL_STORAGE"

android:name="android.permission.PROCESS_OUTGOING_CALLS"

※ 현재 위에서 나열된 권한들은 해당 악성 어플리케이션에서 모두 사용되지 못하고 있다. 이유는 아래의 상세 분석 파트를 통해 살펴볼 수 있다.


또한, 해당 악성 어플리케이션은 위장형 악성 어플리케이션의 특성상 설치 후 정상 Kaspersky 어플리케이션과 유사한 아이콘을 사용하고 있음을 아래의 그림을 통해 확인 할 수 있다.


해당 악성 어플리케이션은 정상 어플리케이션의 아이콘과 매우 유사한 외형의 아이콘을 사용하고 있으며, 아이콘 및 어플리케이션 명 등으로도 육안상 정상/악성 여부 확인이 가능하다.

악성 어플리케이션에 대한 설치 후 위 그림과 같은 아이콘을 선택하여 실행하게 되면 아래의 그림과 같이 활성화 코드가 출력되며, "OK" 버튼을 선택하면 추가적인 증상 없이 해당 어플리케이션은 바로 종료된다.

 

  

■ 상세 분석

악성 어플리케이션이 실행되면 우선 아래의 코드에 따라 해당 스마트폰의 IMEI 정보를 획득하여 일부 정보를 활성화 코드로 위장해 화면에 뿌려주게 된다.


또한, 아래의 일부 코드를 통해 IMEI 뿐만 아니라 IMSI, 전화번호 목록 등의 정보도 수집하게 되며, 미리 설정된 C&C 서버로 해당 정보들을 전송하게 된다.

그림을 클릭하시면 확대된 화면을 보실 수 있습니다.


다만, 위 그림에서 확인할 수 있듯이 C&C 서버로 추정되는 곳의 URL이 로컬영역으로 설정되어 있어 해당 악성 어플리케이션이 수집한 정보들은 외부로 반출될 수 없다. 하지만 추후에 해당 악성 어플리케이션과 연동되어 동작할 수 있는 어플리케이션이 출현하거나 해당 악성 어플리케이션이 완벽한 동작이 가능하도록 재패키징 되어 유포될 경우 해당 악성 어플리케이션에서 수집한 정보들이 외부로 쉽게 전송될 수 있으므로 지속적인 관제가 필요하다.

이외에도 해당 어플리케이션은 아래의 코드와 같이 감염된 스마트폰의 통화 상태 등의 Action을 확인하여 SMS 정보를 수집 하는 기능도 수행할 수 있다.

  

3. 예방 조치 방법

현재 해당 악성 어플리케이션은 내부에 존재하는 악성 코드가 정상적으로 동작할 수 없는 형태이다. 악성 동작을 할 수 있는 메소드가 일부만 호출되어 모두 사용되지 못하고 있기 때문이다. 

다만, 상세 분석 글에서 설명하였듯이 추후 해당 악성 어플리케이션과 함께 연동하여 동작될 수 있는 다른 악성 어플리케이션이 추가적으로 제작되거나 해당 악성 어플리케이션이 완벽히 동작이 가능하도록 재패키징 될 수 있으므로 지속적인 관제가 필요한 상황이다.

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

※ 스마트폰 보안 관리 수칙

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

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

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

4. 스마트폰을 통해 의심스럽거나 알려지지 않은 사이트 방문을 자제한다.

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

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

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

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

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


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

■ 진단 현황

- Trojan-Spy/Android.FakeKav.A




저작자 표시
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by nProtect
1. 개 요


최근 안드로이드에 대한 보안 위협이 연일 이슈인 가운데 정상 어플리케이션에 악성 코드를 포함해 재패키징한 형태의 악성 어플리케이션이 지속적으로 출현하고 있어 사용자들의 각별한 주의가 요망되고 있다. 해당 악성 어플리케이션은 특정 정상 게임 어플리케이션에 악성 코드를 포함 후 재패키징하여 다양한 정보 등을 탈취해 외부로 유출할 수 있는 만큼 안드로이드 기반의 OS가 탑재된 스마트폰 사용자들은 이번 글을 참고하여 최근 이슈가 되고 있는 스마트폰 보안 위협에 대해 좀 더 관심과 주의를 기울일 수 있도록 하자.
 

[[자료]Hello Kitty 바탕화면 어플로 위장된 안드로이드 악성 파일]
http://erteam.nprotect.com/171

[주의] 중국 안드로이드 게임으로 위장한 악성 어플 발견
http://erteam.nprotect.com/165

[주의]중국 안드로이드 QQ 게임으로 위장한 악성 어플 발견
http://erteam.nprotect.com/165

2. 유포 경로 및 감염 증상

해당 악성 어플리케이션은 "FastRacing" 이라는 안드로이드 게임에 악성 코드를 포함해 재패키징한 형태이며, SDK 1.6 버전 이상을 최소 동작 요구 조건으로 가지고 있다.

설치되면 크게 아래와 같은 악의적인 동작을 수행 할 수 있다.

※ 수행 가능한 악성 동작

 - 단말기 정보 수집
 - 발신/수신 통화 목록 수집
 - SMS 관련 정보 수집(읽기 등)
 - 수집된 정보가 저장된 .txt형태의 로그 파일을 외부 사이트에 전송 시도
 - SMS 송신
 - 사용자 모르게 통화 시도
 - 어플리케이션 설치/삭제
 - 봇 기능 수행
 - 위치 정보 접근


위와 같은 악성 어플리케이션의 경우 블랙마켓, 3rd pary 마켓 등을 중심으로 유포가 이루어질 수 있으며, 설치 시 아래와 같은 권한 요구 화면을 보여주게 된다.


※ AndroidManifest.xml에 포함된 권한 설명

- android:name="android.permission.INTERNET"
 -> 외부 인터넷 사이트와 통신을 수행하기 위한 권한
- android:name="android.permission.VIBRATE"
 -> 휴대폰 진동 제어 관련 권한
- android:name="android.permission.ACCESS_NETWORK_STATE"
 -> 네트워크 통신에 대한 권한
- android:name="android.permission.READ_PHONE_STATE"
 -> 스마트폰 단말기 정보 획득을 위한 권한
- android:name="com.android.vending.BILLING"
 -> 폰빌(휴대폰 결제 등)과 관련한 권한
- android:name="android.permission.WRITE_EXTERNAL_STORAGE"
 -> SDcard 등에 정보 저장을 위한 권한
- android:name="android.permission.ACCESS_COARSE_LOCATION"
 -> 개략적인 위치정보(Cell-ID, WiFi)에 접근을 허용하기 위한 권한
- android:name="android.permission.ACCESS_FINE_LOCATION"
 -> 상세한 위치정보(GPS)에 접근을 허용하기 위한 권한
- android:name="android.permission.RECEIVE_SMS"
 -> SMS 수신 관련 권한
- android:name="android.permission.SEND_SMS"
 -> SMS 송신 관련 권한
- android:name="android.permission.READ_SMS"
 -> SMS 읽기 관련 권한
- android:name="android.permission.CALL_PHONE"
 -> 통화 관련 권한
- android:name="android.permission.PROCESS_OUTGOING_CALLS"
 -> 발신 접근 권한
- android:name="android.permission.DELETE_PACKAGES"
 -> 어플리케이션 삭제 관련 권한
- android:name="android.permission.INSTALL_PACKAGES"
 -> 어플리케이션 설치 관련 권한
- android:name="android.permission.RECEIVE_BOOT_COMPLETED"
 -> 재부팅 후 자동 실행 등 백그라운드 동작을 위한 권한


설치가 완료되면 아래의 그림과 같이 정상적으로 게임이 실행되어 일반 사용자들은 자신들의 스마트폰에 대한 악성 어플리케이션 감염 여부를 육안상으로 판별하기 어렵다.

 

■ 백그라운드 상태에서 수행되는 악성 동작 정밀 분석

설치가 완료됨과 함께 해당 악성 어플리케이션은 아래의 설명들과 같이 다양한 악성 동작을 수행하게 된다.

▶ 단말기 정보 수집

아래의 그림은 주요 키값 등의 조건에 따라  스마트폰 단말기의 IMEI, IMSI 등의 정보를 수집할 수 있는 코드의 일부분이다.


▶ 발신/수신 통화 목록 수집

아래의 그림은 악성 어플리케이션이 스마트폰 내의 발신/수신된 번호를 수집하는 과정을 보여주는 코드의 일부분이다.


위 그림에서 빨간색 선 부분의 권한을 기반으로 발신/수신 번호를 수집하여 "zjphonecall.txt" 파일에 모두 저장한다. 수신 번호의 경우 관련된 다른 Bean 클래스 단위와의 조건 여하에 따라 통화 목록을 저장하게 된다.

▶ SMS 관련 정보 수집

아래의 그림은 SMS 정보 수집과 관련한 코드의 일부분 이다.


SMS 발신자 번호, 수신 후 표시 번호, 본문 내용 등이 모두 수집되어 "zjsms.txt"파일에 저장된다.

▶ 수집된 정보가 저장된 .txt 형태의 로그 파일을 외부 사이트에 전송

아래의 그림은 수집된 SMS, 통화목록 등의 정보가 저장된 파일을 특정 사이트로 전송하기 위한 코드의 일부분 이다.

 

그림을 클릭하시면 확대된 화면을 보실 수 있습니다.


왼쪽 상단의 그림에서 빨간색 박스 부분은 수집된 정보가 저장된 파일이 존재하는 절대 경로이며, 파란색 박스 부분은 수집된 정보가 저장된 파일이 업로드될 URL 경로 이다. 해당 경로는 각 레퍼런스 값들이 합쳐져 생성된다.

▶ SMS 송신

아래의 그림은 수집된 SMS 정보들을 백그라운드 상태에서 송신하기 위한 코드의 일부분 이다.


▶ 사용자 모르게 통화 시도

아래의 그림은 악성 어플리케이션이 사용자 몰래 통화를 시도하는 부분과 관련한 코드의 일부분 이다.


위 그림의 파란색 박스 부분에서 사용자 몰래 통화를 시도하기 위한 레퍼런스를 참조 후 빨간색 박스 부분을 통해 통화 관련 기능을 구현하고 있다.

▶ 어플리케이션 삭제/설치

아래의 그림은 특정 어플리케이션에 대한 삭제 및 설치를 진행할 수 있는 코드의 일부분 이다.


특정 어플리케이션에 대한 삭제 및 설치를 진행함에 있어 기존의 악성 어플리케이션들과 다르게 별도의 루팅 기능이 존재하지 않는 것이 특징이다. 이부분은 내부에 로그 파일을 생성하는 부분도 마찬가지 이다.

▶ 봇 기능 수행

봇 기능은 DDoS 당시 많이 알려진 좀비 PC 개념을 생각하면 이해하기 쉽다. 명령을 내릴 수 있는 C&C(Command and Control)서버로 부터 특정 명령을 전달받아 해당 명령을 실행하는 것을 의미하는데 해당 악성 어플리케이션은 Receiver로 등록되는 Bean 객체가  BroadcastReceiver 상속 받아 봇 기능을 수행하게 된다. 이때,  BroadcastReceiver를 상속받아 수행하는 세부 기능들이 있는데 바로 위에서 설명한 "수집된 모든 정보를 로그로 저장해 외부 사이트에 전송, SMS 송신, 사용자 모르게 통화 시도, 어플리케이션 설치/삭제" 4가지의 악성 기능들이 그것이다.

또한, 해당 악성 기능들은 사용자 몰래 동작하기 위해 Service 클래스를 상속받아 동작하게 된다.

▶ 위치 정보 접근

아래의 그림은 위치 정보 접근과 관련한 코드의 일부분 이다.


위 그림의 빨간색 줄과 같은 권한과 클래스 등을 이용해 상세 위치 정보에 대한 접근이 가능하며, 봇 기능과 연계하여 악용될 가능성이 있다.

3. 예방 조치 방법

위와 같이 재패키징 형태를 취하는 악성 어플리케이션의 경우 일반 사용자들은 악성 여부를 육안 상으로 판별하기가 매우 어려우며, 향후 지속적으로 출현해 보안 위협으로 작용할 가능성이 높다. 이러한 악성 어플리케이션으로 부터 안전한 스마트폰 사용을 위해서는 아래와 같은 "스마트폰 보안 관리 수칙"을 준수하는 등 사용자 스스로의 관심과 주의가 무엇보다 중요하다고 할 수 있다.

※ 스마트폰 보안 관리 수칙

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

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

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

4. 스마트폰을 통해 의심스럽거나 알려지지 않은 사이트 방문을 자제한다.

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

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

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

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

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

※ 잉카인터넷(시큐리티대응센터/대응팀)에서는 24시간 지속적인 대응체계 가동 및 "nProtect Mobile for Android" 를 통해 다양한 모바일 보안 위협에 대응하고 있다.



저작자 표시
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by nProtect