基于高级语义的恶意代码分析与检测方法与流程

文档序号:17490664发布日期:2019-04-23 20:27阅读:400来源:国知局
基于高级语义的恶意代码分析与检测方法与流程

本发明涉及信息安全技术领域,尤其涉及一种基于高级语义的恶意代码分析与检测方法。



背景技术:

恶意软件是指任何对计算机和网络存在着潜在危害的计算机软件。目前,恶意代码的数量和种类逐年增加,并且制作技术发展迅速,对全球网络环境安全带来巨大威胁。

现有技术对应用恶意代码检测提供了多种不同的技术思路。

如公布号为cn107688742a的发明专利公开了一种大规模快速移动应用app检测和分析方法,该方法是通过反编译技术进行编译并获得应用的自然语言特征,然后通过使用面向dex的特征图像处理技术得到该app的dex图像特征;利用hash算法确定app是否重打包应用,如确定为重打包应用,则通过判断自然语言特征、dex图像特征及app重打包三者的参数值之和是否超过设定阈值对app检测和分析,该方法的本质是对app应用特征参数进行提取和判断,并采用hash算法对特征参数进行计算,并根据计算结果确定app应用的安全型。

又如公布号为cn107180191a的发明专利公开了一种基于半监督学习的恶意代码分析方法和系统,该方法通过提取恶意代码的静态特征与动态特征,然后对特征参数分析并对其进行重要性排名,根据排名进行进一步检测。

又如公布号为cn106096405a的发明专利公开了一种基于dalvik指令抽象的android恶意代码检测方法,该方法首先根据现有确定恶意代码建立恶意代码检测模型,然后对待检测app进行反编译处理获得应用特征参数,最后将待检测app应用的特征参数与恶意代码检测模型进行比较,以此进行恶意代码检测。

又如公布号cn106951782a的发明专利公开了一种面向安卓应用的恶意代码检测方法,该方法是在服务器端通过随机森林算法对预先提取的应用特征值进行分析,由此建立应用和恶意代码关系数据库,终端上传应用代码样本,从数据库服务器中拿到数据进行匹配,得到检测结果。

但对现有技术分析可见,无论是动态检测还是静态检测,均是基于代码的特征参数进行对比分析实现对恶意代码的判定,不同点在于对代码的特征参数处理方式有所不同。

基于特征参数(敏感元素及代码结构等)的恶意代码检测存在较大的技术缺陷,主要体现如下:

恶意代码语义分析多基于动态行为层上的语义分析,需要动态执行,由于触发条件的局限性,不能充分提炼出代码完整的行为特征,阻碍进一步语义分析。此外,由于语义特征较少,当前的语义分析方法多依赖于专家经验,制定相应的语义规则,进行规则匹配实现恶意代码检测,检测效果受限于特定的规则。

代码的静态分析少有覆盖大量代码的语义分析,大量的研究工作多基于静态分析从代码中提取敏感元素、代码结构等特征,利用机器学习等算法进行决策分类。此类方法依赖于大量的带标注样本,且无法检测新式的恶意应用。

也即现有技术不能根据代码的最终行为目的进行检测,仅仅是根据代码中的某几个特征点进行程序的合法性判定,由此造成准确性不高的缺陷。



技术实现要素:

本发明针对现有技术的不足,提出了一种基于高级语义的恶意代码分析与检测方法,从待检测应用全局出发,根据代码的全局行为目的进行分析,确定应用是否为或含有恶意代码,从而实现对现有及未来可能出现恶意代码进行准确识别。

利用逆向工程技术获得应用程序的源代码,将待检测代码转换成自然语言文本,进行基于高级语义的恶意代码分析以确定代码的动机描述,并根据动机描述确定待检测代码是否为恶意代码。

本发明所所述技术方案的基本原理:基于当前成熟的自然语言分析的知识,通过自然语言描述恶意程序概念、相应的恶意负载构建恶意程序动机描述库,最终根据构建的自然语言描述库对程序生成的自然语言描述利用自然语言相关技术进行文本分类,实现恶意代码的分析与检测,

本发明所述技术方案的有益效果在于:通过本发明所述技术方案能够全面准确地描述代码信息,提取的语义特征更加丰富,实时更新恶意程序动机描述库即可检测全部的恶意程序,包括未来出现的新式恶意程序。

附图说明

图1为本发明所述一种基于高级语义的恶意代码分析与检测方法实现原理示意图。

具体实施方式

本发明给出了一种基于高级语义的恶意代码分析与检测方法实现的实施例,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明:

图1给出了本发明所述一种基于高级语义的恶意代码分析与检测方法实现原理图。

基于高级语义的恶意代码分析与检测方法具体步骤为:

步骤一:获取应用程序的源代码;

步骤二:提取源代码中的关键方法并确定关键方法之间的调用关系,同时提取串行序列;

步骤三:根据提取的串行序列,在线api查询并生成自然语言文本;

步骤四:构建恶意程序动机描述库,所述动机描述库根据恶意负载攻击模式描述生成基于自然语言的伪代码;

步骤五:根据构建的自然语言描述库对程序生成的自然语言描述利用自然语言相关技术进行文本分类,实现恶意代码的分析与检测。

具体的,实现针对android平台开发的应用程序的恶意代码分析与检测方法具体为:

步骤一:通过逆向工程技术获取应用程序的源代码;可通过dex2jar,apkide等将dex中的二进制代码转换成java代码,从而获取应用程序的高级语言的源代码;

步骤二:提取源代码中的关键方法以及方法之间的调用关系,构建源代码执行流程的串行序列,如果有多个程序入口,构建多个这样的串行序列;

步骤三:基于步骤二中所述的串行序列,查询java语言的开发api文档,生成源代码的自然语言文本描述;

步骤四:根据已知恶意程序相关信息,基于自然语言描述的恶意程序概念、相应的恶意负载概念人工生成恶意负载攻击模式文本描述,并基于自然语言生成文本描述的伪代码,构建恶意程序动机描述库;

步骤五:最终根据构建的自然语言描述库,基于doc2vec工具生成相应的文档向量表示;对程序生成的自然语言描述,同样基于doc2vec生成对应的向量表示,与构建的自然语言描述库中的向量做相似性比对,设定恶意威胁的阈值,最终实现恶意代码的分析与检测。

进一步的,所述关键方法是指包含敏感元素的代码块。

进一步的,所述敏感元素包括敏感api、敏感action及敏感字符串。

申请人需要特别说明的是,本发明中所述的敏感api、敏感action及敏感字符串的具体指代是本领域技术人员所应掌握的基本知识,是软件开发过程中应当掌握的必备技能,因此,在本发明所述技术方案中,不对所述的敏感api、敏感action及敏感字符串进行详细解释和说明。

本发明所所述技术方案是利用逆向工程技术获得应用程序的源代码,将待检测代码转换成自然语言文本,进行基于高级语义的恶意代码分析以确定代码的动机描述,并根据动机描述确定待检测代码是否为恶意代码。

本发明所所述技术方案的基本原理:基于当前成熟的自然语言分析的知识,通过自然语言描述恶意程序概念、相应的恶意负载构建恶意程序动机描述库,最终根据构建的自然语言描述库对程序生成的自然语言描述利用自然语言相关技术进行文本分类,实现恶意代码的分析与检测,

本发明所述技术方案的有益效果在于:通过本发明所述技术方案能够全面准确地描述代码信息,提取的语义特征更加丰富,实时更新恶意程序动机描述库即可检测全部的恶意程序,包括未来出现的新式恶意程序。

以上对本发明所提供的一种基于高级语义的恶意代码分析与检测方法进行了详细介绍,本文中应用了实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1