Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD, SYSTEM AND RELEVANT DEVICE FOR DETECTING MALICIOUS CODES
Document Type and Number:
WIPO Patent Application WO/2013/020400
Kind Code:
A1
Abstract:
Disclosed are a method, a system and a relevant device for detecting malicious codes, which are used for solving the problems of low detection efficiency and large source occupation in the prior art. The method comprises: monitoring an execution condition of an instruction in a virtual machine monitor of a host, the instruction being formed by performing escape on a read-write request formed during the execution of program codes in virtual machines of the host when delivered to the virtual machine monitor; acquiring execution characteristics of the program codes according to the execution condition of the instruction; and comparing the acquired execution characteristics with execution characteristics of pre-stored known malicious codes, and determining that the program codes are malicious codes when the acquired execution characteristics conform to the execution characteristics of the pre-stored known malicious codes. The detection efficiency is improved, and storage resources, which are occupied by antivirus software installed repeatedly in each virtual machine, of the host and processing resources, which are occupied by running the antivirus software by each virtual machine, of the host are saved.

Inventors:
WANG PENG (CN)
YUN PENG (CN)
Application Number:
PCT/CN2012/075380
Publication Date:
February 14, 2013
Filing Date:
May 11, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
WANG PENG (CN)
YUN PENG (CN)
International Classes:
G06F21/56; G06F21/00
Foreign References:
CN101866408A2010-10-20
CN1961272A2007-05-09
US20080222729A12008-09-11
US7779472B12010-08-17
CN102254120A2011-11-23
CN101373502A2009-02-25
Other References:
See also references of EP 2725510A4
None
Download PDF:
Claims:
1、 一种恶意代码的检测方法, 其特征在于, 包括:

在宿主机的虚拟机监视器中监控指令的执行情况, 所述指令是该宿主机 的虚拟机中执行程序代码时产生的读写请求被下发至虚拟机监视器时, 转义 生成的;

根据所述指令的执行情况, 获得所述程序代码的执行特征;

将获得的所述执行特征与预先存储的已知恶意代码的执行特征进行比 对, 在比对结果相符时确定所述程序代码为恶意代码。

2、 如权利要求 1所述的方法, 其特征在于, 所述执行特征包括以下任意 一个、 或多个的组合: 执行该程序代码时产生的读写访问请求转义生成的指 令的内容、 所述指令在所述虚拟机监视器中的行为特征、 或所述指令访问硬 件的行为特征;

当所述执行特征包括转义生成的指令的内容时, 所述根据所述指令的执 行情况, 获得所述程序代码的执行特征, 具体为: 通过读取监控到的指令的 内容, 获得转义生成的指令的内容;

当所述执行特征包括所述指令在所述虚拟机监视器中的行为特征时, 所 述根据所述指令的执行情况, 获得所述程序代码的执行特征, 具体为: 通过 监控虚拟机监视器中预定应用程序编程接口 API被所述指令调用时传入的参 数, 获得所述指令在所述虚拟机监视器中的行为特征;

当所述执行特征包括所述指令访问硬件的行为特征时, 所述根据所述指 令的执行情况, 获得所述程序代码的执行特征, 具体为: 通过监控虚拟机监 视器中预定 API被所述指令调用时传入的参数、 或者监控所述指令执行过程 中宿主机上存储资源或处理资源使用情况, 获得所述指令访问硬件的行为特 征。

3、 如权利要求 2所述的方法, 其特征在于, 所述指令在所述虚拟机监视 器中的行为特征包括以下任意一个、 或多个的组合: 修改所述虚拟机监视器 中的系统文件的内容、 位置或参数信息;

所述指令访问硬件的行为特征包括以下任意一个、 或多个的组合: 访问 存储空间超过第一设定阈值的持续时间、 占用 CPU比例超过第二设定阈值的 持续时间、 或是否读写设定范围的输入输出接口。

4、 如权利要求 1至 3任一所述的方法, 其特征在于, 所述将获得的所述 执行特征与预先存储的已知恶意代码的执行特征进行比对, 比对结果不相符 之后, 还包括:

将获得的所述执行特征发送给集群查杀设备, 并接收所述集群查杀设备 返回的所述程序代码是否为恶意代码的判定结果, 所述判定结果是所述集群 查杀设备将所述特征与该集群查杀设备数据库中已知恶意代码的执行特征进 行比对确定出的, 或者

将所述程序代码发送给集群查杀设备, 并接收所述集群查杀设备返回的 所述程序代码是否为恶意代码的判定结果, 所述判定结果是所述集群查杀设 备利用沙箱技术执行所述程序代码后, 根据执行结果确定出的。

5、 如权利要求 1至 3任一所述的方法, 其特征在于, 所述将获得的所述 执行特征与预先存储的已知恶意代码的执行特征进行比对, 比对结果不相符 之后, 还包括:

将获得的所述执行特征发送给集群查杀设备, 并接收所述集群查杀设备 返回的所述程序代码是否为恶意代码的判定结果、 或者用于表明程序代码无 法识别的标识, 所述判定结果、 或者用于表明程序代码无法识别的标识是所 述集群查杀设备将所述特征与该集群查杀设备数据库中已知恶意代码, 和 /或 已知正常代码的执行特征进行比对确定出的;

若接收到用于表明程序代码无法识别的标识, 则将所述程序代码发送给 集群查杀设备, 接收所述集群查杀设备返回的所述程序代码是否为恶意代码 的判定结果, 所述判定结果是所述集群查杀设备利用沙箱技术执行所述程序 代码后, 根据执行结果确定出的。

6、 如权利要求 1所述的方法, 其特征在于, 在确定出所述程序代码为恶 意代码后, 还包括:

记录该程序代码的标识, 并根据记录结果统计设定时间段内该程序代码 被检测到的次数;

将所述程序代码的标识及所述次数发送给集群查杀设备;

接收集群查杀设备返回的数据库内容, 并根据接收到数据库内容替换本 地数据库的内容, 所述接收到的数据库内容是所述集群查杀设备根据所述程 序代码的标识及所述次数从所述集群查杀设备的数据库中筛选出的, 所述数 据库内容包含已知恶意代码的执行特征。

7、 如权利要求 1、 2、 3、 或 6所述的方法, 其特征在于, 当确定出所述 程序代码为恶意代码后, 还包括: 阻止执行所述程序代码的读写请求转义生 成的指令。

8、 一种恶意代码的检测方法, 其特征在于, 包括:

接收宿主机发来的程序代码, 在预先构建的用于模拟虚拟机监视器环境 的第一沙箱中执行所述程序代码, 获得执行结束后所述第一沙箱的安全状态 报告; 和 /或在预先构建的用于模拟虚拟机环境的第二沙箱中执行所述程序代 码, 获得执行结束后所述第二沙箱的安全状态报告;

根据所述安全状态报告中预设参数的参数值、 以及预设的判别规则的集 合, 判定所述程序代码是否为恶意代码, 所述判别规则中包含至少一个所述 预设参数的阈值判断范围;

将判定结果发送给所述宿主机。

9、 如权利要求 8所述的方法, 其特征在于, 当判定所述程序代码是否为 恶意代码后, 还包括:

若判定所述程序代码为恶意代码, 则将该程序代码的标识和对应的执行 特征添加到数据库的黑名单中;

所述将判断结果发送给所述宿主机之后, 还包括:

接收宿主机发来的程序代码的标识和设定时间段内该程序代码的标识被 检测到的次数; 根据预定的 选规则、 以及所述程序代码的标识和所述次数, 从所述数 据库中筛选出部分内容, 所述筛选规则包括统计指标判断阈值, 所述统计指 标的值根据所述程序代码的标识和所述次数确定出;

将筛选出的数据库的内容发送给宿主机, 以便宿主机更新本地数据库。

10、 如权利要求 9所述的方法, 其特征在于, 所述根据预定的筛选规则、 以及所述程序代码的标识和所述次数, 从所述数据库中筛选出部分内容之前, 还包括: 码的标识、 及该程序代码的执行特征, 所述更新规则包括至少一个所述统计 指标判断阈值。

11、 一种恶意代码的检测装置, 其特征在于, 包括:

监控单元, 用于在宿主机的虚拟机监视器中监控指令的执行情况, 所述 指令是该宿主机的虚拟机中执行程序代码时产生的读写请求被下发至虚拟机 监视器时, 转义生成的;

获取单元, 用于根据所述指令的执行情况, 获得所述程序代码的执行特 征; 代码的执行特征进行比对, 并在比对结果相符时确定所述程序代码为恶意代 码。

12、 如权利要求 11所述的装置, 其特征在于, 还包括:

第一发送单元, 用于在确定单元的比对结果不相符时, 将获得的所述执 行特征发送给集群查杀设备, 或者将所述程序代码发送给集群查杀设备; 第一接收单元, 用于接收所述集群查杀设备根据第一发送单元发送的所 述执行特征, 返回的所述程序代码是否为恶意代码的判定结果, 所述判定结 果是所述集群查杀设备将所述特征与该集群查杀设备数据库中已知恶意代码 的执行特征进行比对确定出的; 或者

接收所述集群查杀设备根据第一发送单元发送的程序代码, 返回的所述 程序代码是否为恶意代码的判定结果, 所述判定结果是所述集群查杀设备利 用沙箱技术执行所述程序代码后, 根据执行结果确定出的。

13、 如权利要求 11、 或 12所述的装置, 其特征在于, 还包括: 记录统计单元, 用于在确定单元确定出所述程序代码为恶意代码后, 记 录该程序代码的标识, 并根据记录结果统计设定时间段内该程序代码被检测 到的次数; 设备;

第二接收单元, 用于接收集群查杀设备返回的数据库内容, 并根据接收 到数据库内容替换本地数据库的内容, 所述接收到的数据库内容是所述集群 含已知恶意代码的执行特征。

14、 如权利要求 12所述的装置, 其特征在于, 所述第一发送单元包括: 通知子单元用于通过向虚拟机中的查杀代理发送通知消息, 来指示虚拟 机将所述程序代码发送给集群查杀设备。

15、 如权利要求 12所述的装置, 其特征在于, 所述第一发送单元包括: 第一发送子单元, 用于向虚拟机中的查杀代理发送请求消息;

第一接收子单元, 用于接收虚拟机中的查杀代理根据所述请求消息, 返 回的响应消息;

第二发送子单元, 用于从所述响应消息中获得程序代码, 并将获得的程 序代码发送给集群查杀设备。

16、 一种恶意代码的检测装置, 其特征在于, 包括:

第一接收单元, 用于接收宿主机发来的程序代码;

执行单元, 用于在预先构建的用于模拟虚拟机监视器环境的第一沙箱中 执行所述程序代码, 获得执行结束后所述第一沙箱的安全状态报告; 和 /或在 预先构建的用于模拟虚拟机环境的第二沙箱中执行所述程序代码, 获得执行 结束后所述第二沙箱的安全状态报告; 的判别规则的集合, 判定所述程序代码是否为恶意代码, 所述判别规则中包 含至少一个所述预设参数的阈值判断范围;

第一发送单元, 用于将判定单元的判定结果发送给所述宿主机。

17、 如权利要求 16所述的装置, 其特征在于, 还包括:

数据库, 用于保存已知恶意代码的标识及对应的执行特征;

第一更新单元, 用于在判定单元判定所述程序代码为恶意代码时, 则将 该程序代码的标识和对应的执行特征添加到数据库的黑名单中;

第二接收单元, 用于接收宿主机发来的程序代码的标识和设定时间段内 该程序代码的标识被检测到的次数;

筛选单元, 用于根据第二接收单元接收的所述程序代码的标识、 所述次 数、 以及所述集群查杀设备中预定的筛选规则, 从所述数据库中筛选出部分 内容, 所述 选规则包括统计指标判断阈值, 所述统计指标的值根据所述程 序代码的标识和所述次数确定出;

第二发送单元, 用于将所述筛选单元筛选出的内容发送给宿主机, 以便 宿主机更新本地数据库。

18、 一种恶意代码的检测系统, 其特征在于, 包括至少一个宿主机和至 少一个集群查杀设备, 所述宿主机中包括如权利要求 11至 15任一所述的恶 意代码的检测装置, 所述集群查杀设备中包括如权利要求 16或 17所述的恶 意代码的检测装置。

Description:
恶意代码的检测方法、 系统及相关装置 本申请要求于 2011 年 8 月 9 日提交中国专利局、 申请号为 201110226659.5、 发明名称为 "恶意代码的检测方法、 系统及相关装置" 的中国专利申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域

本发明涉及计算机安全技术领域, 尤其涉及一种恶意代码的检测方法、 一种宿主机、 一种恶意代码的检测装置和一种恶意代码的检 测系统。 背景技术

硬件虚拟化技术被广泛应用于软件测试、 并行计算等领域。 硬件虚拟化 技术在一台物理主机上虚拟出一台或多台虚拟 机, 从而使得几个甚至几十个 虚拟机可以共用一个物理主机的硬件资源, 该物理主机也被称为宿主机。

云计算将各个终端设备的数据处理任务集中交 给网络来执行, 以便由网 络向使用多种不同终端设备的用户提供数据服 务, 从而克服终端设备的差异 性。 云计算中网络侧的分布式计算成为硬件虚拟化 技术的一个新的重要应用 场景。 由于同一宿主机上的各个虚拟机之间可以不通 过网络设备, 而是仅通 过公共的宿主机产生数据交互, 因此采用硬件虚拟化技术实现云计算时, 一 个感染病毒的虚拟机很容易通过宿主机感染其 他与其同在一个宿主机上的虚 拟机。 因此云计算容易成为计算机病毒和网络攻击的 对象。

针对如何在以上场景中检测包括病毒在内的恶 意代码(Malware ), 现有 技术提出: 在同一个宿主机的各个虚拟机上分别安装杀毒 软件, 利用每个虚 拟机上所安装的杀毒软件对该虚拟机上的恶意 代码进行查杀。

发明人在实现本发明的过程中, 发现现有技术存在以下缺陷: 恶意代码 执行时实际发生作用的场所是宿主机的内存、 CPU等物理硬件, 并不是逻辑 上的虚拟机中。 但现有方案要求在同一宿主机上的所有虚拟机 上都分别安装 杀毒软件, 并在虚拟机上执行恶意代码检测, 因此使用该方案检测恶意代码 存在效率低下、 占用宿主机较多存储资源和处理资源的问题。 发明内容

本发明实施例提供一种恶意代码的检测方法, 用以解决现有技术中检测效 率低、 占用资源较多的问题。

对应地,本发明实施例还提供了一种宿主机、 一种恶意代码的检测装置和 一种恶意代码的检测系统。

本发明实施例提供的技术方案如下:

一种恶意代码的检测方法, 包括:

在宿主机的虚拟机监视器中监控指令的执行情 况, 所述指令是该宿主机 的虚拟机中执行程序代码时产生的读写请求被 下发至虚拟机监视器时, 转义 生成的;

根据所述指令的执行情况, 获得所述程序代码的执行特征;

将获得的所述执行特征与预先存储的已知恶意 代码的执行特征进行比 对, 在比对结果相符时确定所述程序代码为恶意代 码。

一种恶意代码的检测方法, 包括:

接收宿主机发来的程序代码, 在预先构建的用于模拟虚拟机监视器环境 的第一沙箱中执行所述程序代码, 获得执行结束后所述第一沙箱的安全状态 报告; 和 /或在预先构建的用于模拟虚拟机环境的第二 箱中执行所述程序代 码, 获得执行结束后所述第二沙箱的安全状态报告 ;

根据所述安全状态报告中预设参数的参数值、 以及预设的判别规则的集 合, 判定所述程序代码是否为恶意代码, 所述判别规则中包含至少一个所述 预设参数的阈值判断范围;

将判定结果发送给所述宿主机。

一种宿主机, 包括虚拟机监视器和至少一个虚拟机, 还包括恶意代码的 检测装置, 其中: 所述恶意代码的检测装置, 用于在宿主机的虚拟机监视器中监控指令的 执行情况, 所述指令是该宿主机的虚拟机中执行程序代码 时产生的读写请求 被下发至虚拟机监视器时, 转义生成的; 根据所述指令的执行情况, 获得所 恶意代码的执行特征进行比对, 并在比对结果相符时确定所述程序代码为恶 意代码。

一种恶意代码的检测装置, 包括:

监控单元, 用于在宿主机的虚拟机监视器中监控指令的执 行情况, 所述 指令是该宿主机的虚拟机中执行程序代码时产 生的读写请求被下发至虚拟机 监视器时, 转义生成的;

获取单元, 用于根据所述指令的执行情况, 获得所述程序代码的执行特 征; 代码的执行特征进行比对, 并在比对结果相符时确定所述程序代码为恶意 代 码。

一种恶意代码的检测装置, 包括:

第一接收单元, 用于接收宿主机发来的程序代码;

执行单元, 用于在预先构建的用于模拟虚拟机监视器环境 的第一沙箱中 执行所述程序代码, 获得执行结束后所述第一沙箱的安全状态报告 ; 和 /或在 预先构建的用于模拟虚拟机环境的第二沙箱中 执行所述程序代码, 获得执行 结束后所述第二沙箱的安全状态报告; 的判别规则的集合, 判定所述程序代码是否为恶意代码, 所述判别规则中包 含至少一个所述预设参数的阈值判断范围;

第一发送单元, 用于将判定单元的判定结果发送给所述宿主机 。

一种恶意代码的检测系统, 包括至少一个宿主机和至少一个集群查杀设 备, 其中: 所述宿主机, 用于在该宿主机的虚拟机监视器中捕获指令, 所述执行指 令是该宿主机的虚拟机中执行程序代码时产生 的读写请求被下发至虚拟机监 视器时, 转义生成的; 根据所述指令获得所述程序代码的执行特征; 将获得 的所述执行特征与本地数据库黑名单中的已知 恶意代码的执行特征进行比 对, 若比对结果相符, 则确定所述程序代码为恶意代码; 若比对结果不相符, 则将所述程序代码发送给集群查杀设备, 并接收所述集群查杀设备返回的所 述程序代码是否为恶意代码的判定结果;

所述集群查杀设备, 用于接收宿主机发来的程序代码, 在预先构建的用 于模拟虚拟机监视器环境的第一沙箱中执行所 述程序代码, 获得执行结束后 所述第一沙箱的安全状态报告; 和 /或在预先构建的用于模拟虚拟机环境的第 二沙箱中执行所述程序代码, 获得执行结束后所述第二沙箱的安全状态报告 ; 根据所述安全状态报告中预设参数的参数值、 以及预设的判别规则的集合, 判定所述程序代码是否为恶意代码, 所述判别规则中包含至少一个所述预设 参数的参数值范围; 将判定结果发送给所述宿主机。

本发明实施例提供的恶意代码的检测方法在宿 主机的虚拟机监视器中监 控转义生成的指令, 并根据指令获得所述程序代码的执行特征; 将获得的执 行特征与预先存储的已知恶意代码的执行特征 进行比对, 并根据比对结果确 定所述程序代码是否为恶意代码。 提高了检测效率, 节约了在各虚拟机中重 复安装杀毒软件所占用的宿主机的存储资源、 以及各虚拟机分别运行杀毒软 件所占用的宿主机的处理资源。 附图说明

为了更清楚地说明本发明实施例或现有技术中 的技术方案, 下面将对实 施例或现有技术描述中所需要使用的附图作一 筒单地介绍, 显而易见地, 下 面描述中的附图是本发明的一些实施例, 对于本领域普通技术人员来讲, 在 不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。

图 1为本实施例中硬件虚拟化场景下的宿主机的 构原理示意图; 图 2a为本发明实施例一提供的恶意代码的检测方 的流程图; 图 2b为本发明实施例一中获得程序代码执行特征 实例的示意图; 图 3为本发明实施例二提供的恶意代码判定方法 流程图;

图 4a为本发明实施例三提供的恶意代码判定方法 流程图;

图 4b为本发明实施例三提供的另一种恶意代码判 方法的流程图; 图 6a为本发明实施例六提供的恶意代码的检测方 的流程图; 图 6b为本发明实施例六提供的另一种恶意代码的 测方法的流程图; 图 7 为本发明实施例七提供的集群查杀设备上数据 库的更新方法的流程 图;

图 8为本发明实施例七提供的集群查杀设备中数 库的架构示意图; 图 9 为本发明实施例七提供的集群查杀设备上数据 库的更新方法的详细 流程图;

图 10为本发明实施例八提供的宿主机设备的结构 意图;

图 11为本发明实施例八提供的恶意代码的检测装 的结构示意图; 图 12 为本发明实施例八提供的另一种恶意代码的检 测装置的结构示意 图;

图 13为本发明实施例九提供的一种集群查杀设备 结构示意图; 图 14为本发明实施例十提供的一种恶意代码的检 系统的结构示意图。 具体实施方式

由于恶意代码在虚拟机上的执行时, 无论是恶意代码读写宿主机存储器 的操作、 还是访问 CPU的操作都由虚拟化平台转发给宿主机的物理 硬件, 所 以恶意代码执行时实际发生作用的场所是宿主 机的物理硬件, 并不是逻辑上 的虚拟机。 而现有虚拟机恶意代码检测方案要求在同一宿 主机上的所有虚拟 机上都分别安装杀毒软件执行恶意代码检测, 因此现有技术存在着检测效率 低下、 占用宿主机资源较多的问题。 另外, 在升级杀毒软件时要保证同步升级所有虚拟机 上的杀毒软件, 否 则杀毒软件版本较低的虚拟机仍然可能被感染 恶意代码, 因此现有技术还存 在着管理更新维护较为复杂的问题。

本发明实施例一至实施例五从宿主机的角度对 恶意代码的检测方法进行 介绍。 实施例六、 实施例七从集群查杀设备的角度对恶意代码的 检测方法进 行介绍。

下面结合各个附图对本发明实施例技术方案的 主要实现原理、 具体实施 方式及其对应能够达到的有益效果进行详细的 阐述。

实施例一

附图 1 为本实施例中硬件虚拟化场景下的宿主机的结 构原理示意图。 为 了便于描述, 这里将宿主机抽象为三层逻辑架构, 分别为上层的各个虚拟机 VM!~VM n , 中间层的虚拟机监视器(hypervisor )和底层硬件。 底层硬件包括 中央处理器(CPU, Center Processing Unit )、 内存、 网络适配器、 磁盘等等。

请参照附图 2a, 对本发明实施例提供的恶意代码的检测方法的 流程进行 详细描述:

步骤 201 , 在宿主机的虚拟机监视器中监控指令的执行情 况;

具体地, 当虚拟机上执行程序代码时, 对各种物理硬件设备的读写访问 请求被发送到虚拟机监视器时, 会被转义为所述虚拟机所在的宿主机虚拟机 监视器中的执行指令, 并通过虚拟机监视器来真正地访问物理硬件设 备。

其中, 转义操作是现有虚拟机监视器本身的功能, 转义操作将虚拟机对 虚拟硬件设备的访问转换成虚拟机监视器对真 正物理硬件设备的访问, 是虚 拟机中的程序代码在执行过程中不可缺少的一 个环节, 其详细的技术细节在 这里不再赘述。

需要说明的是, 本发明实施例在宿主机的虚拟机监视器中所监 控的指令 的执行情况, 是指虚拟机监视器转义后的指令的执行情况, 而并非转义前虚 拟机中程序代码的执行情况。

步骤 202, 根据所述指令的执行情况, 获得所述程序代码的执行特征; 其中, 程序代码的执行特征包括: 执行该程序代码时产生的读写访问请 求转义生成的指令的内容、 所述指令在所述虚拟机监视器中的行为特征、 或 所述指令访问物理硬件设备的行为特征。

其中, 所述指令在虚拟机监视器中的行为特征包括: 该指令所要修改的 该虚拟机监视器中的系统文件的内容、 存储位置、 或者文件参数信息等, 文 件参数信息包括系统文件的名称标识、 生成时间、 版本号、 访问权限等等。

所述指令访问物理硬件设备的行为特征, 包括: 访问内存、 硬盘、 闪存 等存储设备的存储空间超过第一设定阈值的情 况所持续时间、 占用 CPU比例 超过第二设定阈值的持续时间、 是否读写设定范围的输入输出接口等等。 可 选地, 所述第一设定阈值可以为预先根据已知恶意代 码转义后的指令访问存 储设备的情况统计得出的, 所述第二设定阈值可以为预先根据已知恶意代 码 转义后的指令执行时占用 CPU的情况统计得出的。

下面将结合附图 2b所示的实例, 对获得所述程序代码的执行特征的具体 过程进行介绍。

虚拟机中的程序代码 al.exe在执行时所产生的读写访问请求集被转义 后 的指令集为 al ', 其中包含 cmd0~cmd9总共 10个指令;

通过读取监控到的指令的内容, 可以获得执行所述程序代码时产生的读 写请求所转义生成的指令的内容(如表 1所示), 可选地, 可以只读取其中部 分指令的内容, 例如读取 cmdl 的内容为 "0xl95fd3" , 读取 cmd6的内容为 "0xl3457e'O

表 1

指令标识 指令内容

cmdO 0xl9256d

cmdl 0xl95fd3

cmd2 0x193546

cmd3 0x45678f

cmd4 cmd5

cmd6 0xl3457e

cmd7

cmd8

cmd9 可选地, 通过以下方式可以获得转义生成的指令在所述 虚拟机监视器中 的行为特征或所述指令访问物理硬件设备的行 为特征:

监控虚拟机监视器中预定应用程序编程接口 ( API , Application Programming Interface ), 例如文件系统 API、 Input/Output操作 API等等, 是 否被转义生成的指令所调用, 若被转义生成的指令 cmdl~cmdlO所调用, 则 根据指令调用所述 API时传入的参数, 获得转义生成的指令在所述虚拟机监 视器中的行为特征或所述指令访问物理硬件设 备的行为特征。 所述传入的参 数包括文件路径、 文件标识等文件参数信息, 或者所要读取或写入的接口的 标识、 读取或写入文件或接口的数据等等。 例如根据 cmd2调用文件系统 API 时传入的参数可以得到, cmd2要修改路径 boot/下的名称为 xen.gz的系统文 件的内容。

此外, 也可以通过监控预定的 API获知所述指令执行过程中, 宿主机上 存储资源或处理资源使用情况, 从而进一步获得所述指令访问硬件的行为特 征, 如存储设备的存储空间的大小、 及占用 CPU的比例。

步骤 203 ,将获得的所述执行特征与预先存储的已知恶 代码的执行特征 进行比对, 并根据比对结果确定所述程序代码是否为恶意 代码。

其中, 在设置具体的比对方式时可以根据安全等级的 需求、 宿主机的处 理性能等因素综合考虑, 例如, 如果对安全等级的需求较高, 可以设置只要 获得的执行特征中存在至少一个执行特征与已 知恶意代码的执行特征一致, 就说明比对结果相符, 判定所述程序代码为恶意代码, 如只要程序代码的标 识与已知恶意代码的标识一致, 就判定所述程序代码为恶意代码; 或者如果 宿主机的处理性能较低, 则可以只比对部分容易获得的执行特征是否一 致, 若一致则说明比对结果相符, 否则比对结果不相符。 如只比对程序代码的标 识、 数字签名、 发布者标识, 省略比对相对获取难度较大的执行特征, 如上 述访问物理硬件设备的行为特征等。 在这里不再——列举。

其中, 比对流程包括但不限于:

流程一: 宿主机的本地数据库中存储黑名单, 黑名单中包含已知恶意代 码的执行特征。 意代码的执行特征进行比对; 若比对结果相符, 确定所述程序代码为恶意代 码, 否则确定所述程序代码为非恶意代码。

例如, 黑名单中包含已知恶意代码 malwarel .exe、 malware2.exe 和 malware3.exe的执行特征, 宿主机将上述获得的程序代码 al.exe的执行特征 与黑名单中 3个恶意代码的执行特征逐一进行比对, 以程序代码 al.exe的执 行特征与 malwarel.exe的比对为例:

已知恶意代码 malwarel.exe的执行特征包括:

( 1 )转义生成的指令集 malwarel'中 cmdl的内容为 "0xl95fd3" , cmd6 的内容为 "0xl3457e" ,

( 2 ) 转义生成的指令在虚拟机监视器中的行为特征 为 "修改路径 boot/ 下的名称为 xen.gz的系统文件的内容"。

将程序代码 al.exe执行时转义生成的指令集 al,中 cmdl、 cmd6的内容与 指令集 malwarel '中 cmdl、 cmd6的内容进行比对、 并将指令集 al,中的指令 在所述虚拟机监视器中的行为特征与 malwarel'中的指令在所述虚拟机监视器 中的行为特征进行比对; 比对结果为 cmdl、 cmd6的内容一致, 且指令集 al, 中的指令在所述虚拟机监视器中的行为特征与 mall '中的指令在所述虚拟机 监视器中的行为特征均为 "修改路径 boot/下的名称为 xen.gz的系统文件的内 容"。 故比对结果为程序代码 al.exe与恶意代码 mall.exe的执行特征相符, 说 明程序代码 al.exe为恶意代码。 可选地, 所述本地数据库可以定时更新。

可选地, 在比对结果不相符时, 还可以提醒用户是否运行所述程序代码。 可选地, 上述步骤 201~步骤 203可以是宿主机中的恶意代码的检测装置 来执行的。

本发明实施例提供的恶意代码的检测方法在宿 主机的虚拟机监视器中监 控转义生成的指令, 并根据指令获得所述程序代码的执行特征; 将获得的执 行特征与预先存储的已知恶意代码的执行特征 进行比对, 并根据比对结果确 定所述程序代码是否为恶意代码。 无需在每个虚拟机中都安装杀毒软件, 从 而提高了检测效率, 减少了重复安装杀毒软件所占用的宿主机的存 储资源、 以及各虚拟机分别运行杀毒软件所占用的宿主 机的处理资源。 实施例二

为了提高恶意代码检测的准确性, 本实施例提供了实施例一中步骤 203 的另一种确定所述程序代码是否为恶意代码的 流程, 宿主机的本地数据库中 还存储有白名单, 宿主机根据黑白名单的比对结果来确定所述程 序代码是否 为恶意代码, 并在根据本地数据库比对结果无法确定所述程 序代码是否为恶 意代码时, 将执行特征或者程序代码发送给集群查杀设备 进行判定, 并接收 集群查杀设备返回的判定结果, 具体如附图 3所示。

在宿主机的本地数据库中不仅存储黑名单, 还存储白名单, 白名单中包 含已知正常代码的执行特征。 中的已知恶意代码的执行特征进行第一次比对 , 若比对结果相符, 则确定所 述程序代码为恶意代码, 否则进入步骤 302;

本实施例中的具体的比对方式参照实施例一。

步骤 302, 若第一次比对结果不相符, 将获得的所述执行特征与本地数据 库白名单中的已知正常代码的执行特征进行第 二次比对;

若第二次比对结果相符, 则确定所述程序代码为非恶意代码; 若第二次比对结果不相符, 则进入步骤 303a或步骤 303b;

步骤 303a, 宿主机将获得的所述执行特征发送给集群查杀 设备, 进入 304a。

步骤 304a, 宿主机接收所述集群查杀设备返回的所述程序 代码是否为恶 意代码的判定结果, 所述判定结果是所述集群查杀设备将所述特征 与该集群 查杀设备扩展数据库中已知恶意代码的执行特 征进行比对确定出的。

与宿主机相比, 集群查杀设备可以利用分布式计算技术的计算 性能优势、 或分布式存储的存储容量优势, 将宿主机发来的执行特征与扩展数据库黑名 单中已知恶意代码的执行特征进行比对, 从而得到判定结果, 具体比对的方 式与宿主机相类似, 在这里不再重复介绍。

步骤 303b,宿主机将所述程序代码发送给集群查杀设 ,进入步骤 304b。 步骤 304b, 宿主机接收所述集群查杀设备返回的所述程序 代码是否为恶 意代码的判定结果, 所述判定结果是所述集群查杀设备利用沙箱技 术或者其 他类似沙箱的技术执行所述程序代码后, 根据执行结果确定出的。

沙箱 (或称沙盘)技术是一种现有虚拟化安全隔离 技术, 该技术按照安 全策略限制程序行为的执行环境, 在沙箱中运行的代码不能够修改或查看用 户系统。 集群查杀设备采用沙箱技术模拟运行可疑代码 , 根据运行结果给出 可疑代码是否为恶意代码的判定结果。

可选地, 上述各个步骤可以是宿主机中的恶意代码的检 测装置来执行的。 进一步地, 在步骤 303a、 步骤 303b中, 恶意代码的检测装置可以指示执 行所示程序代码的虚拟机将所述程序代码发送 给集群查杀设备, 如恶意代码 的检测装置可以通过向虚拟机中的查杀代理发 送通知消息, 来指示虚拟机将 所述程序代码发送给集群查杀设备; 恶意代码的检测装置也可以从虚拟机中 获得所述程序代码, 并将获得的所述程序代码发送给集群查杀设备 , 如恶意 代码的检测装置可以通过向虚拟机中的查杀代 理发送请求消息, 并从接收到 的对应的响应消息中获得所述程序代码。

除了实施例一和本实施例中提供的宿主机中的 比对方案, 还可以有其他 征进行比对, 在比对结果不相符时再与黑名单中的执行特征 进行第二次比对; 或者并行地将程序代码的执行特征分别与黑名 单中已知恶意代码的执行特 征、 白名单中已知正常代码的执行特征进行比对等 等, 在这里不再——列举。

另外, 在本发明实施例中本地数据库中也可以不存储 白名单或者不与白 名单进行比对, 在步骤 301比对结果不相符时, 可以跳过步骤 302, 直接进入 步骤 303a或步骤 303b。 这样, 可以减少本地数据库占用的存储空间, 但是可 能会造成宿主机与集群查杀设备之间的交换消 息较多。 实际应用中可以根据 宿主机的存储资源、 网络传输资源等因素灵活选择。

在本发明实施例提供的恶意代码的检测方法中 , 宿主机根据本地数据库 比对结果无法确定所述程序代码是否为恶意代 码时, 将执行特征或者程序代 码发送给集群查杀设备进行判定, 并接收集群查杀设备返回的判定结果。 利 用集群查杀设备分布式计算系统的性能优势, 根据扩展数据库或者沙箱来确 认宿主机发来的程序代码是否为恶意代码, 从而提高了检测的准确性。 实施例三

在实施例二中, 步骤 303a、 304a的分布式行为特征比对判定方式与步骤 303b, 304b的沙箱判定方式相比, 前者处理效率较高、 但无法识别出之前未 出现过的新的恶意代码; 后者能够识别出之前未出现过的新的恶意代码 , 但 处理效率较低。 为了能够结合这两种判定方式的优势, 既具有较高的处理效 率, 同时也能识别出新的恶意代码, 本实施例又提供了一种将所述程序代码 的执行特征与预先存储的已知恶意代码的执行 特征进行比对, 并根据比对结 果确定所述程序代码是否为恶意代码方法, 具体流程如附图 4a所示。

在附图 4a中, 步骤 401与附图 3中步骤 301类似、 步骤 402与附图 3中 步骤 302类似。 中的已知恶意代码的执行特征进行第一次比对 , 若比对结果相符, 则确定所 述程序代码为恶意代码, 否则进入步骤 402; 本实施例中的具体的比对方式参 照实施例一。

步骤 402, 若第一次比对结果不相符, 将获得的所述执行特征与本地数据 库白名单中的已知正常代码的执行特征进行第 二次比对;

若第二次比对结果相符, 则确定所述程序代码为非恶意代码;

若第二次比对结果不相符, 则进入步骤 403;

步骤 403 , 宿主机将获得的所述执行特征发送给集群查杀 设备;

步骤 404,宿主机接收所述集群查杀设备返回的所述 序代码为恶意代码 或非恶意代码的判定结果、 或者用于表明程序代码无法识别的标识, 若宿主 机接收到用于表明程序代码无法识别的标识, 则进入步骤 405;

其中, 若所述集群查杀设备确定接收到的所述执行特 征和扩展数据库黑 名单中已知恶意代码的执行特征符合, 则能够判定所述程序代码为恶意代码, 则返回所述程序代码为恶意代码的判定结果;

若所述集群查杀设备确定接收到的所述执行特 征和扩展数据库白名单中 已知正常代码的执行特征符合, 则能够判定所述程序代码为非恶意代码, 则 返回所述程序代码为非恶意代码的判定结果;

若所述集群查杀设备确定接收到的所述执行特 征与扩展数据库黑名单中 已知恶意代码的执行特征、 扩展数据库白名单中已知正常代码的执行特征 均 不符合, 则返回用于表明程序代码无法识别的标识。

步骤 405 , 宿主机将所述程序代码发送给集群查杀设备;

步骤 406,宿主机接收所述集群查杀设备返回的所述 序代码是否为恶意 代码的判定结果, 所述判定结果是所述集群查杀设备利用沙箱技 术执行所述 程序代码后, 根据执行结果确定出的。 用步骤 410~步骤 411替换附图 4a中的步骤 403~步骤 406;

步骤 410, 宿主机将所述程序代码、 以及获得的所述执行特征发送给集群 查杀设备; 集群查杀设备可以首先将接收到的执行特征与 扩展数据库黑名单中已知 恶意代码的执行特征进行比对, 若比对结果相符, 能够确定出所述程序代码 为恶意代码, 则直接返回所述程序代码为恶意代码的判定结 果; 若比对结果 不相符, 则进一步在沙箱中执行所述程序代码, 根据执行结果判定所述程序 代码是否为恶意代码。

步骤 411 , 宿主机接收集群查杀设备返回的判定结果。 实施例四

在实施例一至实施例三中, 当宿主机根据本地数据库、 或者集群查杀设 备返回的判定结果确定出所述程序代码为恶意 代码后, 还包括: 阻止执行所 述程序代码的读写请求转义的指令;

可选地, 还可以隔离所述程序代码的读写请求转义的指 令, 或者提示用 户删除所述程序代码。

当确定出所述程序代码为非恶意代码时, 还包括: 继续执行所述程序代 码的读写请求转义的指令。

本发明实施例宿主机在检测出恶意代码后, 可以阻止执行恶意代码发起 的读写请求转义的指令, 从而解决宿主机上多个虚拟机之间的恶意代码 传播 问题, 提高安全性。 实施例五

请参照附图 5 , 在实施例一至实施例四中, 若宿主机根据本地数据库、 或 者根据集群查杀设备返回的判定结果确定出所 述程序代码为恶意代码后, 还 包括:

步骤 501 , 记录该程序代码的标识, 继而统计设定时间段内该程序代码的 标识被检测出的次数, 所述设定时间段可以根据此前恶意代码被检测 频度的 历史记录、 或者宿主机的性能等因素来确定;

步骤 502,定期或不定期地将记录的程序代码的标识 设定时间段内该程 序代码的标识被记录的次数发送给集群查杀设 备;

步骤 503 ,接收集群查杀设备返回的数据库内容, 所述接收到的数据库内 容是所述集群查杀设备根据宿主机发送所述程 序代码的标识及所述次数确定 出的;

步骤 504, 根据接收到数据库内容替换本地数据库的内容 , 从而更新本地 数据库。

可选地, 所述接收到的数据库内容是所述集群查杀设备 根据设定地理区 域、 或者网络区域(例如某一局域网、 某大学的网络、 或某城市的网络) 中 各宿主机发送的程序代码的标识及对应被记录 的次数更新的。

通过上述方案, 使得宿主机的本地数据库能够被及时更新, 一方面可以 提高实施例一中检测恶意代码的准确率; 另一方面可以提高宿主机将获得的 所述程序代码的执行特征与本地数据库黑名单 中恶意代码的执行特征进行比 对, 即可判定出所述程序代码为恶意代码的几率, 从而减少实施例二、 实施 例三中宿主机频繁将程序代码、 或程序代码的执行特征发送给集群查杀设备 所耗费的网络传输资源, 提高了检测效率。

本发明实施例中宿主机的本地数据库可以用以 检测各虚拟机中的程序代 码是否为恶意代码, 不但本地数据库中数据的利用率高, 并且更新升级方案 较为筒便, 避免了现有技术在每个虚拟机上分别安装杀毒 软件所带来的更新 维护较为复杂的问题。 实施例六

请参照附图 6a, 本发明实施例从集群查杀设备的角度, 对恶意代码的检 测方法进行描述。

步骤 601 , 集群查杀设备接收宿主机发来的程序代码、或 程序代码的执行 特征, 若接收到得是程序代码, 则进入步骤 602; 若接收到得是程序代码的执 行特征, 则进入步骤 605;

步骤 602,集群查杀设备利用沙箱技术或者其他类似 箱的技术执行所述 程序代码, 获得执行结果, 进入步骤 603;

步骤 603 , 集群查杀设备根据执行结果中预设参数的参数 值、 以及预设的 判别规则的集合, 判定所述程序代码是否为恶意代码, 所述判别规则中包含 至少一个所述预设参数的阈值判断范围;

具体地,所述预设参数可以是沙箱的环境参数 (如注册表中的某些参数), 或者预定范围 (例如预定路径下的文件夹) 内文件的数量、 文件大小、 文件 的链接、 文件的读写权限等等。 如, 其中的一个预设规则: Rl= ( if path = boot/xen.gz, operation = writing or changing link, then Malware ), 即 "若路径 /boot/下名称为 xen.gz的文件、 在程序代码的执行过程中被执行的操作是修改 文件内容、 或修改文件的链接, 则为恶意代码"。 在沙箱中执行所述程序代码 后执行结果命中规则 R1 , 则说明所述程序代码为恶意代码;

可选地, 所述预设规则是根据已知恶意代码的执行结果 分析得到的。 步骤 604, 集群查杀设备将步骤 603的判定结果发送给宿主机;

步骤 605 ,集群查杀设备将宿主机发来的执行特征与扩 数据库黑名单中 已知恶意代码的执行特征进行比对, 若与黑名单中已知恶意代码的执行特征 相符, 则进入步骤 606, 若不相符, 则进入步骤 607;

步骤 606, 集群查杀设备返回所述程序代码为恶意代码的 判定结果; 已知正常代码的执行特征进行比对, 若与白名单中已知正常代码的执行特征 相符, 则进入步骤 608 , 若不相符, 则进入步骤 609;

步骤 608, 集群查杀设备返回所述程序代码为非恶意代码 的判定结果; 识。

这里需要特别说明的是: 步骤 601、 步骤 602、 步骤 603和步骤 604组成 的利用沙箱技术判定宿主机中的程序代码是否 为恶意代码的方案、 与步骤 601、步骤 605~步骤 609组成的通常查询扩展数据库的方式判定宿主 机中的程 序代码是否为恶意代码的方案可以独立实施, 并无相互依赖关系。 请参照附图 6b,本发明实施例附图 6a中提供的上述检测方法也可以进行 如下调整。

步骤 610, 集群查杀设备接收宿主机发来的程序代码、 以及该程序代码的 执行特征;

步骤 611 ,集群查杀设备将接收到的执行特征与扩展数 库黑名单中已知 恶意代码的执行特征进行比对, 若与黑名单中已知恶意代码的执行特征相符, 则进入步骤 612, 否则进入步骤 613;

步骤 612, 集群查杀设备返回的所述程序代码为恶意代码 的判定结果。

已知正常代码的执行特征进行比对, 若与白名单中已知正常代码的执行特征 相符, 则进入步骤 614, 若不相符, 则进入步骤 615;

步骤 614, 集群查杀设备返回所述程序代码为非恶意代码 的判定结果。 步骤 615 ,集群查杀设备利用沙箱技术执行所述程序代 ,获得执行结果, 进入步骤 616;

步骤 616, 集群查杀设备根据执行结果中预设参数的参数 值、 以及预设的 判别规则的集合, 判定所述程序代码是否为恶意代码, 所述判别规则中包含 至少一个所述预设参数的参数值范围; 步骤 617, 集群查杀设备将步骤 616的判定结果发送给宿主机。

附图 6a所提供的方案, 宿主机与集群查杀设备单次传输的数据量较小 , 但交互的次数较多; 附图 6b所提供的方案, 宿主机与集群查杀设备单次传输 的数据量较大, 但可以减少交互次数。 在实施时可以根据实际网络情况灵活 选择。

可选地, 在附图 6a的步骤 602、 或附图 6b的步骤 615中, 集群查杀设备 利用沙箱技术执行所述程序代码, 获得执行结果的具体方式包括但不限于以 下方式或者方式的组合:

方式一: 在预先构建的用于模拟虚拟机监视器环境的第 一沙箱中执行所 述程序代码, 获得的执行结果为执行结束后所述第一沙箱的 安全状态报告。 依据方式一, 可以发现虚拟机利用宿主机传播恶意代码的行 为。

方式二: 在预先构建的用于模拟虚拟机环境的第二沙箱 中执行所述程序 代码, 获得的执行结果为执行结束后所述第二沙箱的 安全状态报告。 依据方 式二, 可以获得恶意代码在虚拟机、 或虚拟机对应的虚拟硬件设备中的运行 情况。

本发明实施例提供的恶意代码的检测方法能够 利用集群查杀设备分布式 计算系统的性能优势, 将宿主机发来的程序代码的执行特征和扩展数 据库中 已知恶意代码的执行特征进行比对, 判定所述程序代码是否为恶意代码; 或 者, 或者利用沙箱技术虚拟执行宿主机发来的程序 代码, 根据执行结果来确 认宿主机发来的程序代码是否为恶意代码, 从而提高了检测的准确性。 实施例七

本发明实施例提供的集群查杀设备中数据库的 更新方式如附图 7所示。 步骤 701 , 根据沙箱技术的执行结果, 判定宿主机发来的程序代码是否为 恶意代码后, 根据所述判定结果更新集群查杀设备中的数据 库;

集群查杀设备若判定所述程序代码为恶意代码 , 则将该程序代码的标识 和对应的执行特征添加到数据库的黑名单中;

可选地, 集群查杀设备若判定所述程序代码为非恶意代 码, 将该程序代 码的标识和对应的执行特征添加到数据库的白 名单中。

步骤 702,接收宿主机发来的程序代码的标识和设定 间段内该程序代码 的标识被检测到的次数;

步骤 703 , 根据预定的筛选规则、 以及接收到得所述程序代码的标识和所 述次数, 从所述数据库中筛选出部分内容, 所述筛选规则包括统计指标判断 阈值, 所述统计指标的值可以根据所述程序代码的标 识和设定时间段内该程 序代码被检测到的次数确定出;

步骤 704, 将筛选出的数据库的内容发送给宿主机, 以便宿主机更新本地 数据库。 本发明实施例还提供了一种集群查杀设备中数 据库的具体架构,如附图 8 所示。 集群查杀设备中数据库包括更新规则库、 扩展数据库和基本数据库, 其中更新规则库中存储有至少一个更新规则。 扩展数据库和基本数据库的形 成流程如附图 9所示。 据执行结果判定所述程序代码是否为恶意代码 后 (利用沙箱执行程序代码并 根据执行结果判定是否为恶意代码的具体实现 方式请参照实施例六中的内 容), 根据所述判定结果更新扩展数据库;

可选地, 集群查杀设备在判定结果为所述程序代码为恶 意代码时, 将该 程序代码的标识和对应的执行特征添加到扩展 数据库的黑名单中;

可选地, 集群查杀设备在判定结果为所述程序代码为非 恶意代码时, 将 该程序代码的标识和对应的执行特征添加到扩 展数据库的白名单中。

步骤 902,接收宿主机定期或不定期发来的程序代码 标识、 以及设定时 间段内该程序代码的标识被检测出的次数;

可选地, 集群查杀设备还可以从宿主机发来的承载有程 序代码的标识和 被检测出的次数的数据包的包头中获取宿主机 的标识、 发送时间等附加信息。

步骤 903 , 集群查杀设备根据宿主机发来的程序代码的标 识和对应的次 数, 计算扩展数据库中各程序代码的预定统计指标 值;

可选地, 所述统计指标包括: 恶意代码被各宿主机检测出的总次数(也 可以理解为恶意代码感染虚拟机的总次数)、 或者恶意代码被各宿主机检测出 的速度(也可以理解为恶意代码感染虚拟机的 速度)、 恶意代码被不同宿主机 检测出的情况(也可以理解为恶意代码感染虚 拟机的普遍性,即传播的广度)、 恶意代码被各个虚拟机检测出的时间、 恶意代码被第一个宿主才 1全测出的时 间等等(也可以理解为恶意代码首次感染虚拟 机的时间)。 述筛选规则的恶意代码的标识、 及对应的执行特征, 更新到基本数据库中, 所述筛选规则包括至少一个所述统计指标判断 阈值; 下面将对筛选规则进行举例说明:

1、 根据恶意代码被各宿主机检测出的总数设定的 筛选规则 R11: 若恶意 代码被检测出的总次数超过 1000次, 则更新该恶意代码的标识和执行特征到 基本数据库。

2、 根据恶意代码被各宿主机检测出的速度设定的 筛选规则 R12: 若恶意 代码被检测出的速度超过每天 500次, 则更新该恶意代码的标识和执行特征 到基本数据库; 通过该类筛选规则, 集群查杀设备可以筛选出传播速度快的 恶意代码。

3、 根据恶意代码被不同宿主才 全测出的情况设定的筛选规则 R13: 若恶 意代码被超过 80%的宿主机检测到, 则更新该恶意代码的标识和执行特征到 基本数据库; 通过该类筛选规则, 集群查杀设备可以筛选出传播范围广的恶 意代码。

4、 根据恶意代码被宿主机首次检测出的时间设定 的筛选规则 R14: 若恶 意代码被首次检测到的时间至今超过 1个月(即持续感染宿主机的时间超过 1 个月 ), 则更新该恶意代码的标识和执行特征到基本数 据库; 通过此类筛选规 则, 集群查杀设备可以筛选出感染时间长的恶意代 码。

步骤 905, 集群查杀设备将所述基本数据库的内容发送给 各宿主机, 以便 宿主机更新本地数据库。

可选地, 为了有效控制各宿主机本地数据库的容量, 节约各宿主机的存 储资源, 在步骤 904之前, 还包括:

步骤 906, 根据预定的更新规则, 从基本数据库中删除符合所述更新规则 的程序代码的标识、 及该程序代码的执行特征, 所述更新规则包括至少一个 所述统计指标判断阈值。

下面也对更新规则进行举例说明:

1、 根据恶意代码近期感染虚拟机的强度设定的更 新规则 R21: 若恶意代 码在最近设定时间段内感染虚拟机的次数小于 设定次数(如 10次或 100次 ), 则从基本数据库黑名单中剔除该恶意代码的标 识及对应的执行特征; 2、 根据恶意代码近期感染虚拟机的广度设定的更 新规则 R22: 若恶意代 码在最近设定时间段内感染不同虚拟机的数量 小于设定次数(如 10个或 100 个), 则从基本数据库黑名单中剔除该恶意代码的标 识及对应的执行特征。

所述恶意代码在最近设定时间段内感染不同虚 拟机的数量可以根据接收 到宿主机发送程序代码和次数的时间、 以及宿主机的标识来确定。

3、 根据恶意代码的处于非激活状态的时间设定的 更新规则 R23: 若恶意 代码在最近设定时间段内 (如 3个月或 1年)在所有虚拟机中从未再次出现, 则从基本数据库黑名单中剔除该恶意代码的标 识及对应的执行特征。

本发明实施例提供的更新方案能够从集群查杀 设备的数据库中筛选出检 测率较高的数据库内容, 根据筛选出的数据库内容更新宿主机的本地数 据库, 恶意代码的几率, 减少将程序代码或程序代码的执行特征发送给 集群查杀设 备进行判定的次数, 从而降低所占用的宿主机与集群查杀设备之间 的传输带 宽, 缩短判定时间, 提高判定效率。 实施例八

请参照附图 10, 本发明实施例提供了一种宿主机设备 101 , 包括虚拟机 监视器 102和至少一个虚拟机 103, 还包括恶意代码的检测装置 104, 其中: 所述恶意代码的检测装置 104,用于在宿主机 101的虚拟机监视器 102中 监控指令的执行情况, 所述指令是该宿主机的虚拟机 103 中执行程序代码时 产生的读写请求被下发至虚拟机监视器时, 转义生成的; 根据所述指令的执 行情况, 获得所述程序代码的执行特征; 将获取单元获得的所述执行特征与 预先存储的已知恶意代码的执行特征进行比对 , 并在比对结果相符时确定所 述程序代码为恶意代码。

相应地, 本发明实施例还提供了一种恶意代码的检测装 置, 其结构示意 图如图 11所示,该装置包括监控单元 1041、获取单元 1042和确定单元 1043, 具体如下: 监控单元 1041 , 用于在宿主机的虚拟机监视器中监控指令的执 行情况, 所述指令是该宿主机的虚拟机中执行程序代码 时产生的读写请求被下发至虚 拟机监视器时, 转义生成的;

获取单元 1042,用于根据监控单元 1041监控得到的所述指令的执行情况, 获得所述程序代码的执行特征; 已知恶意代码的执行特征进行比对, 并在比对结果相符时确定所述程序代码 为恶意代码。

进一步地, 所述恶意代码的检测装置还包括:

第一发送单元 1046, 用于在确定单元 1043的比对结果不相符时, 将获得 的所述执行特征发送给集群查杀设备, 或者将所述程序代码发送给集群查杀 设备;

第一接收单元 1047, 用于接收所述集群查杀设备根据第一发送单元 1046 发送的所述执行特征, 返回的所述程序代码是否为恶意代码的判定结 果, 所 述判定结果是所述集群查杀设备将所述特征与 该集群查杀设备数据库中已知 恶意代码的执行特征进行比对确定出的; 或者

接收所述集群查杀设备根据第一发送单元 1046发送的程序代码, 返回的 所述程序代码是否为恶意代码的判定结果, 所述判定结果是所述集群查杀设 备利用沙箱技术执行所述程序代码后, 根据执行结果确定出的。

可选地, 附图 11中的确定单元 1043具体包括:

第一确定子单元 1044, 用于将获得的所述执行特征与本地数据库黑名 单 中的已知恶意代码的执行特征进行比对, 若比对结果相符, 则确定所述程序 代码为恶意代码;

第二确定子单元 1045 ,用于在第一确定子单元 1044的比对结果不相符时, 将获得的所述执行特征与本地数据库白名单中 的已知正常代码的执行特征进 行第二次比对, 若第二次比对结果相符, 则确定所述程序代码为非恶意代码; 所述第一发送单元 1046还用于若第二确定子单元 1045第二次比对结果 不相符, 则将获得的所述执行特征发送给集群查杀设备 , 或者将所述程序代 码发送给集群查杀设备。

可选地, 请参照附图 12, 附图 11中的所述恶意代码的检测装置还包括: 记录统计单元 1048,用于在确定单元 1043确定出所述程序代码为恶意代 码后, 记录该程序代码的标识, 并根据记录结果统计设定时间段内该程序代 码被检测到的次数;

第二发送单元 1049,用于将记录统计单元 1048得到的所述程序代码的标 识及所述次数发送给集群查杀设备;

第二接收单元 1040, 用于接收集群查杀设备返回的数据库内容, 并根据 接收到数据库内容替换本地数据库的内容, 所述接收到的数据库内容是所述 容包含已知恶意代码的执行特征。

可选地, 第一发送单元 1046具体包括: 通知子单元用于通过向虚拟机中 的查杀代理发送通知消息, 来指示虚拟机将所述程序代码发送给集群查杀 设 备;

或者第一发送单元 1046具体包括: 第一发送子单元、 第一接收子单元和 第二发送子单元, 其中:

第一发送子单元, 用于向虚拟机中的查杀代理发送请求消息;

第一接收子单元, 用于接收虚拟机中的查杀代理根据所述请求消 息, 返 回的响应消息;

第二发送子单元, 用于从所述响应消息中获得程序代码, 并将获得的程 序代码发送给集群查杀设备。

本发明实施例提供的恶意代码的检测装置可以 集成在宿主机的虚拟机监 视器中, 也可以由独立的硬件或软件模块来实现。

本发明实施例提供了一种宿主机设备、 以及一种宿主机中的恶意代码的 检测装置。 该装置在宿主机的虚拟机监视器中监控转义生 成的指令, 并根据 指令获得所述程序代码的执行特征; 将获得的执行特征与预先存储的已知恶 意代码的执行特征进行比对, 并根据比对结果确定所述程序代码是否为恶意 代码。 与现有的在每个虚拟机中都安装杀毒软件来实 现恶意代码检测的方案 相比, 提高了检测效率, 减少了在所有虚拟机上重复安装杀毒软件所占 用的 宿主机的存储资源、 以及各虚拟机分别运行杀毒软件所占用的宿主 机的处理 资源。

实施例九

请参照附图 13 , 本发明实施例提供了一种恶意代码的检测装置 , 该恶意 代码的检测装置可以为集群查杀设备, 该装置包括第一接收单元 131、执行单 元 132、 判定单元 133和第一发送单元 134, 其中:

第一接收单元 131 , 用于接收宿主机发来的程序代码;

执行单元 132,用于利用沙箱技术执行第一接收单元 131接收的所述程序 代码, 获得执行结果;

判定单元 133 , 用于根据所述执行结果中预设参数的参数值、 以及预设的 判别规则的集合, 判定所述程序代码是否为恶意代码, 所述判别规则中包含 至少一个所述预设参数的阈值判断范围;

第一发送单元 134, 用于将判定单元 133的判定结果发送给所述宿主机。 可选地, 所述执行单元 132具体用于在预先构建的用于模拟虚拟机监视 器环境的第一沙箱中执行所述程序代码, 获得的执行结果为执行结束后所述 第一沙箱的安全状态报告; 和 /或, 在预先构建的用于模拟虚拟机环境的第二 沙箱中执行所述程序代码, 获得的执行结果为执行结束后所述第二沙箱的 安 全状态报告。

可选地, 所述集群查杀设备还包括:

数据库 130,该数据库 130中的黑名单用于保存已知恶意代码的标识及 对 应的执行特征, 可选地, 该数据库 130 中的白名单用于保存已知正常代码的 标识及对应的执行特征。

第一更新单元 135 ,用于在判定单元 133判定所述程序代码为恶意代码时, 则将该程序代码的标识和对应的执行特征添加 到数据库的黑名单中; 可选地, 为了提高检测效果, 还可以包括第二更新单元 136, 用于在判定 单元 133 判定所述程序代码为非恶意代码时, 将该程序代码的标识和对应的 执行特征添加到数据库的白名单中。

进一步地, 为了能够及时更新宿主机的本地数据库, 所述集群查杀设备 还包括:

第二接收单元 137,用于接收宿主机发来的程序代码的标识和 定时间段 内该程序代码的标识被检测到的次数;

筛选单元 138, 用于根据第二接收单元 137接收的所述程序代码的标识、 所述次数、 以及所述集群查杀设备中预定的筛选规则, 从所述数据库 130 中 筛选出部分内容, 所述筛选规则包括统计指标判断阈值, 所述统计指标的值 根据所述程序代码的标识和所述次数确定出; 以便宿主机更新本地数据库。

本发明实施例提供的集群查杀设备能够利用分 布式计算系统的性能优 势, 将宿主机发来的程序代码的执行特征和扩展数 据库中已知恶意代码的执 行特征进行比对, 判定所述程序代码是否为恶意代码; 或者, 或者利用沙箱 技术虚拟执行宿主机发来的程序代码, 根据执行结果来确认宿主机发来的程 序代码是否为恶意代码, 从而提高了检测的准确性。 实施例十

请参照附图 14, 本发明实施例提供了一种恶意代码的检测系统 , 其中包 括至少一个实施例八中所给出的宿主机 101 ,其中的每个所述宿主机用于在该 宿主机的虚拟机监视器中捕获指令, 所述执行指令是该宿主机的虚拟机中执 行程序代码时产生的读写请求被下发至虚拟机 监视器时, 转义生成的; 根据 所述指令获得所述程序代码的执行特征; 将获得的所述执行特征与预先存储 的已知恶意代码的执行特征进行比对, 并在比对结果相符时确定所述程序代 码为恶意代码。 进一步, 所述恶意代码的检测系统还包括至少一个集群 查杀设备 100: 所述宿主机 101 ,还用于将获得的所述执行特征与本地数据库 名单中的 已知恶意代码的执行特征进行比对, 若比对结果不相符, 则将所述程序代码 或执行特征发送给集群查杀设备 100,并接收所述集群查杀设备返回的所述程 序代码是否为恶意代码的判定结果; 所述判定结果是所述集群查杀设备将所 述特征与该集群查杀设备数据库中已知恶意代 码的执行特征进行比对确定出 的, 或者利用沙箱技术执行所述程序代码后, 根据执行结果确定出的。

具体地, 宿主机可以在比对结果不相符时, 将获得的所述执行特征与本 地数据库白名单中的已知正常代码的执行特征 进行第二次比对, 若第二次比 对结果相符, 则确定所述程序代码为非恶意代码; 若第二次比对结果不相符, 则将所述程序代码或执行特征发送给集群查杀 设备 100, 或者,

宿主机可以在第一次比对结果不相符时, 直接将所述程序代码或执行特 征发送给集群查杀设备 100。

所述集群查杀设备 100, 用于接收宿主机 101发来的程序代码, 利用沙箱 技术执行所述程序代码, 获得执行结果; 根据所述执行结果中预设参数的参 数值、 以及预设的判别规则的集合, 判定所述程序代码是否为恶意代码, 所 述判别规则中包含至少一个所述预设参数的参 数值范围; 将判定结果发送给 所述宿主机 101。

所述集群查杀设备 100利用沙箱技术执行所述程序代码, 获得执行结果 的过程请参照实施例六、 实施例九中的描述。

本发明实施例提供的恶意代码的检测系统, 利用集群查杀设备分布式计 算系统的性能优势, 提高宿主机中恶意代码检测的准确性。

本领域普通技术人员可以理解实现上述实施例 方法中的全部或部分步骤 是可以通过程序来指令相关的硬件来完成, 该程序可以存储于一计算机可读 取存储介质中, 如: ROM/RAM、 磁碟、 光盘等。 发明的精神和范围。 这样, 倘若本发明的这些修改和变型属于本发明权利 要 求及其等同技术的范围之内, 则本发明也意图包含这些改动和变型在内。