안드로이드 어플리케이션의 분석에서 대부분의 정적 분석 기술은 이후의 2차적인 분석을 위해 행해진다. 한편으로는, 효율적인 분석을 위해 전처리된 결과에 대해 최적화하는 과정이 필요하며, false positive를 줄이기 위한 실행 불가능한 흐름의 트리밍 과정이 필요하다. 또한, 안드로이드 악성코드는 악성 행위가 특정 노드들에 걸쳐 나타나기 때문에 효율적인 분석을 위해서는 이러한 노드들에 초점을 맞춰야 한다. 본 논문에서는 절차간 제어 흐름 그래프를 기반으로 추출 혹은 트리밍을 수행하는 분석 시스템을 개발하였다. 분석 시스템은 안드로이드 어플리케이션 내에 정의된 UI 컴포넌트의 접근성을 분석하여 접근 불가능한 노드를 추출하는 기능을 가지며, UI 컴포넌트의 은닉이 발생하는 노드의 서브그래프의 추출을 통해 UI 컴포넌트 은닉형 악성코드에 대한 효율적인 분석이 가능하다. 이러한 분석 시스템은 16개의 어플리케이션으로 구성된 벤치마크인 TreeDroidBench를 통해 평가되었으며, 그 결과 메인 클래스에서 25.23% 수준의 그래프 축소가 가능하였다. 또한, 실제 환경에서의 평가를 위해 TreeDroid는 3,840개의 실제 어플리케이션에 대하여 실험을 진행하며 UI 접근 불가로 인해 사용자가 접근 불가능한 노드에 대한 탐색을 수행하였다. 그 결과, 정상 어플리케이션에서는 평균 140개의 접근 불가능한 노드가 존재하였지만, adware 카테고리에서는 평균 1,307개의 접근 불가능한 노드가 존재하는 것을 확인하였다.
Most of static flow analysis techniques tend to perform its analysis for further analysis. On the other hand, it is necessary to optimize the pre-processed results to perform more efficient analysis or trim out the unexecuted flows to reduce false positives. And also, it is necessary to focus on the specific nodes that malicious behavior may exist. To address these problems, this paper propose new analysis system, which provides extraction and trimming of the Inter-procedural Control Flow Graph. System analyzes the accessibility of UI components within the Android application and provides the function to trim out the nodes if they are inaccessible. It also allows the extraction of subgraphs from nodes where UI conceals occur in order to efficiently analyze malware that is trying to hide their view components. A benchmark named TreeDroidBench, which is consists of 16 apps for testing, was developed to test the proposed system. By performing an evaluation of the system, it was able to reduce the size of the graph to 25.23% in the main class. The system was also tested on 3,840 numbers of real-world apps and checked how many signatures are ignorable by UI inaccessibility. As a result, there was an average of 1,307 numbers of ignorable signatures in adware categories, while benign applications have only 140 ignorable signatures on average.