[发明专利]基于特征匹配的Android平台恶意软件检测方法有效

专利信息
申请号: 201711402292.1 申请日: 2017-12-22
公开(公告)号: CN108171057B 公开(公告)日: 2021-03-23
发明(设计)人: 董庆宽;张文博;陈原;曾敏;樊凯;王俊平 申请(专利权)人: 西安电子科技大学
主分类号: G06F21/56 分类号: G06F21/56
代理公司: 陕西电子工业专利中心 61205 代理人: 王品华;朱红星
地址: 710071 陕*** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种基于特征匹配的Android平台恶意软件检测方法,主要解决现有技术对安卓恶意软件检测准确率低的问题。其实现是:1)获取安卓应用程序,构建安卓应用程序数据集,并对该数据集进行预处理;2)构建敏感应用程序编程接口数据集;3)获取安卓应用程序运行时trace文件;4)将trace文件转换成txt文件并解析;5)提取应用程序的频繁应用程序编程接口调用序列,获取各恶意软件家族的匹配特征及其权重,再构建安卓恶意软件特征库;6)提取待测安卓应用程序的调用序列与安卓恶意软件特征库进行匹配,检测该待测安卓应用程序的属性。本发明具有良好的检测准确率,可用于对安卓手机安装软件的检测。
搜索关键词: 基于 特征 匹配 android 平台 恶意 软件 检测 方法
【主权项】:
1.一种基于特征匹配的Android平台恶意软件检测方法,其特征在于,包括:

(1)获取Android应用程序,该程序包括恶意软件样本集和正常软件样本集,并将正常软件样本集中的正常软件样本按照其功能进行分类,得到Android应用程序数据集;

(2)使用VirusTotal工具及杀毒软件对正常软件样本集进行查杀,确保其中的应用程序都是非恶意的,并将具有不同安全哈希算法SHA1值的应用程序视为是不同的,删除正常软件样本集中重复的应用程序,确保正常软件样本集中每一个应用程序都是唯一的;

(3)获取与需要申请相应敏感权限才能正常使用的敏感应用程序编程接口,并对这些应用程序编程接口进行格式转换,将其转换为Dalvik汇编代码格式表示,得到敏感应用程序编程接口数据集;

(4)在安卓模拟器中运行Android应用程序,使用软件开发工具包SDK中的monkey工具模拟用户操作,使用Android调试工具DDMS中的“Method Profiling”获取应用程序运行时生成的trace文件;

(5)使用软件开发工具包SDK中的dmtracedump工具将获取到的trace文件转换成txt文件,然后解析该txt文件,以获取每个应用程序编程接口节点的详细信息;

(6)使用特征提取算法从txt文件中提取每一个恶意软件家族中每一个恶意软件的频繁应用程序编程接口调用序列,构成一个恶意软件家族的频繁应用程序编程接口调用序列集;

(7)使用修正后的KMP算法将(6)得到的调用序列集中的调用序列分别与(3)得到的数据集中的每一个应用程序编程接口进行比对,删除调用序列集中不包含数据集中任何应用程序编程接口的调用序列,得到仅包含敏感应用程序编程接口的调用序列集;

(8)对调用序列集进行划分,得到各自包含相同敏感应用程序编程接口节点的子集;

(9)使用动态规划算法从(8)得到的各子集中分别提取各个子集的最长共同子序列,并将这些最长共同子序列作为该恶意软件家族中的匹配特征;

(10)统计各子集中敏感应用程序编程接口序列的个数,作为匹配特征的权重;

(11)利用匹配特征及权重,计算恶意软件家族中各恶意软件的相似匹配度Mj,并将最小的相似匹配度作为该恶意软件家族的最小相似度匹配阀值Mmin

(12)利用匹配特征、权重以及最小相似度匹配阀值,构建Android恶意软件特征库;

(13)提取待测Android应用程序的频繁应用程序编程接口调用序列,使用动态规划算法将调用序列分别与Android恶意软件特征库中各恶意软件家族的匹配特征进行匹配,并从恶意软件特征库中取出该匹配特征对应的权重;

(14)利用(13)取出的权重分别计算待测应用程序与各恶意软件家族的相似匹配度M:

其中,seqi为某恶意软件家族的第i个匹配特征;wi为某恶意软件家族的第i个匹配特征所对应的权重;match(seqi)为待测应用程序的调用序列与某恶意软件家族的第i个特征序列的匹配结果;为某恶意软件家族所有权重的总和。

(15)将(14)得到的相似匹配度与(11)得到各恶意软件家族的最小相似匹配度阀值进行比较,如果M<Mmin,则该待测应用程序是正常应用程序;否则该待测应用程序是恶意应用程序。

2.根据权利要求1所述的方法,其中步骤(3)中的敏感权限是指:安卓权限官方文档中危险级别的权限。

3.根据权利要求1所述的方法,其中步骤(5)中每个应用程序编程接口节点的详细信息,包括:应用程序编程接口的索引值、父节点的索引值、子节点的索引值、应用程序编程接口的名称以及被父节点调用的次数。

4.根据权利要求1所述的方法,其中步骤(6)中使用特征提取算法从txt文件中提取每一个恶意软件家族中每一个恶意软件的频繁应用程序编程接口调用序列,按如下步骤进行:

(6a)从txt文件中获取应用程序编程接口名称为toplevel节点的所有子节点,将这些子节点作为频繁应用程序编程接口调用序列的起始节点;

(6b)获取起始节点的所有子节点,比较每个子节点的被调用次数与起始节点的被调用次数,如果两者相等,则将该子节点添加到起始节点所在的调用序列中,再将该子节点作为新的起始节点,执行(6c);如果两者不相等,则将该子节点作为新的调用序列的新的起始节点,执行(6c);

(6c)将新的起始节点的被调用次数与其子节点的被调用次数相比,如果两者相等,则将该子节点添加到新的起始节点所在的调用序列中;如果两者不相等,则将该子节点作为新的调用序列的新的起始节点。

5.根据权利要求1所述的方法,其中步骤(11)中利用匹配特征及权重,计算恶意软件家族中各恶意软件的相似匹配度Mj,按如下公式进行:

其中,seqi为某恶意软件家族的第i个匹配特征;wi为某恶意软件家族的第i个匹配特征所对应的权重;match(seqi)为某恶意软件的调用序列与其所在恶意软件家族的第i个特征序列的匹配结果;为某恶意软件家族中所有权重的总和;N为某恶意软件家族中所有恶意软件的个数。

6.根据权利要求1所述的方法,其中步骤(12)中利用匹配特征、权重以及最小相似度匹配阀值,构建Android恶意软件特征库,是先在数据库中新建匹配特征表,并将匹配特征逐一插入到该匹配特征表中;再在数据库中新建恶意软件家族信息表,并将匹配特征对应的权重和最小相似度匹配阀值逐一插入到该恶意软件家族信息表中。

7.根据权利要求1所述的方法,其中步骤(13)中使用动态规划算法将调用序列分别与Android恶意软件特征库中各恶意软件家族的匹配特征进行匹配,按如下步骤进行:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201711402292.1/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

tel code back_top