[논문 리뷰] Improving Dynamic Analysis of Android Apps Using Hybrid Test Input Generation
이 논문은 실제 기기에서 Android 앱의 동적 분석을 향상시키기 위해 Android Monkey의 무작위 입력 생성 방식과 DroidBot의 상태 기반 테스팅 방식을 융합한 하이브리드 테스트 입력 생성 프레임워크를 제안한다. 이 방법은 코드 커버리지와 동적 기능 추출(특히 API 호출 및 인텐트)을 크게 향상시키며, 무작위 또는 상태 기반 방법을 별도로 사용할 때보다 악성 행동을 탐지하는 데서 뛰어난 성능을 보인다.
The Android OS has become the most popular mobile operating system leading to a significant increase in the spread of Android malware. Consequently, several static and dynamic analysis systems have been developed to detect Android malware. With dynamic analysis, efficient test input generation is needed in order to trigger the potential run-time malicious behaviours. Most existing dynamic analysis systems employ random-based input generation methods usually built using the Android Monkey tool. Random-based input generation has several shortcomings including limited code coverage, which motivates us to explore combining it with a state-based method in order to improve efficiency. Hence, in this paper, we present a novel hybrid test input generation approach designed to improve dynamic analysis on real devices. We implemented the hybrid system by integrating a random based tool (Monkey) with a state based tool (DroidBot) in order to improve code coverage and potentially uncover more malicious behaviours. The system is evaluated using 2,444 Android apps containing 1222 benign and 1222 malware samples from the Android malware genome project. Three scenarios, random only, state-based only, and our proposed hybrid approach were investigated to comparatively evaluate their performances. Our study shows that the hybrid approach significantly improved the amount of dynamic features extracted from both benign and malware samples over the state-based and commonly used random test input generation method.
연구 동기 및 목표
- 무작위 기반 테스트 입력 생성 방식이 동적 악성코드 분석에서 낮은 코드 커버리지와 악성 행동을 유도하지 못하는 데 기인한 한계를 해결한다.
- USB 디버깅 비활성화 등의 의도치 않은 시스템 상태를 유도해 분석을 방해할 수 있는 기존 도구들(예: Monkey)의 단점을 보완하며, 드문 또는 복잡한 UI 전환을 놓칠 수 있는 DroidBot의 한계를 극복한다.
- 무작위 및 상태 기반 테스트 전략의 장점을 통합하여 실제 기기에서 동적 분석의 효율성과 효과성을 향상시킨다.
- 제로데이 및 가급된 Android 악성코드 탐지에 핵심적인 역할을 하는 동적 기능(예: API 호출 및 인텐트)을 더 포괄적으로 기록할 수 있도록 한다.
- 에뮬레이터 기반의 제약 조건과 악성코드의 에뮬레이션 회피 기법을 피할 수 있는 실용적이고 도구 설치가 필요 없는 프레임워크를 제공하여 대규모 자동화된 동적 분석을 실현한다.
제안 방법
- 실제 Android 기기에서 동적 분석을 위한 통합된 하이브리드 테스팅 프레임워크로 Android Monkey(무작위 기반 입력 생성기)와 DroidBot(상태 기반 UI 테스팅 도구)를 통합한다.
- Monkey를 사용해 의사 무작위 사용자 이벤트(예: 터치, 스와이프, 키 입력)를 생성하여 예측 불가능한 UI 경로를 광범위하게 탐색하고 숨겨진 행동을 유도한다.
- DroidBot의 모델 기반 접근 방식을 활용해 UI 상태와 전환을 체계적으로 탐색함으로써 알려진 및 예상 가능한 애플리케이션 흐름을 모두 커버한다.
- 두 도구의 출력을 조율된 방식으로 통합하며, 안정성과 커버리지 확보를 위해 상태 기반 탐색을 우선시하고, 엣지 케이스 탐색을 위해 무작위 입력을 활용한다.
- 실행 중 모든 API 호출과 인텐트를 기록하여 악성코드 탐지 및 행동 분석에 유용한 동적 기능을 추출한다.
- 실제 기기에서 실용적 관련성을 확보하기 위해 Android 악성코드 게놈 프로젝트에서 확보한 2,444개의 실제 Android 앱(1,222개의 정상 앱, 1,222개의 악성코드)을 대상으로 하이브리드 접근 방식을 평가한다.
실험 결과
연구 질문
- RQ1무작위 기반과 상태 기반 테스트 입력 생성을 융합하면, 별도로 사용할 경우보다 Android 앱의 동적 분석에서 코드 커버리지가 향상되는가?
- RQ2실제 기기에서 하이브리드 접근 방식은 무작위 또는 상태 기반 테스트만 사용할 때보다 더 많은 동적 기능(특히 API 호출 및 인텐트)을 추출하는가?
- RQ3특정 UI 조건에서만 유도되는 악성 행동을 탐지하는 데 있어 하이브리드 방법이 얼마나 향상되는가?
- RQ4에뮬레이터와는 달리 실제 기기에서 하이브리드 접근 방식은 안정성, 커버리지, 기능 추출 측면에서 실제로 어떻게 성능을 발휘하는가?
- RQ5기존 테스트 전략에서 회피되는 가급된 또는 분석 회피용 Android 악성코드에서 하이브리드 방법이 악성 행동을 효과적으로 유도할 수 있는가?
주요 결과
- 하이브리드 접근 방식은 정상 앱과 악성코드 샘플 모두에서 Monkey(무작위 전용)와 DroidBot(상태 기반 전용)보다 뚜렷이 높은 코드 커버리지를 확보했다.
- 하이브리드 방법은 각각의 개별 방법보다 더 많은 고유한 API 호출과 인텐트를 추출하여 동적 기능 탐색 능력 향상을 입증했다.
- 무작위 및 상태 기반 테스트를 융합함으로써 복잡한 UI 상호작용 뒤에 숨겨진 악성 행동을 유도할 가능성이 높아졌다는 것이 연구에서 입증되었다.
- 하이브리드 프레임워크는 에뮬레이터 기반 도구에서 흔히 발생하는 불안정성과 설정 문제를 피하며 실제 기기에서 높은 커버리지를 확보했다.
- 결과적으로 하이브리드 접근 방식은 악성 런타임 행동을 관찰할 확률을 높여 동적 분석의 효과성을 향상시킨다는 점에서 악성코드 탐지에 기여한다.
- 이 프레임워크는 Android 프레임워크의 인스트루멘테이션이나 에뮬레이터 전용 설정이 필요 없어 실제 환경에서 실용적이고 구현 가능한 것으로 확인되었다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.