Hacking Team RCSAndroid Spying Tool 경계 경보; 기기 루팅을 통한 침입

게시일: 2015-07-21 l 작성자: Veo Zhang (Mobile Threats Analyst)

iOS 기기들이 해킹팀(Hacking Team)의 스파이웨어 위험에 노출되어 있다는 기사에 이어 이 문제는 이제 안드로이드 환경으로 확대되고 있습니다. 우리는 유출된 파일에 해킹팀의 오픈소스 멀웨어 스위트인 RCSAndroid(Remote Control System Android)용 코드가 포함되어 있으며 표적 감시를 위한 도구로써 판매되었다는 사실을 확인하였습니다. (연구원들은 이 스위트를 2014년 초에 확인하였습니다.)

RCSAndroid 코드는 지금까지 악용된 것들 중 가장 전문적이고 정교한 안드로이드 멀웨어 중 하나로 평가됩니다. 이 코드가 유출되면서 사이버범죄자들은 그들의 감시 활동을 강화할 수 있는 새롭고 강력한 리소스를 갖추게 되었습니다. 유출된 코드를 통해 RCSAndroid 앱은 다음과 같은 활동들을 통해 표적에 대한 스파이 활동을 할 수 있는 것으로 나타났습니다.

  • “스크린캡” 명령과 프레임 버퍼 다이렉트 리딩을 이용하여 스크린샷을 수집합니다.
  • 클립보드 내용을 모니터링합니다.
  • Skype, Facebook, Twitter, Google, WhatsApp, Mail 및 LinkedIn을 포함하여 와이파이 네트워크와 온라인 계정에 대한 암호를 수집합니다.
  • 마이크로폰을 이용하여 녹음합니다.
  • SMS, MMS 및 Gmail 메시지를 수집합니다.
  • 위치를 기록합니다.
  • 기기 정보를 수집합니다.
  • 전방 및 후방 카메라를 이용하여 사진을 캡처합니다.
  • Facebook Messenger, WhatsApp, Skype, Viber, Line, WeChat, Hangouts, Telegram 및 BlackBerry Messenger를 포함한 IM 계정의 연락처를 수집하고 메시지를 디코딩합니다.
  • “미디어서버” 시스템 서비스에 침입하여 네트워크나 앱의 실시간 음성 통화를 수집합니다.

RCSAndroid의 행적

우리는 분석을 통해 이 RCSAndroid (AndroidOS_RCSAgent.HRX)가 2012년부터 존재해왔음을 확인하였습니다. 구성 파일 내에서 이들의 과거 활용 사례를 확인하였습니다:

  • 미국에 있는 C&C 서버를 사용하도록 설정되어 있었지만 서버는 호스트 서비스 공급자로부터 구입된 것이며 지금은 공급이 중단되었습니다.

그림1. 구성 파일에 들어있는 C&C 호스트

  • 체코 번호에서 전송된 SMS를 통해 활성화되도록 설정되어 있었습니다. 공격자들은 에이전트를 활성화하고 특정 행동을 개시하도록 지시하는 메시지가 포함된 SMS를 전송할 수 있습니다. 이 외에도 수집할 자료의 종류를 정의할 수도 있습니다.

그림2. 구성 파일에 들어있는 체코 전화번호

  • 유출된 이메일을 토대로 볼 때 올림픽 대회의 주요 IT 파트너를 포함하여 여러 체코 기업들이 해킹팀(Hacking team)과 제휴 관계를 가지고 있는 것으로 보입니다.

그림3. 체코 고객을 위한 업그레이드된 지원

클러스터 폭탄 공격

RCSAndroid는 여러 개의 위험한 익스플로잇을 배포하고 다양한 기법을 이용하여 손쉽게 안드로이드 기기들을 감염시킨다는 점에서 클러스터 폭탄과도 같은 위협입니다. 코드를 분석하면서 우리는 전체 시스템이 다음과 같은4개의 필수 구성 요소로 이루어져 있다는 사실을 파악하였습니다.

  1. 침입 솔루션, SMS/이메일 또는 합법적인 앱을 통해 기기에 침입.
  2. 하위 레벨 네이티브 코드, 안드로이드 보안 프레임워크를 능가하는 고급 익스플로잇과 스파이 도구
  3. 상위 레벨 Java 에이전트 – 앱의 악성 APK
  4. 명령 및 제어(C&C) 서버, 원격으로 악의적 명령을 전송/수신하는데 사용됨

공격자들은 표적들이 RCSAndroid를 다운로드받도록 하기 위해 두 가지 방법을 사용합니다.

첫 번째 방법은 SMS이나 이메일을 통해 특수 제작된 URL을 표적에게 전송하는 것입니다. 이 URL은 안드로이드 버전 4.0 Ice Cream Sandwich부터 4.3 Jelly Bean까지의 기본 브라우저의 임의 메모리 읽기(CVE-2012-2825)와 힙 버퍼 오버플로(CVE-2012-2871) 취약점을 공략하는 익스플로잇을 실행할 것이며 이를 통해 다른 로컬 권한 상승 익스플로잇을 실행할 수 있습니다. 루트 권한을 얻게 되면 셸 백도어와 악성 RCS 안드로이드 에이전트 APK 파일이 설치됩니다.

그림4. 유출된 메일의 고객들을 대상으로 한 원격 익스플로잇 데모

두 번째 방법은 Google Play를 우회하도록 설계된 ANDROIDOS_HTBENEWS.A와 같은 잠행적 백도어 앱을 사용하는 것입니다.

ANDROIDOS_HTBENEWS.A 와 첫 번째 방법에서 언급한 악성 APK의 역할은 안드로이드 기기의 로컬 권한 상승 취약점을 악용하는 것입니다. 해킹팀은 공격에 CVE-2014-3153과 CVE-2013-6282이 모두 사용된다는 점을 알고 있었습니다. 이 익스플로잇은 기기를 루팅하고 셸 백도어를 설치할 것입니다.

그림5. 셸 백도어의 명령 목록

그런 다음 셸 백도어는 RCSAndroid 에이전트를 설치합니다. 이 에이전트는 Evidence Collector와 Event Action Trigger라는 두 개의 핵심 모듈을 가지고 있습니다.

  • Evidence Collector 모듈은 상기에 서술된 스파이 활동을 담당합니다. 그 중에서도 가장 눈에 띄는 활동은 “미디어서버” 시스템 서비스에 침입하여 실시간으로 음성 통화를 수집하는 것입니다. 이 모듈의 기본 개념은 미디어서버에서 음성 통화 프로세스를 가로채는 것입니다.
    • 음성 통화 재생 프로세스는 다음과 같습니다. 미디어서버는 먼저 새로운 고유 트랙을 만들고 트랙을 재생시키며 모든 오디오 버퍼를 반복 재생한 다음 재생을 중단합니다. 원시 웨이브 오디오 버퍼 프레임이 getNextBuffer() 함수에 삽입될 수 있습니다. 오픈소스 Android Dynamic Binary Instrumentation Toolkit과 루트 권한의 도움으로 모든 함수 실행을 가로챌 수 있습니다.

그림6. 가로챌 음성 통화 재생 순서

  • Event Action Trigger 모듈은 특정 이벤트를 기반으로 악의적 행동을 개시합니다. 이벤트란 시간, 충전 또는 배터리 상태, 위치, 연결성, 실행 앱, 집중 사용 앱, SIM 카드 상태, 키워크가 포함된 수신 SMS 그리고 화면 켜짐 등이 될 수 있습니다.
    • 구성 패턴에 따르면, 이 행동들은 특성 이벤트에 등록되어 있습니다:
      1. 구성 데이터 동기화, 모듈 업그레이드 및 새로운 페이로드 다운로드(이는 AES/CBC/PKCS5Padding 알고리즘으로 암호화된 전송 프로토콜 ZProtocol을 이용하여 C&C 서버와 통신합니다.)
      2. 수집한 자료를 업로드하고 제거합니다.
      3. 잠금 암호를 재설정하여 기기를 파괴합니다.
      4. 셸 명령을 실행합니다.
      5. 정의된 내용이나 위치가 포함된 SMS를 전송합니다.
      6. 네트워크를 비활성화합니다.
      7. 루트를 비활성화합니다.
      8. 봇을 설치 해제합니다.

기기 메모리에서 에이전트 앱이 탐지되거나 삭제되는 것을 막기 위해 RCSAndroid 스위트 역시 에뮬레이터나 샌드박스를 탐지하고 DexGuard를 이용하여 코드를 난독화하며 ELF 스트링 난독기를 사용하고 OOM(out-of-memory) 값을 조정합니다. 흥미로운 점은, 안드로이드 패키지 관리자의 데이터를 조작하여 권한과 구성요소를 추가 및 삭제하고 앱 아이콘을 숨기는 앱 기능은 사용하지 않는 다는 것입니다.

권장 사항

안드로이드와 같이 널리 사용되는 모바일 플랫폼은 조직적 또는 상업화된 감시 활동을 위한 표적이 되기 쉽습니다. 공격자들은 멀웨어 익스플로잇을 통해 기기를 루팅하는 방식이 기기를 제어하고 기기의 정보를 수집하는 가장 효과적인 방법임을 알고 있습니다. 루트가 손상된 기기는 보안을 기대할 수 없습니다.

이러한 위협들로부터 기기를 보호하기 위한 모범 사례를 기억하십시오:

  • 알 수 없는 출처의 앱 설치 기능을 비활성화합니다.
  • 익스플로잇을 차단하려면 안드로이드 기기를 최신 버전으로 업데이트합니다. RCSAndroid의 경우 버전 4.4.4 KitKit 만 감염시킬 수 있습니다. 하지만 유출된 고객 문의 사항 메일을 토대로 볼 때, 해킹팀(Hacking Team)은 안드로이드 5.0 Lollipop에 대한 익스플로잇을 개발 중에 있었습니다.
  • 모바일 보안 솔루션을 설치하여 위협으로부터 기기를 보호합니다.

유출된 RCSAndroid 코드는 이제 상용화된 무기입니다. 모바일 사용자들은 이러한 사실을 인지해야만 하며 감시 신호에 주의해야 합니다. 이러한 신호는 갑자기 기기가 재부팅되거나 모르는 앱이 설치되어 있거나 인스턴트 메시지 앱이 갑자기 먹통이 되거나 하는 이례적인 작동의 형태를 보일 수 있습니다.

기기가 감염된 경우 이 백도어는 루트 권한 없이는 삭제할 수 없습니다. 사용자는 기기 제조업체를 통해 펌웨어 플래싱 지원을 받을 수 있습니다.

트렌드마이크로는 이러한 공격들을 차단하기 위해 모바일 시큐리티를 통해 안드로이드 모바일 기기들에게 보안 기능을 제공하고 있습니다. 모바일 데이터를 안전하게 보호하기 위해 ‘지금 바로 해야 할 7가지 안드로이드 보안 지침’을 살펴보십시오.

[업데이트] 2015년 7월23일 오전 1:00

본 위협에 대해 소개한 이전 보고서에 링크를 추가하였습니다.

원문: Hacking Team RCSAndroid Spying Tool Listens to Calls; Roots Devices to Get In