The popularity and relative openness of Android means it is a popular target for malware. Over the years, various studies have found that machine learning models can effectively discriminate malware from benign applications. However, as the operating system evolves, so does malware, bringing into question the findings of these previous studies, many of which used small, outdated, and often imbalanced datasets. In this paper, we reimplement 16 representative past works and evaluate them on a balanced, relevant and up-to-date dataset comprising 124,000 Android applications. We also carry out new experiments designed to fill holes in existing knowledge, and use our findings to identify the most effective features and models to use for Android malware detection within a contemporary environment. Our results suggest that accuracies of up to 96.8% can be achieved using static features alone, with a further 1% achievable using more expensive dynamic analysis approaches. We find the best models to be random forests built from API call usage and TCP network traffic features.
翻译:Android的普及性和相对开放性意味着它是一个受欢迎的恶意软件目标。 多年来, 各种研究发现机器学习模型能够有效地区分恶意软件与良性应用。 然而, 随着操作系统的发展, 恶意软件也会这样, 质疑这些先前研究的结果, 其中许多使用小型的、过时的和往往不平衡的数据集。 在本文中, 我们重新实施16种具有代表性的过去作品, 并评价一个由124 000 Android 应用程序组成的平衡、 相关和最新的数据集。 我们还进行了新的实验, 旨在填补现有知识中的空白, 并利用我们的调查结果确定在当代环境中用于Android恶意软件检测的最有效特征和模型。 我们的结果表明, 最多96.8%的精度可以单用静态特性实现, 并且使用更昂贵的动态分析方法再实现1%。 我们发现, 最佳模型是随机建立的森林, 使用 API 和 TCP 网络交通特征 。