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

技术编号:20944723 阅读:31 留言:0更新日期:2019-04-24 02:29
利用逆向工程技术获得应用程序的源代码,将待检测代码转换成自然语言文本,进行基于高级语义的恶意代码分析以确定代码的动机描述,并根据动机描述确定待检测代码是否为恶意代码。基于当前成熟的自然语言分析的知识,通过自然语言描述恶意程序概念、相应的恶意负载构建恶意程序动机描述库,最终根据构建的自然语言描述库对程序生成的自然语言描述利用自然语言相关技术进行文本分类,实现恶意代码的分析与检测。有益效果在于:通过本发明专利技术所述技术方案能够全面准确地描述代码信息,提取的语义特征更加丰富,实时更新恶意程序动机描述库即可检测全部的恶意程序,包括未来出现的新式恶意程序。

Malicious Code Analysis and Detection Based on Advanced Semantics

The source code of the application is obtained by reverse engineering technology, and the code to be detected is converted into natural language text. Malicious code analysis based on high-level semantics is carried out to determine the motivation description of the code, and whether the code to be detected is malicious code is determined according to the motivation description. Based on the current mature knowledge of natural language analysis, the motivation description library of malicious programs is constructed by describing the concept of malicious programs in natural language and corresponding malicious loads. Finally, according to the natural language description library, the natural language description generated by programs is categorized by using natural language related technologies to realize the analysis and detection of malicious code. The beneficial effect is that the technical scheme of the invention can describe the code information comprehensively and accurately, and extract more abundant semantic features. Updating the malicious program motivation description library in real time can detect all malicious programs, including new malicious programs in the future.

【技术实现步骤摘要】
基于高级语义的恶意代码分析与检测方法
本专利技术涉及信息安全
,尤其涉及一种基于高级语义的恶意代码分析与检测方法。
技术介绍
恶意软件是指任何对计算机和网络存在着潜在危害的计算机软件。目前,恶意代码的数量和种类逐年增加,并且制作技术发展迅速,对全球网络环境安全带来巨大威胁。现有技术对应用恶意代码检测提供了多种不同的技术思路。如公布号为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.如权利要求1所述的一种基于高级语义的恶意代码分析与检测方法,其特征在于:所述恶意代码分析与检测方法的具体步骤为:步骤一:获取应用程序的源代码;步骤二:提取源代码中的关键函数并确定关键函数之间的调用关系,同时提取串行序列;步骤三:根据提取的串行序列,在线API查询并生成自然语言文本;步骤四:构建恶意程序动机描述库,所述动机描述库根据恶意负载攻击模式描述生成基于自然语言的伪代码;步骤五:根据构建的自然语言描述库对程序生成的自然语言描述利用自然语言相关技术进行文本分类,实现恶意代码的分析与检测。3.如权利要求1所述的一种基于高级语义的恶意代码分析与检测方法,其特征在于:所述应用程序包括基于Android平台开发的APP应用。4.如权利要求1或3所述的一种基于高级语义的恶意代码分析与检测方法,其特征在于:实现针对Android平台开发的应用程序的恶意代码分析与检测方法具体为:步骤一:通过逆向工程技术获...

【专利技术属性】
技术研发人员:喻民刘超李松徐根伟王彦杰胡建勋
申请(专利权)人:中科信息安全共性技术国家工程研究中心有限公司
类型:发明
国别省市:北京,11

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

1