当前位置: 首页 > 专利查询>暨南大学专利>正文

基于API依赖关系图的安卓恶意代码检测方法技术

技术编号:15691355 阅读:149 留言:0更新日期:2017-06-24 04:29
本发明专利技术公开了一种基于API依赖关系图的安卓恶意代码检测方法,用于审核软件开发者提交的安卓应用软件,检测软件是否带有恶意行为。该方法包括下述步骤:S1、根据对应用软件的语义分析,生成API依赖关系图API‑DRG;S2、利用基于聚合的索引方法在API‑DRG数据库中去匹配最相似的依赖关系图;S3、通过对正常代码数据库NormalDB和恶意代码数据库MalwareDB的查询分别完成异常检测和签名检测。本发明专利技术通过以上创新方法完成安卓恶意代码分析与检测的自动化操作,并有效提高恶意代码检测和分类的准确率。

Android malicious code detection method based on API dependency graph

The invention discloses a Android malicious code detection method based on an API dependency diagram, which is used for examining the Android application software submitted by a software developer and detecting whether the software has malicious behavior. The method comprises the following steps: S1, according to the analysis of the semantic of application software, generate API dependency graph API DRG; S2, using index method based on API polymerization DRG database to match the most similar dependency graph; S3, through the normal code database NormalDB and MalwareDB database to complete the query of malicious code anomaly detection and signature detection respectively. The invention realizes the automatic operation of the Android malicious code analysis and detection through the above innovation method, and effectively improves the accuracy of the detection and classification of the malicious code.

【技术实现步骤摘要】
基于API依赖关系图的安卓恶意代码检测方法
本专利技术涉及移动安全的研究领域,特别涉及安卓恶意代码检测方法,利用语义认知的加权API依赖关系图对安卓恶意代码进行安全检测。
技术介绍
苹果、谷歌移动应用市场的App数量超过250万,下载量远超过800亿次。正是移动应用市场发展太迅速,暴露出诸多安全问题。卡巴斯基实验室(Kaspersky)表示,98.05%的恶意软件将目标瞄准了Android。这样需要我们投入越来越多的成本去对新型恶意软件进行人工分析。因此研发自动分析恶意代码的方法具有非常巨大的吸引力。现有恶意代码自动检测和分类方法分为两大类:基于签名和基于机器学习。基于签名的方法要在字节码和API调用中找到特定模式,这样很容易被字节码级别的转换攻击所逃避。基于机器学习的方法从应用程序行为(例如许可请求和关键API调用)中提取特性和使用标准机器学习算法去执行二进制分类。因为所提取的特性是基于程序语法而不是程序语义,所以这种检测也容易被逃避。为了解决恶意代码逃避自动检测问题,目前技术是将程序语义提炼成图形来表示,例如控制流图、数据依赖图和权限事件图。根据人工制作的规格说明去检查软件的相应图形,从而实现恶意代码检测。然而这些检测软件趋向于根据给定的规格说明去寻找精确的匹配代码,因此可能被恶意代码的多态性所逃避。因此本领域致力开发一种能有效对抗字节码转换攻击和零日攻击的恶意代码检测方法,并应用在安卓应用市场上。
技术实现思路
本专利技术的主要目的在于克服现有技术的缺点与不足,提供一种基于API依赖关系图的安卓恶意代码检测方法。根据本专利技术的一个方面,提供了一种基于API依赖关系并具有权值的图形作为程序语义的方法。首先我们发现函数API的入口点,然后安全相关的调用参数进行分析,通过程序流程图发现API之间的关系,构建API依赖关系并具有权值的图形。根据本专利技术的一个方面,我们这些图形储存在数据库中,每个图形代表着程序语义。然后在给定某个软件的情况下,利用基于聚合的索引,在这数据库中找到与该软件相应关系图最相似的方法。建立正常代码和恶意代码的图形数据库(分别为NormalDB和MalwareDB),异常检测采用和正常应用的图形数据库NormalDB的图形相比较,如果该数据库有API图形是跟给定软件的关系图的相似度分数wgmaxdw(G,G',α)大于设定的阈值ξ,即可判断该软件是恶意代码。然后再将给定软件的API关系图与恶意代码的图形数据库MalwareDB中图形相比较,在比较中建立相似度的特性矢量,如果在特性矢量中存在相似度分数wgmaxdw(G,G',α)大于ξ的元素,即可判断与数据库中这个元素相应的恶意代码是同类病毒家庭。为了达到上述目的,本专利技术采用以下技术方案:本专利技术一种基于API依赖关系图的安卓恶意代码检测方法,用于审核软件开发者提交的安卓应用软件,检测软件是否带有恶意行为,该方法包括下述步骤:S1、对应用软件的语义进行分析,生成API依赖关系图;S2、在数据库中使用基于聚合的索引方法对给定的API依赖关系图进行相似度查询,存在正常代码和恶意代码的API依赖关系图API-DRG数据库,在API-DRG数据库中查询与给定的图最相似的依赖关系图,使用基于聚合的索引方法去提高查询效率和可扩展性,每个聚合由与API-DRG数据库中API相关联的位矢量组成,位矢量表示该API所在的软件包是否出现在该依赖关系图中,将给定软件的位矢量和聚合里的矢量相比较,找到相应的索引,从而查询到与给定软件相匹配的依赖关系图;S3、通过数据库NormalDB和MalwareDB分别完成异常检测和签名检测,然后完成恶意代码检测与分类,利用异常检测去探测该软件是否是恶意软件;如果该软件是恶意软件,使用签名检测去确定该恶意软件的病毒类型。作为优选的技术方案,步骤S1中,对应用软件的语义进行分析的具体方法为:结合JAVA分析工具Soot框架,使用静态分析方法,执行图形生成程序,将安卓软件的字节码转换为相应的API依赖关系图API-DRG,该分析过程包括分析API的调用,利用上下文感知、数据流感知和模块间的数据流的分析方法,获得API调用引用参数和调用返回值,提取常量参数,确定API调用之间的数据依赖关系。作为优选的技术方案,还包括基类的调用入口发现步骤,通过递归回溯的算法确定基类的调用入口,具体过程如下:任意选择一个调用,递归回溯分析它与前一个调用存在的依赖关系,直至发现一个不被其它API调用的入口,这即是唯一一个该类的入口。作为优选的技术方案,所述API依赖关系图由一些拥有依赖关系的API组成,在依赖关系图中,API作为点、API之间的依赖关系为边,而对于边的标记分为两类,一种是由API原型、入口点、常量系统组成;第二种是涉及安卓安全级别的权重。作为优选的技术方案,步骤S2中,还包括将两个依赖关系图的相似度进行量化,计算图形相似度,图形相似度是这个图形转变另外一个图形的成本,即为了变成另外一个图形,删除旧的点和新建点的成本,而这个成本被称为带权重图形的编辑距离,以下有两个公式得出两张图之间转变成:公式一:公式一中,wgdist(G,G',α)为图形G转变至图形G’的最小成本,α是统一计算权重的函数,V和V’分别是两个图形的顶点,VI和VD分别是在图形G新增的边和在图形G删除的边;公式二:公式二中,wgmaxdw(G,G',α)为图形G和G’之间转变的最大编辑成本,φ为空图。作为优选的技术方案,步骤S2中,还包括API依赖关系图中关键API的选择,因为为每个API分配权重和进行相似性匹配是不现实的,所以需选择与系统安全相关的关键API,为了能发现这些API,采用概念学习方式,通过恶意代码的正面样本集合和正常代码的反面样本集合出现的频率来决定关键API标记,所选的API将对恶意代码更加敏感。作为优选的技术方案,步骤S2中,还包括API依赖关系图中API的权重分配能自动化,为了最优化给API自动分配权重,将API-DRG中同类型的图形相似度与不同类型的图形相似度之间的差值最大化,此时的权重矢量即是最优化的权重分配,通过以下公式求得最佳权重矢量:当v是关键API顶点时,1≤α(v)≤δ;否则α(v)=1;公式中α是权重函数,δ是最大的权重值;结合上面公式,通过使用局部择优的算法,通过循环计算该公式,求得最佳的权重矢量。作为优选的技术方案,步骤S3中,所述异常检测具体为:首先建立正常代码的API-DRG数据库NormalDB,然后将要检测的软件的依赖关系图与数据库NormalDB中图形比较,查询数据库中是否存在跟它相似的图形,如果数据库中不存在一个图形与要检测软件的图形的相似度分数wgmaxdw(G,G',α)等于或大于设置的阈值ξ,即判定该软件异常。作为优选的技术方案,所述签名检测具体为:从安卓恶意软件Genome项目中提取里面恶意软件的API-DRG,建立恶意代码的API-DRG数据库MalwareDB,然后去除数据库MalwareDB中相似度高的图形,保证数据库中每个图形具有自己的独特性,并分别代表不同类恶意软件,给定一个恶意软件样本,为其生成API-DRG图形,然后在上面说的恶意代码数据库MalwareDB中查询是否存在相似的图形,将给定的A本文档来自技高网...
基于API依赖关系图的安卓恶意代码检测方法

【技术保护点】
一种基于API依赖关系图的安卓恶意代码检测方法,用于审核软件开发者提交的安卓应用软件,检测软件是否带有恶意行为,其特征在于,该方法包括下述步骤:S1、对应用软件的语义进行分析,生成API依赖关系图;S2、在数据库中使用基于聚合的索引方法对给定的API依赖关系图进行相似度查询,存在正常代码和恶意代码的API依赖关系图API‑DRG数据库,在API‑DRG数据库中查询与给定的图最相似的依赖关系图,使用基于聚合的索引方法去提高查询效率和可扩展性,每个聚合由与API‑DRG数据库中API相关联的位矢量组成,位矢量表示该API所在的软件包是否出现在该依赖关系图中,将给定软件的位矢量和聚合里的矢量相比较,找到相应的索引,从而查询到与给定软件相匹配的依赖关系图;S3、通过数据库NormalDB和MalwareDB分别完成异常检测和签名检测,然后完成恶意代码检测与分类,利用异常检测去探测该软件是否是恶意软件;如果该软件是恶意软件,使用签名检测去确定该恶意软件的病毒类型。

【技术特征摘要】
1.一种基于API依赖关系图的安卓恶意代码检测方法,用于审核软件开发者提交的安卓应用软件,检测软件是否带有恶意行为,其特征在于,该方法包括下述步骤:S1、对应用软件的语义进行分析,生成API依赖关系图;S2、在数据库中使用基于聚合的索引方法对给定的API依赖关系图进行相似度查询,存在正常代码和恶意代码的API依赖关系图API-DRG数据库,在API-DRG数据库中查询与给定的图最相似的依赖关系图,使用基于聚合的索引方法去提高查询效率和可扩展性,每个聚合由与API-DRG数据库中API相关联的位矢量组成,位矢量表示该API所在的软件包是否出现在该依赖关系图中,将给定软件的位矢量和聚合里的矢量相比较,找到相应的索引,从而查询到与给定软件相匹配的依赖关系图;S3、通过数据库NormalDB和MalwareDB分别完成异常检测和签名检测,然后完成恶意代码检测与分类,利用异常检测去探测该软件是否是恶意软件;如果该软件是恶意软件,使用签名检测去确定该恶意软件的病毒类型。2.根据权利要求1所述基于API依赖关系图的安卓恶意代码检测方法,其特征在于,步骤S1中,对应用软件的语义进行分析的具体方法为:结合JAVA分析工具Soot框架,使用静态分析方法,执行图形生成程序,将安卓软件的字节码转换为相应的API依赖关系图API-DRG,该分析过程包括分析API的调用,利用上下文感知、数据流感知和模块间的数据流的分析方法,获得API调用引用参数和调用返回值,提取常量参数,确定API调用之间的数据依赖关系。3.根据权利要求2所述基于API依赖关系图的安卓恶意代码检测方法,其特征在于,还包括基类的调用入口发现步骤,通过递归回溯的算法确定基类的调用入口,具体过程如下:任意选择一个调用,递归回溯分析它与前一个调用存在的依赖关系,直至发现一个不被其它API调用的入口,这即是唯一一个该类的入口。4.根据权利要求2所述基于API依赖关系图的安卓恶意代码检测方法,其特征在于,所述API依赖关系图由一些拥有依赖关系的API组成,在依赖关系图中,API作为点、API之间的依赖关系为边,而对于边的标记分为两类,一种是由API原型、入口点、常量系统组成;第二种是涉及安卓安全级别的权重。5.根据权利要求1所述基于API依赖关系图的安卓恶意代码检测方法,其特征在于,步骤S2中,还包括将两个依赖关系图的相似度进行量化,计算图形相似度,图形相似度是这个图形转变另外一个图形的成本,即为了变成另外一个图形,删除旧的点和新建点的成本,而这个成本被称为带权重图形的编辑距离,以下有两个公式得出两张图之间转变成:公式一:公式一中,wgdist(G,G',α)为图形G转变至图形G’的最小成本,α是统一计算权重的函数,V和V’分别是两个图形的顶点,VI和VD分别是在图形G新增的边和在图形G删除的边;公式二:

【专利技术属性】
技术研发人员:官全龙罗伟其张焕明张凌燕
申请(专利权)人:暨南大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1