一种用于软件运行时自动识别恶意代码的方法及装置制造方法及图纸

技术编号:24996466 阅读:30 留言:0更新日期:2020-07-24 17:59
本发明专利技术提供一种用于软件运行时自动识别恶意代码的方法及装置,所述方法包括:开启和替换步骤,所述开启和替换步骤包括:CPU开启硬件虚拟化功能,将当前的操作系统置于Guest模式运行;将Guest模式的特定寄存器的值替换为第一监听函数;或,初始化CPU在Guest模式的特定寄存器的值为第一监听函数;CPU开启硬件虚拟化功能,将当前的操作系统置于Guest模式运行;第一收集步骤,所述第一监听函数收集待检测软件在Guest模式运行时的行为集合;检测步骤,利用预先构建的恶意代码行为检测模型对所述行为集合进行检测,自动识别出所述待检测软件是否含有恶意代码。根据本发明专利技术的方案,可以全面监控软件的运行行为,并基于软件的运行行为自动识别恶意代码。

【技术实现步骤摘要】
一种用于软件运行时自动识别恶意代码的方法及装置
本专利技术涉及计算机信息安全领域,尤其涉及一种用于软件运行时自动识别恶意代码的方法及装置。
技术介绍
当前识别恶意代码的方法一般包括文件静态检测、启发式检测、AI学习等方法,这些方法都是针对磁盘中的静态文件,而对运行中的程序一般使用主动防御技术识别恶意代码,使用主动防御技术虽然对识别恶意代码具有一定的效果,但是虚警较多。由于主动防御技术无法精准识别恶意代码,只能一味地对可疑行为报警,这会增加用户的困扰。现有的主动防御技术主要是通过系统提供的标准接口或通过挂钩子(Hook)来监控程序的行为,然而越来越多的操作系统越来越注重自身的安全,已经不允许Patch内核代码了,这导致无法通过挂钩子(Hook)的方法来监控分析程序的行为。而且由于部分操作系统比较封闭,提供的用于监控程序行为的接口很有限,这导致很多程序行为无法被监控。无法监控或只能有限地监控程序行为,大大限制基于行为的恶意代码识别软件的识别能力。此外,传统的恶意代码识别软件在监控到程序行为后,对程序行为的处理比较单一:当发现单个可疑动作的时候就告警;或结合从既往病毒木马分析中提取的应用程序接口(ApplicationProgrammingInterface,API)调用序列来匹配识别这些行为,只要匹配上就告警,这导致传统方法无法有效、精准地通过程序行为来识别恶意代码。
技术实现思路
为解决上述技术问题,本专利技术提出了一种用于软件运行时自动识别恶意代码的方法及装置,用以解决现有技术中安全软件由于无法有效地监控程序行为导致识别恶意代码的识别能力低,误报较多的技术问题。根据本专利技术的第一方面,提供一种用于软件运行时自动识别恶意代码的方法,所述方法包括以下步骤:开启和替换步骤,所述开启和替换步骤包括:CPU开启硬件虚拟化功能,将当前的操作系统置于Guest模式运行;将Guest模式的特定寄存器的值替换为第一监听函数;或,所述开启和替换步骤包括:初始化CPU在Guest模式的特定寄存器的值为第一监听函数;CPU开启硬件虚拟化功能,将当前的操作系统置于Guest模式运行;其中,所述特定寄存器为系统调用时从应用层进入内核层必须访问的寄存器;第一收集步骤,所述第一监听函数收集待检测软件在Guest模式运行时的行为集合;检测步骤,利用预先构建的恶意代码行为检测模型对所述行为集合进行检测,自动识别出所述待检测软件是否含有恶意代码。进一步地,在一个实施例中,在所述开启和替换步骤中,CPU开启硬件虚拟化功能之前,还包括函数设置步骤,设置CPU在Host模式的第二监听函数;所述第二监听函数用于监听待检测软件在Guest模式的敏感指令执行行为和异常内存访问行为;第二收集步骤,将所述待检测软件的敏感指令执行行为和异常内存访问行为加入所述行为集合;所述检测步骤,利用所述预先构建的恶意代码行为检测模型对所述行为集合进行检测,自动识别出所述待检测软件是否含有恶意代码。进一步地,所述检测步骤中,所述恶意代码行为检测模型包括恶意代码行为特征库检测模型;和/或恶意代码行为知识库检测模型;和/或恶意代码行为识别专家系统检测模型;和/或机器学习检测模型。进一步地,所述CPU是x86架构;或ARM架构;或mips架构;或alpha架构。根据本专利技术第二方面,提供一种用于软件运行时自动识别恶意代码的装置,所述装置包括:开启和替换模块,所述开启和替换模块,用于CPU开启硬件虚拟化功能,将当前的操作系统置于Guest模式运行;将Guest模式的特定寄存器的值替换为第一监听函数;或,所述开启和替换模块,用于初始化CPU在Guest模式的特定寄存器的值为第一监听函数;CPU开启硬件虚拟化功能,将当前的操作系统置于Guest模式运行;其中,所述特定寄存器为系统调用时从应用层进入内核层必须访问的寄存器;第一收集模块,用于所述第一监听函数收集待检测软件在Guest模式运行时的行为集合;检测模块,用于利用预先构建的恶意代码行为检测模型对所述行为集合进行检测,自动识别出所述待检测软件是否含有恶意代码。进一步地,在一个实施例中,所述开启和替换模块进一步包含函数设置模块,用于CPU开启硬件虚拟化功能之前,设置CPU在Host模式的第二监听函数;所述第二监听函数用于监听待检测软件在Guest模式的敏感指令执行行为和异常内存访问行为;第二收集模块,用于将所述待检测软件的敏感指令执行行为和异常内存访问行为加入所述行为集合;所述检测模块,用于利用所述预先构建的恶意代码行为检测模型对所述行为集合进行检测,自动识别出所述待检测软件是否含有恶意代码。进一步地,所述检测模块中,所述恶意代码行为检测模型包括恶意代码行为特征库检测模型;和/或恶意代码行为知识库检测模型;和/或恶意代码行为识别专家系统检测模型;和/或机器学习检测模型。进一步地,所述CPU是x86架构;或ARM架构;或mips架构;或alpha架构。根据本专利技术第三方面,提供一种用于软件运行时自动识别恶意代码的系统,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如前所述的用于软件运行时自动识别恶意代码的方法。根据本专利技术第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序用于由处理器加载并执行如前所述的用于软件运行时自动识别恶意代码的方法。根据本专利技术的上述方案,能够获得以下技术效果:无须通过系统提供的接口或者挂钩子就可以全面监控软件的运行行为,并基于软件的运行行为自动识别恶意代码,识别率高,误报率低。此外,本专利技术还可以应用于其他领域,比如用于软件行为分析领域,用以监控软件的行为动作。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,并可依照说明书的内容予以实施,以下以本专利技术的较佳实施例并配合附图详细说明如后。附图说明构成本专利技术的一部分的附图用来提供对本专利技术的进一步理解,本专利技术提供如下附图进行说明。在附图中:图1为本专利技术一个实施方式的用于软件运行时自动识别恶意代码的方法流程图;图2为本专利技术一个实施方式的用于软件运行时自动识别恶意代码的装置结构框图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术具体实施例及相应的附图对本专利技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。首先结合图1说明本专利技术一个实施方式的用于软件运行时自动识别恶意代码的方法流程图。如图1所示,所述方法包括以下步骤:开启和替换步骤,所述开启和替换步骤包括:CPU开启硬件虚拟化功能,将当前的操作系统置于Guest模式运行;本文档来自技高网...

【技术保护点】
1.一种用于软件运行时自动识别恶意代码的方法,其特征在于,所述方法包括以下步骤:/n开启和替换步骤,所述开启和替换步骤包括:CPU开启硬件虚拟化功能,将当前的操作系统置于Guest模式运行;将Guest模式的特定寄存器的值替换为第一监听函数;或,/n所述开启和替换步骤包括:初始化CPU在Guest模式的特定寄存器的值为第一监听函数;CPU开启硬件虚拟化功能,将当前的操作系统置于Guest模式运行;/n其中,所述特定寄存器为系统调用时从应用层进入内核层必须访问的寄存器;/n第一收集步骤,所述第一监听函数收集待检测软件在Guest模式运行时的行为集合;/n检测步骤,利用预先构建的恶意代码行为检测模型对所述行为集合进行检测,自动识别出所述待检测软件是否含有恶意代码。/n

【技术特征摘要】
1.一种用于软件运行时自动识别恶意代码的方法,其特征在于,所述方法包括以下步骤:
开启和替换步骤,所述开启和替换步骤包括:CPU开启硬件虚拟化功能,将当前的操作系统置于Guest模式运行;将Guest模式的特定寄存器的值替换为第一监听函数;或,
所述开启和替换步骤包括:初始化CPU在Guest模式的特定寄存器的值为第一监听函数;CPU开启硬件虚拟化功能,将当前的操作系统置于Guest模式运行;
其中,所述特定寄存器为系统调用时从应用层进入内核层必须访问的寄存器;
第一收集步骤,所述第一监听函数收集待检测软件在Guest模式运行时的行为集合;
检测步骤,利用预先构建的恶意代码行为检测模型对所述行为集合进行检测,自动识别出所述待检测软件是否含有恶意代码。


2.如权利要求1所述的用于软件运行时自动识别恶意代码的方法,其特征在于,在所述开启和替换步骤中,CPU开启硬件虚拟化功能之前,还包括函数设置步骤,设置CPU在Host模式的第二监听函数;所述第二监听函数用于监听待检测软件在Guest模式的敏感指令执行行为和异常内存访问行为;
第二收集步骤,将所述待检测软件的敏感指令执行行为和异常内存访问行为加入所述行为集合;
所述检测步骤,利用所述预先构建的恶意代码行为检测模型对所述行为集合进行检测,自动识别出所述待检测软件是否含有恶意代码。


3.如权利要求1所述的用于软件运行时自动识别恶意代码的方法,其特征在于,所述检测步骤中,所述恶意代码行为检测模型包括恶意代码行为特征库检测模型;和/或恶意代码行为知识库检测模型;和/或恶意代码行为识别专家系统检测模型;和/或机器学习检测模型。


4.如权利要求1-3任一项所述的用于软件运行时自动识别恶意代码的方法,其特征在于,所述CPU是x86架构;或ARM架构;或mips架构;或alpha架构。


5.一种用于软件运行时自动识别恶意代码的装置,其特征在于,所述装置包括:
开启和替换模块,所述开启和替换模块,用于CPU开启硬件虚拟化功能,将当前的操作系统置于Guest模式运行;将Guest模式的特定寄存器的值替换...

【专利技术属性】
技术研发人员:姚纪卫姜向前
申请(专利权)人:安芯网盾北京科技有限公司
类型:发明
国别省市:北京;11

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

1