王慕遥,贾鹏,刘嘉勇
(四川大学网络空间安全学院,成都610065)
应用商店常常将应用划分为多个类别,这能够方便用户选择适合自己的应用,也便于商店进行管理。然而,应用商店往往采用开发者上传时选择的类别和应用描述作为分类依据[1-2],这需要花费人工审核的时间,也可能由于描述的不准确造成错误分类。同时,恶意软件也可能将自己伪装成热门分类的程序,诱使用户下载安装[3]。没有上架应用商店的应用则通过各种网站和社交媒体进行传播,这些应用由于没有经过任何审核,更容易造成恶意行为。
为了解决上述问题,文献[3]将应用使用到的API以文本形式进行储存,使用半监督朴素贝叶斯算法进行分类。文献[4]从APK内提取了三类14个特征,包括DEX文件中的API特征、清单文件中的特征和resources.arsc文件中的字符串信息。通过将三部分特征转化为三个二进制矩阵,利用了多种机器学习算法进行对比试验。虽然该方法在特征处理上比较粗粒度,但证明了字符串信息的有效性。文献[5]从AndroidManifest.xml文件中提取权限、组件等信息,使用自然语言处理的方法处理特征,并使用CNN进行分类。与之前的研究相比,主要的创新点在于使用文本表示应用并进行分类,证明了自然语言处理在该领域的可用性。
本文提出一种基于应用名称、字符串及图片等资源文件的App分类方法。应用名称有时会包含应用的功能信息,同时应用会在与用户交互的过程中暴露出自己真正的功能,因此应用所展示出的文字和图片中藏有与其功能有关的信息。……