论文部分内容阅读
智能手机作为移动设备的代表逐渐成为了普通大众获取信息服务,处理个人业务等的主要方式之一。安卓手机操作系统以其出色的用户体验逐渐成为智能手机操作平台中的首选,所以一些不法分子将获利点投向了安卓应用程序上,通过恶意应用程序窃取用户隐私信息、发送钓鱼短信等方式获得利益。由于安卓平台监管力度不够、恶意应用程序检测困难等原因造成了安卓手机平台中恶意应用程序普遍存在,这给安卓手机用户不仅带来了使用体验上的缺失,更造成了用户经济上的损失。现在各大安卓市场采用的检测方式,主要通过应用程序签名的方式进行检测。这种方法存在很大的漏洞,很容易被不法分子通过伪装技术逃避过检测。因此,检测并识别安卓恶意应用程序不仅具有学术意义,还具有现实意义。目前安卓应用程序分析技术主要分为静态分析和动态分析。鉴于安卓应用程序的特点以及现实可用性的考虑,本课题采用了静态分析的方式并结合深度学习的方法进行检测安卓恶意应用程序。现有研究方法通过构造结构化特征进行恶意代码检测,忽视了安卓应用程序中的序列数据。本课题从控制流角度挖掘函数调用图,从数据流角度挖掘污点分析的API调用图,基于调用图构造出序列数据,同时在挖掘序列数据中提出了抽象化表示函数和API的方法。现有的安卓应用程序可视化通过将二进制文件映射到图像上,但是往往可视化的图像的大小是不一致的,本课题提出了新的安卓应用程序可视化方法,具体通过计算操作码转移概率,并规整到相同大小的图片上。安卓应用程序具有整体性的特点,现有研究往往局限于某一特征,忽视了该特点。本课题提出了使用融合特征的恶意代码检测方法,具体将不同层次的安卓应用程序特征进行融合后使用机器学习分类方法对安卓应用程序进行分类,检测并识别出安卓应用程序中的恶意应用程序。本课题提出的方法能够更好地捕获安卓应用程序的实际行为,基于融合特征的实验最终F1值达到了0.961,优于对比实验。