중국 보안 연구업체 ‘360 Mobile Security’에서 은폐기법(stealth technique)을 갖춘 안드로이드 부트킷(Bootkit) 악성프로그램 ‘Oldboot B’을 발견 ※ Stealth technique : 악성코드 실행 시 자신의 존재를 숨겨 백신이나 사용자의 발견 또는 제거를 어렵게 하는 기법
주요 내용
Oldboot.B의 특징 - 백그라운드에서 자동으로 악성 앱 설치 - 시스템 프로세스에 악성모듈 주입 - 악성 코드 앱 제거 방지 - 모바일 안티 바이러스 앱 제거 및 비활성화 - 구성파일을 이미지로 숨기는 스테가노그래피(steganography) 기술 사용
< 이미지로 구성 파일을 숨기는 스테가노그래피 기술 >
Oldboot.B의 감염 및 실행경로 - 안드로이드 장치가 Oldboot Trojan에 감염되면, 지속적으로 소켓을 리스닝하여 공격자의 C&C 서버에서 받은 명령을 실행함 ※ 소켓 : 네트워크의 연결도구이며 OS에 의해 제공되는 소프트웨어적 장치 ※ 리스닝 : 소켓을 서버에 연결요청을 받을 수 있도록 하는 함수 - 악성코드는 스테가노그래피를 통해 암호화된 문자열을 이루며, C&C 서버에서 다운받은 실행코드와 구성 파일을 포함하는 몇 가지 숨겨진 ELF 바이너리를 가짐 - 설치 후 Oldboot Trojan은 악성코드 실행으로 감염된 디바이스에, 사용자가 설치하지 않은 다른 악성 안드로이드 앱이나 게임을 설치함
Oldboot.B의 구조 및 감염경로
< Oldboot.B의 구조 >
- (boot_tst) 지속적으로 소켓 listen과 전송 명령을 실행하기 위해 SO파일과 JAR파일을 안드로이드 시스템의 system_server 프로세스로 원격 주입하는 기술 사용
< boot_tst 동작 과정 >
- (adb_server) 안드로이드 시스템의 pm script를 교체하여 악성코드 제거 방지
< 안드로이드 운영체제의 pm script 교체 >
- (meta_chk) 악성코드 구성파일은 업데이트 및 다운로드되어 백그라운드에 실행되며, 구성파일은 암호화되어 분석에 많은 시간 소요 - 악성코드의 발견을 막기 위해 meta_chk는 파일 시스템에서 삭제되고, 안드로이드 바이러스 백신프로그램은 Oldboot Trojan을 찾아내거나 삭제할 수 없게 됨
< meta_chk 동작 프로세스 >
- (agentsysline) C++프로그래밍 언어로 작성된 모듈이 C&C 서버로부터 명령을 수신하기 위하여 백그라운드에서 daemon프로그램으로 실행 ※ daemon: 주기적인 서비스 요청을 처리하기 위해 계속 실행되는 프로그램 - 이는 바이러스 백신 소프트웨어의 실행을 막고 특정 파일을 삭제하며 네트워크 연결을 막는 등의 기능을 수행