A3Ident:一种识别 Android 应用主要作者的两阶段方法
软件工程
2020-09-01 v1 密码学与安全
摘要
作者身份识别是通过给定代码识别并分类作者的过程。作者身份识别可广泛应用于软件领域,例如代码著作权争议、 plagiarism 检测、攻击者身份暴露。除传统软件开发固有的挑战外,Android 中的框架编程与众包模式显著增加了作者身份识别的难度。更具体地说,普遍存在的第三方库与继承组件(如类、方法、变量)稀释了整个 Android 应用中的主体代码,并模糊了不同作者所写代码之间的边界。然而,已有研究未能很好地应对这些挑战。为此,我们设计了一种两阶段方法,将 Android 应用的主体代码归属到特定开发者。在第一阶段,我们提出三类策略来识别应用中 Java 包之间的关系,包括上下文、语义与结构关系。我们开发了包聚合算法,以聚类那些极可能由同一作者编写的所有包。在第二阶段,我们开发三类特征来捕捉作者的编码习惯与代码风格度量。在此基础上,我们从作者开发的 Android 应用中生成作者指纹,并采用若干机器学习算法进行作者身份分类。我们在三个数据集上评估了我们的方法,这些数据集包含来自 257 位不同开发者的 15,666 个应用,平均准确率达到 92.5%。此外,我们在 2,900 个混淆应用上进行了测试,我们的方法能以 80.4% 的准确率对应用进行分类。
引用
@article{arxiv.2008.13768,
title = {A3Ident: A Two-phased Approach to Identify the Leading Authors of Android Apps},
author = {Wei Wang and Guozhu Meng and Haoyu Wang and Kai Chen and Weimin Ge and Xiaohong Li},
journal= {arXiv preprint arXiv:2008.13768},
year = {2020}
}
备注
12 pages