一种数据检测方法和装置制造方法及图纸

技术编号:14242512 阅读:106 留言:0更新日期:2016-12-21 19:37
本发明专利技术公开一种数据检测方法和装置,该方法包括:获取待检测的机器码流对应的机器指令;判断连续的合法机器指令的数目是否达到预定的阈值;如果连续的合法机器指令的数目达到预定的阈值,则判断待检测的机器码流中存在可疑代码。本发明专利技术的方案中,通过对连续的机器指令进行计数的方式进行检测,不需要提取恶意样本,因此在病毒变种或者面对新的恶意代码时,不会由于确认恶意样本而无法识别,具有较好的适应性和较快的应变能力,此外,不需要运行样本,具有较高的检出率,检测准确率较高。

【技术实现步骤摘要】

本专利技术涉及数据检测
,尤指一种数据检测方法和装置
技术介绍
目前,主要通过两种方式对数据中的恶意代码进行检测,一种是基于传统特征进行检测,例如杀毒软件通常采用这种方式,一个是基于行为进行检测,例如沙箱通常采用这种方式。基于传统特征进行检测的方式中,都是先由安全厂商的安全分析人员在已捕获恶意样本的前提下,对样本进行特征提取,并通过提取的特征对恶意代码进行检测。传统特征方式,检测准确,效率高,但由于其特征一般都是无意义的二进制数据(比如文件的MD5值),提取的内容通常只用于确定恶意样本,没有额外的功能,在遇到病毒变种,或新的恶意代码时,它通常无能为力,需要通过安全分析人员重新根据捕获的恶意样本进行特征提取。基于行为进行检测的方式中,通常是让样本在虚拟环境中运行起来,通过分析样本的行为来确定样本中是否存在恶意代码。这种方式的一个重要弊端是,只有恶意代码运行起来,才能被检测到,如果因为环境不符,沙箱对抗等原因,导致恶意代码没有运行,则恶意代码无法被检测到,因此这种方式的检测准确率较低。
技术实现思路
为了解决上述问题,本专利技术提出了一种数据检测方法和装置,能够提高恶意代码的检测效率和检出率。为了解决上述技术问题,本专利技术提出了一种数据检测方法,包括:获取待检测的机器码流对应的机器指令;判断连续的合法机器指令的数目是否达到预定的阈值;如果连续的合法机器指令的数目达到预定的阈值,则判断待检测的机器码流中存在可疑代码。优选的,所述获取待检测的机器码流对应的机器指令包括:根据当前数据地址,对机器码流进行翻译,获取翻译得到的机器指令;在所述翻译执行之后,还包括:将当前数据地址跟新为指向下一段未翻译的机器码流。优选的,所述判断连续的合法机器指令的数目是否达到预定的阈值包括:在翻译不能获得合法机器指令的情况下,将指令计数器设置为0,继续执行所述根据当前数据地址,对机器码流进行翻译的步骤;在翻译得到一条合法机器指令的情况下,将指令计数器加1;判断指令计数器的计数数目是否达到预定的阈值;如果没达到,则判断待检测的机器码流是否已全部翻译完毕;如果没有全部翻译完毕,则继续执行所述根据当前数据地址,对机器码流进行翻译的步骤。优选的,在所述获取待检测的机器码流对应的机器指令之后,所述方法还包括:判断所述机器指令是否为跳转指令;在所述机器指令不是跳转指令的情况下,继续执行所述根据当前数据地址,对机器码流进行翻译的步骤;在该机器指令是跳转指令的情况下,根据跳转指令的内容更新当前数据地址,继续执行所述根据当前数据地址,对机器码进行翻译的步骤。优选的,所述预定的阈值设置为50~150。为了解决上述技术问题,本专利技术还提出了一种数据检测装置,所述装置包括:翻译单元,用于获取待检测的机器码流对应的机器指令;检测单元,用于判断连续的合法机器指令的数目是否达到预定的阈值;结果判断单元,用于在连续的合法机器指令的数目达到预定的阈值时,则判断待检测的机器码流中存在可疑代码。优选的,所述翻译单元包括:翻译模块,用于根据当前数据地址,对机器码流进行翻译,获取翻译得到的机器指令;地址更新模块,用于在翻译模块执行翻译之后,将当前数据地址跟新为指向下一段未翻译的机器码流。优选的,所述检测单元包括:指令计数模块,用于在翻译单元执行翻译不能获得合法机器指令的情况下,将指令计数器设置为0,并继续通过翻译模块执行所述根据当前数据地址,对机器码流进行翻译;在翻译单元执行翻译得到一条合法机器指令的情况下,将指令计数器加1;计数检测模块,用于判断指令计数器的计数数目是否达到预定的阈值;如果没达到,则判断待检测的机器码流是否已全部翻译完毕;如果没有全部翻译完毕,则继续通过翻译模块执行所述根据当前数据地址,对机器码流进行翻译。优选的,所述检测单元还包括:跳转检测模块,用于在翻译单元获取待检测的机器码流对应的机器指令之后,判断所述机器指令是否为跳转指令;在该机器指令是跳转指令的情况下,通知地址更新模块根据跳转指令的内容更新当前数据地址。优选的,所述预定的阈值设置为50~150。与现有技术相比,本专利技术提供的技术方案包括:获取待检测的机器码流对应的机器指令;判断连续的合法机器指令的数目是否达到预定的阈值;如果连续的合法机器指令的数目达到预定的阈值,则判断待检测的机器码流中存在可疑代码。通过本专利技术的方案,通过对连续的机器指令进行计数的方式进行检测。在检测可以代码时,不需要提取恶意样本,因此在病毒变种或者面对新的恶意代码时,不会由于确认恶意样本而无法识别,本专利技术的检测方法具有较好的适应性和较快的应变能力,此外,本专利技术实施例提供的检测方法中,不需要运行样本,不会由于环境不符或沙箱对抗导致恶意代码没有运行时,而造成恶意代码无法被检测到,因此,具有较高的检出率,检测准确率较高。附图说明下面对本专利技术实施例中的附图进行说明,实施例中的附图是用于对本专利技术的进一步理解,与说明书一起用于解释本专利技术,并不构成对本专利技术保护范围的限制。图1为本专利技术实施例提供的一种数据检测方法的流程图;图2为本专利技术实施例提供的另一种数据检测方法的流程图;图3A和图3B分别为本专利技术实施例提供的数据检测装置的结构示意图。具体实施方式为了便于本领域技术人员的理解,下面结合附图对本专利技术作进一步的描述,并不能用来限制本专利技术的保护范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的各种方式可以相互组合。参见图1,本专利技术提出了一种数据检测方法,所述方法包括:步骤110,获取数据中待检测的机器码流对应的机器指令;步骤120,判断连续的合法机器指令的数目是否达到预定的阈值;步骤130,如果连续的合法机器指令的数目达到预定的阈值,则判断待检测的机器码流中存在可疑代码。其中,步骤110中,所述获取机器码流对应的机器指令包括:根据当前数据地址,对机器码流进行翻译,从而得到对应的机器指令。在所述翻译执行之后,还包括:将当前数据地址跟新为指向下一段未翻译的机器码流。参见图2,本专利技术提出了一种数据检测方法,所述方法包括:步骤210,根据当前数据地址,对机器码流进行翻译。其中,根据预定的合法性规则,对机器码流进行翻译,例如,合法性规则可以是基于某CPU平台的指令集,根据指令集定义的机器码流与机器指令之间的映射关系,对机器码流进行翻译。步骤220,在翻译不能获得机器指令的情况下,将指令计数器设置为0;更新当前数据地址,继续执行步骤210;本专利技术实施例中,指令计数器用于对连续的机器指令进行计数,指令计数器的初始值为0。步骤230,在翻译得到一条机器指令的情况下,将指令计数器加1;在当前指令计数器为非零的情况下,只有当翻译得到的机器指令与上一条机器指令是连续的机器指令,才会将指令计数器加1,如果检测到无法翻译成机器指令的机器码流片段,则会将指令计数器设置为0。步骤240,判断指令计数器的计数数目是否达到预定的阈值;步骤250,如果指令计数器的计数数目达到预定的阈值,则判断数据中存在可疑代码;步骤260,如果指令计数器的计数数目没有达到预定的阈值,判断该机器指令是否为跳转指令;在该机器指令不是跳转指令的情况下,根据更新的当前数据地址,继续执行步骤210;步骤270,在该机器指令是跳转指令的情况下,根据跳转指令的内容更新当前数据地址,继续执行步本文档来自技高网...
一种数据检测方法和装置

【技术保护点】
一种数据检测方法,其特征在于,所述方法包括:获取待检测的机器码流对应的机器指令;判断连续的合法机器指令的数目是否达到预定的阈值;如果连续的合法机器指令的数目达到预定的阈值,则判断待检测的机器码流中存在可疑代码。

【技术特征摘要】
1.一种数据检测方法,其特征在于,所述方法包括:获取待检测的机器码流对应的机器指令;判断连续的合法机器指令的数目是否达到预定的阈值;如果连续的合法机器指令的数目达到预定的阈值,则判断待检测的机器码流中存在可疑代码。2.根据权利要求1所述的数据检测方法,其特征在于,所述获取待检测的机器码流对应的机器指令包括:根据当前数据地址,对机器码流进行翻译,获取翻译得到的机器指令;在所述翻译执行之后,还包括:将当前数据地址跟新为指向下一段未翻译的机器码流。3.根据权利要求2所述的数据检测方法,其特征在于,所述判断连续的合法机器指令的数目是否达到预定的阈值包括:在翻译不能获得合法机器指令的情况下,将指令计数器设置为0,继续执行所述根据当前数据地址,对机器码流进行翻译的步骤;在翻译得到一条合法机器指令的情况下,将指令计数器加1;判断指令计数器的计数数目是否达到预定的阈值;如果没达到,则判断待检测的机器码流是否已全部翻译完毕;如果没有全部翻译完毕,则继续执行所述根据当前数据地址,对机器码流进行翻译的步骤。4.根据权利要求2所述的数据检测方法,其特征在于,在所述获取待检测的机器码流对应的机器指令之后,所述方法还包括:判断所述机器指令是否为跳转指令;在所述机器指令不是跳转指令的情况下,继续执行所述根据当前数据地址,对机器码流进行翻译的步骤;在该机器指令是跳转指令的情况下,根据跳转指令的内容更新当前数据地址,继续执行所述根据当前数据地址,对机器码进行翻译的步骤。5.根据权利要求1~4中任一项所述的数据检测方法,其特征在于,所述预定的阈值设置为50...

【专利技术属性】
技术研发人员:周宏斌
申请(专利权)人:北京兰云科技有限公司
类型:发明
国别省市:北京;11

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

1