울지않는벌새 : Security, Movie & Society

파밍(Pharming) 사이트에서 유포하는 안드로이드 악성앱 주의 (2014.5.1)

벌새::Analysis

금융 정보를 탈취할 목적으로 제작된 악성코드는 호스트 파일 변조, 메모리 해킹 이외에도 최근에는 DNS 서버 주소를 특정 IP 주소로 변경하여 파밍(Pharming) 웹 사이트로 접속을 유도하는 사례까지 발견되고 있습니다.

 

  DNS 서버 주소 변경을 통한 파밍(Pharming) 사이트 연결 주의 (2014.4.29)

 

2014년 4월 28일에 확인한 DNS 서버 주소를 변경한 파밍(Pharming) 사이트를 확인하던 중 안드로이드(Android) 스마트폰을 대상으로 한 악성앱이 유포되는 부분에 대해 2종의 사례를 통해 위험성에 대해 살펴보도록 하겠습니다.

DNS 서버 주소 변경을 통해 파밍(Pharming) 사이트에 접속시 이니텍(INITech) ActiveX로 위장한 백도어(Backdoor) 설치 목적의 악성코드 유포 서버를 확인하던 중 안드로이드(Android) 스마트폰을 표적으로 한 apple.apk 파일<SHA-1 : c8616dde798a6082bd246492851d482af06adf57 - AhnLab V3 : Android-Malicious/Litch (VT : 19/48)>이 등록되어 있는 부분을 발견하였습니다.

 

당시에는 해당 악성앱을 어떤 유포 방식으로 사용자로 하여금 설치하는지에 대해서는 확인하지 못하였습니다.

그러던 중 2014년 4월 30일 당시 파밍(Pharming) 사이트로 이용되던 가짜 국민은행 웹 사이트 접속시 "걱정없는 스마트폰 인증" 창을 생성하여 QR코드에 등록된 앱을 다운로드하도록 하는 부분을 발견하였습니다.

QR코드 스캐너를 이용하여 제공되는 앱에 접근을 해보면 Dropbox에 업로드 되어 있는 qrcode.apk 파일<SHA-1 : 178d65c9bbd56493bcb0d1e73ab2308114dc876a - avast! : Android:Androrat-K [Trj] (VT : 24/52)>을 다운로드 및 설치하도록 유도하는 것을 확인할 수 있었습니다.

 

이상과 같이 수집된 2종의 악성앱은 유사성이 매우 강한 변종으로 다음과 같은 동작을 수행할 수 있습니다.

  • android.permission.SEND_SMS :: SMS 메시지 보내기
  • android.permission.RECEIVE_SMS :: SMS 메시지 받기
  • android.permission.READ_SMS :: SMS 메시지 읽기
  • android.permission.READ_EXTERNAL_STORAGE :: 외부 저장 매체 읽기
  • android.permission.WRITE_EXTERNAL_STORAGE :: 외부 저장 매체 쓰기
  • android.permission.RECEIVE_BOOT_COMPLETED :: 부팅할 때 자동 시작
  • android.permission.INTERNET :: 인터넷 액세스
  • android.permission.ACCESS_NETWORK_STATE :: 네트워크 상태 보기
  • android.permission.VIBRATE :: 진동 제어
  • com.android.alarm.permission.SET_ALARM :: 알람 시계에 알람 설정
  • android.permission.BIND_DEVICE_ADMIN :: 기기 관리자 활성화
  • android.permission.DEVICE_POWER :: 전원 관리를 위한 Low-Level 접근 허용
  • android.permission.WAKE_LOCK :: 절전 모드에서 프로세스 유지를 위한 전원 관리 WakeLock 허용
  • android.permission.CALL_PHONE :: 전화 걸기
  • android.permission.READ_PHONE_STATE :: 휴대전화 상태 및 ID 읽기
  • android.permission.READ_CONTACTS :: 연락처 데이터 읽기

"System Service"라는 공통된 애플리케이션 이름으로 등록된 악성앱은 상당히 많은 퍼미션을 요구하며, "android.permission.RECEIVE_BOOT_COMPLETED" 권한을 통해 시스템 시작시 자동 실행되도록 구성되어 있습니다.

설치가 완료된 악성앱은 최초 "System Service"라는 아이콘을 표시하고 있으며 사용자가 앱을 실행할 경우 다음과 같은 동작을 수행합니다.

실행된 "System Service" 악성앱은 "android.permission.BIND_DEVICE_ADMIN" 권한을 통해 "기기 관리자를 활성화하시겠습니까?" 메시지 창을 생성하여 암호화된 데이터 전송을 위해 반드시 기기 관리자를 활성화하도록 유도하고 있습니다.

사용자가 의심없이 "기기 관리자" 메뉴에서 "System Service"를 허용할 경우에는 애플리케이션에 표시되어 있던 "System Service" 아이콘은 사라지며 백그라운드 방식으로 시스템 부팅시부터 자동 동작하도록 할 수 있습니다.

  • apple.apk 패키지 : com.google.service2gid
  • qrcode.apk 패키지 : com.gcom.goglole

실행된 악성앱은 애플리케이션 메뉴에 등록된 "System Service" 프로세스를 통해 확인할 수는 있지만 GUI 자체가 존재하지 않기 때문에 앱을 실행하여도 모양을 볼 수 없습니다.

만약 사용자가 실행 중인 "Service Service" 앱의 동작을 중지하기 위해 등록된 "MainService" 서비스를 중지하더라도 기기 관리자에 등록되어 있는 경우 자동으로 재실행됩니다.

또한 사용자가 기기 관리자에 등록된 "System Service"를 비활성화 처리를 한 경우에는 스마트폰 사용시 지속적으로 "System Service"를 기기 관리자에 활성화하려는 메시지 창으로 인하여 정상적인 기기 사용이 불가능할 수 있습니다.

 

이렇게 스마트폰 감염에 성공한 환경에서는 악의적인 SMS 메신지 수신을 통한 악성앱 추가 설치 유도 및 수신되는 SMS 메시지를 가로채어 개인정보 유출이 발생할 수 있으며, 기기에 저장된 주소록 정보가 유출되어 주변인에게도 유사한 공격의 통로로 악용될 수 있습니다.

 

특히 기기 관리자에 등록한 경우 사용자에 의한 "System Service" 악성앱 삭제가 불가능하므로 대부분의 정상적인 앱을 설치할 경우 기기 관리자 권한을 요구하는 경우는 거의 없으므로 함부로 권한을 주는 일이 없도록 하시기 바랍니다.

만약 "System Service" 악성앱을 설치는 하였지만 기기 관리자 권한은 허용하지 않은 경우에는 앱 정보에 등록된 "System Service" 앱을 찾아 제거를 하시면 되며, 반드시 모바일 백신의 실시간 검사 기능을 활성화하시고 최신 업데이트를 통해 안드로이드(Android) 스마트폰을 보호하시기 바랍니다.