恶意代码的检测方法、系统及相关装置的制作方法

文档序号:6430261阅读:197来源:国知局
专利名称:恶意代码的检测方法、系统及相关装置的制作方法
技术领域
本发明涉及计算机安全技术领域,尤其涉及一种恶意代码的检测方法、一种宿主机、一种恶意代码的检测装置和一种恶意代码的检测系统。
背景技术
硬件虚拟化技术被广泛应用于软件测试、并行计算等领域。硬件虚拟化技术在一台物理主机上虚拟出一台或多台虚拟机,从而使得几个甚至几十个虚拟机可以共用一个物理主机的硬件资源,该物理主机也被称为宿主机。云计算将各个终端设备的数据处理任务集中交给网络来执行,以便由网络向使用多种不同终端设备的用户提供数据服务,从而克服终端设备的差异性。云计算中网络侧的分布式计算成为硬件虚拟化技术的一个新的重要应用场景。由于同一宿主机上的各个虚拟机之间可以不通过网络设备,而是仅通过公共的宿主机产生数据交互,因此采用硬件虚拟化技术实现云计算时,一个感染病毒的虚拟机很容易通过宿主机感染其他与其同在一个宿主机上的虚拟机。因此云计算容易成为计算机病毒和网络攻击的对象。针对如何在以上场景中检测包括病毒在内的恶意代码(Malware),现有技术提出 在同一个宿主机的各个虚拟机上分别安装杀毒软件,利用每个虚拟机上所安装的杀毒软件对该虚拟机上的恶意代码进行查杀。发明人在实现本发明的过程中,发现现有技术存在以下缺陷恶意代码执行时实际发生作用的场所是宿主机的内存、CPU等物理硬件,并不是逻辑上的虚拟机中。但现有方案要求在同一宿主机上的所有虚拟机上都分别安装杀毒软件,并在虚拟机上执行恶意代码检测,因此使用该方案检测恶意代码存在效率低下、占用宿主机较多存储资源和处理资源的问题。

发明内容
本发明实施例提供一种恶意代码的检测方法,用以解决现有技术中检测效率低、 占用资源较多的问题。对应地,本发明实施例还提供了一种宿主机、一种恶意代码的检测装置和一种恶意代码的检测系统。本发明实施例提供的技术方案如下一种恶意代码的检测方法,包括在宿主机的虚拟机监视器中监控指令的执行情况,所述指令是该宿主机的虚拟机中执行程序代码时产生的读写请求被下发至虚拟机监视器时,转义生成的;根据所述指令的执行情况,获得所述程序代码的执行特征;将获得的所述执行特征与预先存储的已知恶意代码的执行特征进行比对,在比对结果相符时确定所述程序代码为恶意代码。一种恶意代码的检测方法,包括
接收宿主机发来的程序代码,在预先构建的用于模拟虚拟机监视器环境的第一沙箱中执行所述程序代码,获得执行结束后所述第一沙箱的安全状态报告;和/或在预先构建的用于模拟虚拟机环境的第二沙箱中执行所述程序代码,获得执行结束后所述第二沙箱的安全状态报告;根据所述安全状态报告中预设参数的参数值、以及预设的判别规则的集合,判定所述程序代码是否为恶意代码,所述判别规则中包含至少一个所述预设参数的阈值判断范围;将判定结果发送给所述宿主机。一种宿主机,包括虚拟机监视器和至少一个虚拟机,还包括恶意代码的检测装置, 其中所述恶意代码的检测装置,用于在宿主机的虚拟机监视器中监控指令的执行情况,所述指令是该宿主机的虚拟机中执行程序代码时产生的读写请求被下发至虚拟机监视器时,转义生成的;根据所述指令的执行情况,获得所述程序代码的执行特征;将获取单元获得的所述执行特征与预先存储的已知恶意代码的执行特征进行比对,并在比对结果不相符时确定所述程序代码为恶意代码。一种恶意代码的检测装置,包括监控单元,用于在宿主机的虚拟机监视器中监控指令的执行情况,所述指令是该宿主机的虚拟机中执行程序代码时产生的读写请求被下发至虚拟机监视器时,转义生成的;获取单元,用于根据所述指令的执行情况,获得所述程序代码的执行特征;确定单元,用于将获取单元获得的所述执行特征与预先存储的已知恶意代码的执行特征进行比对,并在比对结果相符时确定所述程序代码为恶意代码。一种恶意代码的检测装置,包括第一接收单元,用于接收宿主机发来的程序代码;执行单元,用于在预先构建的用于模拟虚拟机监视器环境的第一沙箱中执行所述程序代码,获得执行结束后所述第一沙箱的安全状态报告;和/或在预先构建的用于模拟虚拟机环境的第二沙箱中执行所述程序代码,获得执行结束后所述第二沙箱的安全状态报
生 P=I ;判定单元,用于根据所述安全状态报告中预设参数的参数值、以及预设的判别规则的集合,判定所述程序代码是否为恶意代码,所述判别规则中包含至少一个所述预设参数的阈值判断范围;第一发送单元,用于将判定单元的判定结果发送给所述宿主机。一种恶意代码的检测系统,包括至少一个宿主机和至少一个集群查杀设备,其中所述宿主机,用于在该宿主机的虚拟机监视器中捕获指令,所述执行指令是该宿主机的虚拟机中执行程序代码时产生的读写请求被下发至虚拟机监视器时,转义生成的; 根据所述指令获得所述程序代码的执行特征;将获得的所述执行特征与本地数据库黑名单中的已知恶意代码的执行特征进行比对,若比对结果相符,则确定所述程序代码为恶意代码;若比对结果不相符,则将所述程序代码发送给集群查杀设备,并接收所述集群查杀设备返回的所述程序代码是否为恶意代码的判定结果;所述集群查杀设备,用于接收宿主机发来的程序代码,在预先构建的用于模拟虚拟机监视器环境的第一沙箱中执行所述程序代码,获得执行结束后所述第一沙箱的安全状态报告;和/或在预先构建的用于模拟虚拟机环境的第二沙箱中执行所述程序代码,获得执行结束后所述第二沙箱的安全状态报告;根据所述安全状态报告中预设参数的参数值、 以及预设的判别规则的集合,判定所述程序代码是否为恶意代码,所述判别规则中包含至少一个所述预设参数的参数值范围;将判定结果发送给所述宿主机。本发明实施例提供的恶意代码的检测方法在宿主机的虚拟机监视器中监控转义生成的指令,并根据指令获得所述程序代码的执行特征;将获得的执行特征与预先存储的已知恶意代码的执行特征进行比对,并根据比对结果确定所述程序代码是否为恶意代码。 提高了检测效率,节约了在各虚拟机中重复安装杀毒软件所占用的宿主机的存储资源、以及各虚拟机分别运行杀毒软件所占用的宿主机的处理资源。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本实施例中硬件虚拟化场景下的宿主机的结构原理示意图;图2为本发明实施例一提供的恶意代码的检测方法的流程图;图3为本发明实施例二提供的恶意代码判定方法的流程图;图如为本发明实施例三提供的恶意代码判定方法的流程图;图4b为本发明实施例三提供的另一种恶意代码判定方法的流程图;图5为本发明实施例五提供的宿主机上本地数据库更新方法的流程图;图6a为本发明实施例六提供的恶意代码的检测方法的流程图;图6b为本发明实施例六提供的另一种恶意代码的检测方法的流程图;图7为本发明实施例七提供的集群查杀设备上数据库的更新方法的流程图;图8为本发明实施例七提供的集群查杀设备中数据库的架构示意图;图9为本发明实施例七提供的集群查杀设备上数据库的更新方法的详细流程图;图10为本发明实施例八提供的宿主机设备的结构示意图;图11为本发明实施例八提供的恶意代码的检测装置的结构示意图;图12为本发明实施例八提供的另一种恶意代码的检测装置的结构示意图;图13为本发明实施例九提供的一种集群查杀设备的结构示意图;图14为本发明实施例十提供的一种恶意代码的检测系统的结构示意图。
具体实施例方式由于恶意代码在虚拟机上的执行时,无论是恶意代码读写宿主机存储器的操作、 还是访问CPU的操作都由虚拟化平台转发给宿主机的物理硬件,所以恶意代码执行时实际发生作用的场所是宿主机的物理硬件,并不是逻辑上的虚拟机。而现有虚拟机恶意代码检测方案要求在同一宿主机上的所有虚拟机上都分别安装杀毒软件执行恶意代码检测,因此现有技术存在着检测效率低下、占用宿主机资源较多的问题。另外,在升级杀毒软件时要保证同步升级所有虚拟机上的杀毒软件,否则杀毒软件版本较低的虚拟机仍然可能被感染恶意代码,因此现有技术还存在着管理更新维护较为复杂的问题。本发明实施例一至实施例五从宿主机的角度对恶意代码的检测方法进行介绍。实施例六、实施例七从集群查杀设备的角度对恶意代码的检测方法进行介绍。下面结合各个附图对本发明实施例技术方案的主要实现原理具体实施方式
及其对应能够达到的有益效果进行详细的阐述。实施例一附图1为本实施例中硬件虚拟化场景下的宿主机的结构原理示意图。为了便于描述,这里将宿主机抽象为三层逻辑架构,分别为上层的各个虚拟机VM1 VMn、中间层的虚拟机监视器(hypervisor)和底层硬件。底层硬件包括中央处理器(CPU,Center Processing Unit)、内存、网络适配器、磁盘等等。请参照附图2a,对本发明实施例提供的恶意代码的检测方法的流程进行详细描述步骤201,在宿主机的虚拟机监视器中监控指令的执行情况;具体地,当虚拟机上执行程序代码时,对各种物理硬件设备的读写访问请求被发送到虚拟机监视器时,会被转义为所述虚拟机所在的宿主机虚拟机监视器中的执行指令, 并通过虚拟机监视器来真正地访问物理硬件设备。其中,转义操作是现有虚拟机监视器本身的功能,转义操作将虚拟机对虚拟硬件设备的访问转换成虚拟机监视器对真正物理硬件设备的访问,是虚拟机中的程序代码在执行过程中不可缺少的一个环节,其详细的技术细节在这里不再赘述。需要说明的是,本发明实施例在宿主机的虚拟机监视器中所监控的指令的执行情况,是指虚拟机监视器转义后的指令的执行情况,而并非转义前虚拟机中程序代码的执行情况。步骤202,根据所述指令的执行情况,获得所述程序代码的执行特征;其中,程序代码的执行特征包括执行该程序代码时产生的读写访问请求转义生成的指令的内容、所述指令在所述虚拟机监视器中的行为特征、或所述指令访问物理硬件设备的行为特征。其中,所述指令在虚拟机监视器中的行为特征包括该指令所要修改的该虚拟机监视器中的系统文件的内容、存储位置、或者文件参数信息等,文件参数信息包括系统文件的名称标识、生成时间、版本号、访问权限等等。所述指令访问物理硬件设备的行为特征,包括访问内存、硬盘、闪存等存储设备的存储空间超过第一设定阈值的情况所持续时间、占用CPU比例超过第二设定阈值的持续时间、是否读写设定范围的输入输出接口等等。可选地,所述第一设定阈值可以为预先根据已知恶意代码转义后的指令访问存储设备的情况统计得出的,所述第二设定阈值可以为预先根据已知恶意代码转义后的指令执行时占用CPU的情况统计得出的。下面将结合附图2b所示的实例,对获得所述程序代码的执行特征的具体过程进
9行介绍。虚拟机中的程序代码al. exe在执行时所产生的读写访问请求集被转义后的指令集为al,,其中包含cmdO cmd9总共10个指令;通过读取监控到的指令的内容,可以获得执行所述程序代码时产生的读写请求所转义生成的指令的内容(如表1所示),可选地,可以只读取其中部分指令的内容,例如读取 cmdl的内容为“0xl95fd3”,读取cmd6的内容为“0xl3457e”。表 权利要求
1.一种恶意代码的检测方法,其特征在于,包括在宿主机的虚拟机监视器中监控指令的执行情况,所述指令是该宿主机的虚拟机中执行程序代码时产生的读写请求被下发至虚拟机监视器时,转义生成的;根据所述指令的执行情况,获得所述程序代码的执行特征;将获得的所述执行特征与预先存储的已知恶意代码的执行特征进行比对,在比对结果相符时确定所述程序代码为恶意代码。
2.如权利要求1所述的方法,其特征在于,所述执行特征包括以下任意一个、或多个的组合执行该程序代码时产生的读写访问请求转义生成的指令的内容、所述指令在所述虚拟机监视器中的行为特征、或所述指令访问硬件的行为特征;当所述执行特征包括转义生成的指令的内容时,所述根据所述指令的执行情况,获得所述程序代码的执行特征,具体为通过读取监控到的指令的内容,获得转义生成的指令的内容;当所述执行特征包括所述指令在所述虚拟机监视器中的行为特征时,所述根据所述指令的执行情况,获得所述程序代码的执行特征,具体为通过监控虚拟机监视器中预定应用程序编程接口 API被所述指令调用时传入的参数,获得所述指令在所述虚拟机监视器中的行为特征;当所述执行特征包括所述指令访问硬件的行为特征时,所述根据所述指令的执行情况,获得所述程序代码的执行特征,具体为通过监控虚拟机监视器中预定API被所述指令调用时传入的参数、或者监控所述指令执行过程中宿主机上存储资源或处理资源使用情况,获得所述指令访问硬件的行为特征的。
3.如权利要求2所述的方法,其特征在于,所述指令在所述虚拟机监视器中的行为特征包括以下任意一个、或多个的组合修改所述虚拟机监视器中的系统文件的内容、位置或参数信息;所述指令访问硬件的行为特征包括以下任意一个、或多个的组合访问存储空间超过第一设定阈值的持续时间、占用CPU比例超过第二设定阈值的持续时间、或是否读写设定范围的输入输出接口。
4.如权利要求1至3任一所述的方法,其特征在于,所述将获得的所述执行特征与预先存储的已知恶意代码的执行特征进行比对,比对结果不相符之后,还包括将获得的所述执行特征发送给集群查杀设备,并接收所述集群查杀设备返回的所述程序代码是否为恶意代码的判定结果,所述判定结果是所述集群查杀设备将所述特征与该集群查杀设备数据库中已知恶意代码的执行特征进行比对确定出的,或者将所述程序代码发送给集群查杀设备,并接收所述集群查杀设备返回的所述程序代码是否为恶意代码的判定结果,所述判定结果是所述集群查杀设备利用沙箱技术执行所述程序代码后,根据执行结果确定出的。
5.如权利要求1所述的方法,其特征在于,在确定出所述程序代码为恶意代码后,还包括记录该程序代码的标识,并根据记录结果统计设定时间段内该程序代码被检测到的次数;将所述程序代码的标识及所述次数发送给集群查杀设备;接收集群查杀设备返回的数据库内容,并根据接收到数据库内容替换本地数据库的内容,所述接收到的数据库内容是所述集群查杀设备根据所述程序代码的标识及所述次数筛选出的,所述数据库内容包含已知恶意代码的执行特征。
6.如权利要求1、2、3、或5所述的方法,其特征在于,当确定出所述程序代码为恶意代码后,还包括阻止执行所述程序代码的读写请求转义生成的指令。
7.—种恶意代码的检测方法,其特征在于,包括接收宿主机发来的程序代码,在预先构建的用于模拟虚拟机监视器环境的第一沙箱中执行所述程序代码,获得执行结束后所述第一沙箱的安全状态报告;和/或在预先构建的用于模拟虚拟机环境的第二沙箱中执行所述程序代码,获得执行结束后所述第二沙箱的安全状态报告;根据所述安全状态报告中预设参数的参数值、以及预设的判别规则的集合,判定所述程序代码是否为恶意代码,所述判别规则中包含至少一个所述预设参数的阈值判断范围;将判定结果发送给所述宿主机。
8.如权利要求7所述的方法,其特征在于,当判定所述程序代码是否为恶意代码后,还包括若判定所述程序代码为恶意代码,则将该程序代码的标识和对应的执行特征添加到数据库的黑名单中;所述将判断结果发送给所述宿主机之后,还包括接收宿主机发来的程序代码的标识和设定时间段内该程序代码的标识被检测到的次数;根据预定的筛选规则、以及所述程序代码的标识和所述次数,从所述数据库中筛选出部分内容,所述筛选规则包括统计指标判断阈值,所述统计指标的值根据所述程序代码的标识和所述次数确定出;将筛选出的数据库的内容发送给宿主机,以便宿主机更新本地数据库。
9.一种宿主机,包括虚拟机监视器和至少一个虚拟机,其特征在于,还包括恶意代码的检测装置,其中所述恶意代码的检测装置,用于在宿主机的虚拟机监视器中监控指令的执行情况,所述指令是该宿主机的虚拟机中执行程序代码时产生的读写请求被下发至虚拟机监视器时, 转义生成的;根据所述指令的执行情况,获得所述程序代码的执行特征;将获取单元获得的所述执行特征与预先存储的已知恶意代码的执行特征进行比对,并在比对结果不相符时确定所述程序代码为恶意代码。
10.一种恶意代码的检测装置,其特征在于,包括监控单元,用于在宿主机的虚拟机监视器中监控指令的执行情况,所述指令是该宿主机的虚拟机中执行程序代码时产生的读写请求被下发至虚拟机监视器时,转义生成的;获取单元,用于根据所述指令的执行情况,获得所述程序代码的执行特征;确定单元,用于将获取单元获得的所述执行特征与预先存储的已知恶意代码的执行特征进行比对,并在比对结果相符时确定所述程序代码为恶意代码。
11.如权利要求10所述的装置,其特征在于,还包括第一发送单元,用于在确定单元的比对结果不相符时,将获得的所述执行特征发送给集群查杀设备,或者将所述程序代码发送给集群查杀设备;第一接收单元,用于接收所述集群查杀设备根据第一发送单元发送的所述执行特征, 返回的所述程序代码是否为恶意代码的判定结果,所述判定结果是所述集群查杀设备将所述特征与该集群查杀设备数据库中已知恶意代码的执行特征进行比对确定出的;或者接收所述集群查杀设备根据第一发送单元发送的程序代码,返回的所述程序代码是否为恶意代码的判定结果,所述判定结果是所述集群查杀设备利用沙箱技术执行所述程序代码后,根据执行结果确定出的。
12.如权利要求10、或11所述的装置,其特征在于,还包括记录统计单元,用于在确定单元确定出所述程序代码为恶意代码后,记录该程序代码的标识,并根据记录结果统计设定时间段内该程序代码被检测到的次数;第二发送单元,用于将所述程序代码的标识及所述次数发送给集群查杀设备; 第二接收单元,用于接收集群查杀设备返回的数据库内容,并根据接收到数据库内容替换本地数据库的内容,所述接收到的数据库内容是所述集群查杀设备根据所述程序代码的标识及所述次数确定出的,所述数据库内容包含已知恶意代码的执行特征。
13.—种恶意代码的检测装置,其特征在于,包括 第一接收单元,用于接收宿主机发来的程序代码;执行单元,用于在预先构建的用于模拟虚拟机监视器环境的第一沙箱中执行所述程序代码,获得执行结束后所述第一沙箱的安全状态报告;和/或在预先构建的用于模拟虚拟机环境的第二沙箱中执行所述程序代码,获得执行结束后所述第二沙箱的安全状态报告;判定单元,用于根据所述安全状态报告中预设参数的参数值、以及预设的判别规则的集合,判定所述程序代码是否为恶意代码,所述判别规则中包含至少一个所述预设参数的阈值判断范围;第一发送单元,用于将判定单元的判定结果发送给所述宿主机。
14.如权利要求13所述的设备,其特征在于,还包括第一更新单元,用于在判定单元判定所述程序代码为恶意代码时,则将该程序代码的标识和对应的执行特征添加到数据库的黑名单中;第二接收单元,用于接收宿主机发来的程序代码的标识和设定时间段内该程序代码的标识被检测到的次数;筛选单元,用于根据第二接收单元接收的所述程序代码的标识、所述次数、以及所述集群查杀设备中预定的筛选规则,从所述数据库中筛选出部分内容,所述筛选规则包括统计指标判断阈值,所述统计指标的值根据所述程序代码的标识和所述次数确定出;第二发送单元,用于将所述筛选单元筛选出的内容发送给宿主机,以便宿主机更新本地数据库。
15.一种恶意代码的检测系统,其特征在于,包括至少一个宿主机和至少一个集群查杀设备,其中所述宿主机,用于在该宿主机的虚拟机监视器中捕获指令,所述执行指令是该宿主机的虚拟机中执行程序代码时产生的读写请求被下发至虚拟机监视器时,转义生成的;根据所述指令获得所述程序代码的执行特征;将获得的所述执行特征与本地数据库黑名单中的已知恶意代码的执行特征进行比对,若比对结果相符,则确定所述程序代码为恶意代码;若比对结果不相符,则将所述程序代码发送给集群查杀设备,并接收所述集群查杀设备返回的所述程序代码是否为恶意代码的判定结果;所述集群查杀设备,用于接收宿主机发来的程序代码,在预先构建的用于模拟虚拟机监视器环境的第一沙箱中执行所述程序代码,获得执行结束后所述第一沙箱的安全状态报告;和/或在预先构建的用于模拟虚拟机环境的第二沙箱中执行所述程序代码,获得执行结束后所述第二沙箱的安全状态报告;根据所述安全状态报告中预设参数的参数值、以及预设的判别规则的集合,判定所述程序代码是否为恶意代码,所述判别规则中包含至少一个所述预设参数的参数值范围;将判定结果发送给所述宿主机。
全文摘要
本发明公开了一种恶意代码的检测方法、系统及相关装置,用以解决现有技术中检测效率低、占用资源较多的问题。该方法包括在宿主机的虚拟机监视器中监控指令的执行情况,所述指令是该宿主机的虚拟机中执行程序代码时产生的读写请求被下发至虚拟机监视器时,转义生成的;根据所述指令的执行情况,获得所述程序代码的执行特征;将获得的所述执行特征与预先存储的已知恶意代码的执行特征进行比对,在比对结果相符时确定所述程序代码为恶意代码。提高了检测效率,节约了在各虚拟机中重复安装杀毒软件所占用的宿主机的存储资源、以及各虚拟机分别运行杀毒软件所占用的宿主机的处理资源。
文档编号G06F21/00GK102254120SQ201110226659
公开日2011年11月23日 申请日期2011年8月9日 优先权日2011年8月9日
发明者云朋, 王鹏 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1