Android has become the most popular mobile operating system. Correspondingly, an increasing number of Android malware has been developed and spread to steal users' private information. There exists one type of malware whose benign behaviors are developed to camouflage malicious behaviors. The malicious component occupies a small part of the entire code of the application (app for short), and the malicious part is strongly coupled with the benign part. In this case, the malware may cause false negatives when malware detectors extract features from the entire apps to conduct classification because the malicious features of these apps may be hidden among benign features. Moreover, some previous work aims to divide the entire app into several parts to discover the malicious part. However, the premise of these methods to commence app partition is that the connections between the normal part and the malicious part are weak. In this paper, we call this type of malware as Android covert malware and generate the first dataset of covert malware. To detect them, we first conduct static analysis to extract the call graphs. Through the deep analysis on graphs, we observe that although the correlations between the normal part and the malicious part in these graphs are high, the degree of these correlations has a distribution. Based on the observation, we design HomDroid to detect covert malware by analyzing the homophily of call graphs. We identify the ideal threshold of correlation to distinguish the normal part and the malicious part based on the evaluation results on a dataset of 4,840 benign apps and 3,385 covert malicious apps. According to our evaluation results, HomDroid is capable of detecting 96.8% of covert malware while the False Negative Rates of another four state-of-the-art systems (i.e., PerDroid, Drebin, MaMaDroid, and IntDroid) are 30.7%, 16.3%, 15.2%, and 10.4%, respectively.
翻译:Android 已成为最受欢迎的移动操作系统。 相应地, 越来越多的Android 恶意软件已经开发并传播到用户的私人信息。 有一种恶意软件已经发展起来, 它的良性行为是用来掩盖恶意行为。 恶意部件占用了整个应用程序代码的一小部分( 短的应用程序), 恶意部分与良性部分紧密结合。 在这种情况下, 恶意软件可能会在从整个应用程序中提取恶意软件特性进行分类时造成虚假的负值。 因为这些应用程序的恶意特性可能隐藏在良性功能中。 此外, 一些先前的工作旨在将整个应用程序分为几个部分, 以发现恶意部分。 但是, 这些程序分割的前提是, 正常部分与恶意部分之间的连接( 短的应用程序) 。 在本文中, 我们称这种恶意软件为Android 隐性软件, 并生成第一个隐藏的恶意恶意恶意软件。 为了检测它们, 我们首先进行静态分析以提取调用图表, 通过对图表的深度分析, 我们观察到, 虽然正常的4 4, 坏性数据在正常的 Odealal 3 部分上, 也分别分析了 。