本页面简要介绍了 Virtual Machine Threat Detection。
概览
Virtual Machine Threat Detection 是 Security Command Center 内置的一项服务,可在 Enterprise 层级和 Premium 层级中使用。此服务会扫描虚拟机以检测潜在恶意应用,例如加密货币挖矿软件、内核模式 rootkit 以及在遭入侵的云环境中运行的恶意软件。
VM Threat Detection 是 Security Command Center 威胁检测套件的一部分,旨在补充 Event Threat Detection 和 Container Threat Detection 的现有功能。
VM Threat Detection 发现结果是严重级别为“高”的威胁,我们建议您立即修复。您可以在 Security Command Center 中查看 VM Threat Detection 发现结果。
对于已注册 Security Command Center 高级方案的组织,系统会自动启用 VM Threat Detection 扫描。如果需要,您可以在项目级层停用该服务或启用该服务。如需了解详情,请参阅启用或停用 VM Threat Detection。
VM Threat Detection 的工作原理
VM Threat Detection 是一项托管式服务,可扫描已启用的 Compute Engine 项目和虚拟机 (VM) 实例以检测虚拟机中运行的潜在恶意应用,例如加密货币挖矿软件和内核模式 rootkit。
下图是一个简化的图示,显示了 VM Threat Detection 的分析引擎如何从客机虚拟机内存提取元数据并将发现结果写入 Security Command Center。

VM Threat Detection 内置于 Google Cloud的 Hypervisor 中,后者是一个创建和管理所有 Compute Engine 虚拟机的安全平台。
VM Threat Detection 会定期执行从 Hypervisor 到正在运行的客机虚拟机内存的扫描,而不会暂停客机的操作。还会定期扫描磁盘克隆。由于该服务在客机虚拟机实例外部运行,因此不需要客机代理或客机操作系统的特殊配置,并且可以抵御复杂恶意软件使用的对策。客机虚拟机内不使用 CPU 周期,并且不需要网络连接。安全团队不需要更新签名,也不需要管理服务。
加密货币挖矿检测的工作原理
VM Threat Detection 由 Google Cloud的威胁检测规则提供支持,可分析有关虚拟机上运行的软件的信息(包括应用名称列表、每个进程的 CPU 使用率、内存页面的哈希值、CPU 硬件性能计数器)以及有关已执行机器代码的信息,从而确定任何应用是否与已知加密货币挖矿签名匹配。如有可能,VM Threat Detection 然后会确定与检测到的签名关联的运行中进程是否匹配,并在发现结果中添加有关该进程的信息。
内核模式 rootkit 检测的工作原理
VM Threat Detection 会推断在虚拟机上运行的操作系统的类型,并使用该信息来确定内存中的内核代码、只读数据区域和其他内核数据结构。VM Threat Detection 应用各种技术来确定这些区域是否被篡改,方法是将其与内核映像预期的预计算哈希进行比较,并验证重要内核数据结构的完整性。
恶意软件检测的工作原理
VM Threat Detection 会在不中断工作负载的情况下获取虚拟机永久性磁盘的短期克隆,并扫描这些磁盘克隆。此服务会分析虚拟机上的可执行文件,以确定是否有任何文件与已知的恶意软件签名匹配。生成的发现结果包含有关文件和检测到的恶意软件签名的信息。
多云功能
除了 Google Cloud之外,恶意软件检测也适用于 Amazon Elastic Compute Cloud (EC2) 虚拟机。
如需扫描 AWS 虚拟机,您必须是 Security Command Center Enterprise 客户,并且必须先为 AWS 启用 VM Threat Detection。
您只能在组织级启用此功能。在扫描期间,VM Threat Detection 会同时使用 Google Cloud 和 AWS 上的资源。
扫描频率
对于内存扫描,VM Threat Detection 会在创建实例后立即扫描每个虚拟机实例。此外,VM Threat Detection 每 30 分钟扫描一次各虚拟机实例。
- 对于加密货币挖矿检测,VM Threat Detection 会每天为每个进程、每个虚拟机生成一个发现结果。每个发现结果仅包含与该发现结果所识别的进程关联的威胁。如果 VM Threat Detection 发现威胁,但无法将其与任何进程相关联,则对于每个虚拟机,VM Threat Detection 会将所有未关联的威胁分组到一个发现结果中,该发现结果每 24 小时生成一次。对于任何存在时间超过 24 小时的威胁,VM Threat Detection 会每 24 小时生成一次新发现结果。
- 对于内核模式 rootkit 检测(处于预览版阶段),VM Threat Detection 会每三天针对每个虚拟机、每个类别生成一个发现结果。
对于用于检测存在已知恶意软件的永久性磁盘扫描,VM Threat Detection 至少每天扫描每个虚拟机实例一次。
如果您激活 Security Command Center 的高级层级,系统会自动启用 VM Threat Detection 扫描。如果需要,您可以在项目级层停用该服务和/或启用该服务。如需了解详情,请参阅启用或停用 VM Threat Detection。
发现结果
本部分介绍了 VM Threat Detection 生成的威胁发现结果。
VM Threat Detection 会进行以下威胁检测。
加密货币挖矿威胁发现结果
VM Threat Detection 通过哈希匹配或 YARA 规则检测以下发现结果类别。
类别 | 模块 | 说明 |
---|---|---|
|
CRYPTOMINING_HASH
|
将正在运行的程序的内存哈希与加密货币挖矿软件的已知内存哈希匹配。 |
|
CRYPTOMINING_YARA
|
匹配已知会由加密货币挖矿软件使用的内存模式,如工作证明常量。 |
|
|
识别 CRYPTOMINING_HASH 和 CRYPTOMINING_YARA 模块都检测到的威胁。
如需了解详情,请参阅合检测。 |
内核模式 rootkit 威胁发现结果
VM Threat Detection 会在运行时分析内核完整性,以检测恶意软件使用的常见规避技术。
KERNEL_MEMORY_TAMPERING
模块通过对虚拟机的内核代码和内核只读数据内存进行哈希比较来检测威胁。
KERNEL_INTEGRITY_TAMPERING
模块通过检查重要内核数据结构的完整性来检测威胁。
类别 | 模块 | 说明 |
---|---|---|
rootkit | ||
|
|
存在与已知内核模式 rootkit 匹配的信号组合。如需接收此类别的发现结果,请确保已启用这两个模块。 |
内核内存篡改 | ||
|
KERNEL_MEMORY_TAMPERING
|
内核代码内存存在意外修改行为。 |
|
KERNEL_MEMORY_TAMPERING
|
内核只读数据内存存在意外修改行为。 |
内核完整性篡改 | ||
|
KERNEL_INTEGRITY_TAMPERING
|
存在 ftrace 点,回调指向不在预期内核或模块代码范围内的区域。
|
|
KERNEL_INTEGRITY_TAMPERING
|
存在不在预期内核或模块代码区域的中断处理程序。 |
|
KERNEL_INTEGRITY_TAMPERING
|
存在不在预期内核或模块代码区域的内核代码页面。 |
|
KERNEL_INTEGRITY_TAMPERING
|
存在 kprobe 点,回调指向不在预期内核或模块代码范围内的区域。
|
|
KERNEL_INTEGRITY_TAMPERING
|
调度器运行队列中存在意外进程。此类进程位于运行队列中,但不在进程任务列表中。 |
|
KERNEL_INTEGRITY_TAMPERING
|
存在不在预期内核或模块代码区域的系统调用处理程序。 |
恶意软件威胁发现结果
VM Threat Detection 通过扫描虚拟机的永久性磁盘来查找已知恶意软件,从而检测以下发现结果。
类别 | 模块 | 说明 | 支持的云服务提供商 |
---|---|---|---|
Malware: Malicious file on disk
|
MALWARE_DISK_SCAN_YARA_AWS
|
扫描 Amazon EC2 虚拟机中的永久性磁盘,并比对已知恶意软件使用的签名。 | AWS |
Malware: Malicious file on disk (YARA)
|
MALWARE_DISK_SCAN_YARA
|
扫描 Compute Engine 虚拟机中的永久性磁盘,并比对已知恶意软件使用的签名。 | Google Cloud |
扫描 VPC Service Controls 边界中的虚拟机
在 VM Threat Detection 可以扫描 VPC Service Controls 边界中的虚拟机之前,您必须在要扫描的每个边界中添加入站流量和出站流量规则。如需了解详情,请参阅允许 VM Threat Detection 访问 VPC Service Controls 边界。
限制
VM Threat Detection 支持 Compute Engine 虚拟机实例,但存在以下限制:
对 Windows 虚拟机提供有限支持:
对于加密货币挖矿检测,VM Threat Detection 主要侧重于 Linux 二进制文件,并且对 Windows 上运行的加密货币挖矿机的覆盖范围进行了限制。
对于内核模式 rootkit 检测,VM Threat Detection 仅支持 Linux 操作系统。
不支持使用机密虚拟机的 Compute Engine 虚拟机。机密虚拟机实例使用加密来在内存内容进出 CPU 时提供保护。因此,VM Threat Detection 无法扫描它们。
磁盘扫描限制:
VM Threat Detection 需要 Security Center Service Agent 能够列出项目中的虚拟机,并将磁盘克隆到 Google 拥有的项目。某些组织政策限制(例如
constraints/compute.storageResourceUseRestrictions
)可能会干扰此类操作。在这种情况下,VM Threat Detection 扫描可能无法正常运行。VM Threat Detection 依赖于 Google Cloud的 Hypervisor 和 Compute Engine 的功能。因此,VM Threat Detection 无法在本地环境或其他公有云环境中运行。
隐私权和安全
VM Threat Detection 会访问正在运行的虚拟机的磁盘克隆和内存以进行分析。该服务仅分析检测威胁所需的内容。
虚拟机内存和磁盘克隆的内容用作 VM Threat Detection 风险分析流水线中的输入。数据在传输过程中会加密并由自动化系统处理。处理期间,数据由Google Cloud的安全控制系统进行保护。
出于监控和调试目的,VM Threat Detection 会存储服务保护的项目的基本诊断和统计信息。
VM Threat Detection 会扫描各自区域中的虚拟机内存内容和磁盘克隆。但是,生成的发现结果和元数据(例如项目和组织编号)可能存储在这些区域之外。
后续步骤
- 了解如何使用 VM Threat Detection。
- 了解如何为 AWS 启用 VM Threat Detection。
- 了解如何调查 VM Threat Detection 发现结果。
- 了解如何允许 VM Threat Detection 扫描 VPC Service Controls 边界中的虚拟机。
- 了解如何检查虚拟机是否有内核内存篡改迹象。