本页面简要介绍了 Virtual Machine Threat Detection。
概览
Virtual Machine Threat Detection 是 Security Command Center 高级方案的内置服务,可通过 Hypervisor 级插桩和永久性磁盘分析提供威胁检测。虚拟机威胁检测可检测潜在的恶意应用,例如加密货币挖矿软件、内核模式 rootkit 以及在遭到入侵的云环境中运行的恶意软件。
VM Threat Detection 是 Security Command Center Premium 的威胁检测套件的一部分,旨在补充 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 的工作原理
虚拟机威胁检测是一项代管式服务,可扫描已启用的 Compute Engine 项目和虚拟机 (VM) 实例,以检测在虚拟机中运行的潜在恶意应用,例如加密货币挖矿软件和内核模式 rootkit。
下图是一个简化的图示,显示了 VM Threat Detection 的分析引擎如何从客机虚拟机内存提取元数据并将发现结果写入 Security Command Center。
![Virtual Machine Threat Detection 的简化的数据路径](https://cloud.google.com/static/security-command-center/images/vmtd_data_path.png?authuser=4&hl=zh-cn)
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 每 30 分钟扫描一次每个虚拟机实例。
- 对于加密货币挖矿检测,VM Threat Detection 每天都会为每个虚拟机的每个进程生成一个发现结果。每个发现结果仅包含与发现结果所标识的流程相关的威胁。如果 VM Threat Detection 发现威胁,但无法将其与任何进程相关联,则对于每个虚拟机,VM Threat Detection 会将所有未关联的威胁分组到一个发现结果中,该发现结果每 24 小时发出一次。对于任何存在时间超过 24 小时的威胁,VM Threat Detection 会每 24 小时生成一次新发现结果。
- 对于内核模式 rootkit 检测(预览版),虚拟机威胁检测每三天为每个虚拟机每个类别生成一个发现结果。
对于永久性磁盘扫描(用于检测是否存在已知恶意软件),VM Threat Detection 至少每天扫描一次每个虚拟机实例。
如果您激活 Security Command Center 的高级层级,系统会自动启用 VM Threat Detection 扫描。如果需要,您可以在项目级层停用该服务和/或启用该服务。如需了解详情,请参阅启用或停用 VM Threat Detection。
发现结果
本部分介绍 VM Threat Detection 生成的威胁和观察发现结果。
威胁发现结果
虚拟机威胁检测具有以下威胁检测。
加密货币挖矿威胁发现结果
虚拟机威胁检测通过哈希匹配或 YARA 规则检测以下发现结果类别。
类别 | 单元 | 说明 |
---|---|---|
Execution: Cryptocurrency Mining Hash Match
|
CRYPTOMINING_HASH
|
将正在运行的程序的内存哈希与加密货币挖矿软件的已知内存哈希匹配。 |
Execution: Cryptocurrency Mining YARA Rule
|
CRYPTOMINING_YARA
|
匹配已知会由加密货币挖矿软件使用的内存模式,如工作证明常量。 |
Execution: Cryptocurrency Mining Combined Detection
|
|
识别由 CRYPTOMINING_HASH 和 CRYPTOMINING_YARA 模块检测到的威胁。
如需了解详情,请参阅合检测。 |
内核模式 rootkit 威胁发现结果
虚拟机威胁检测可在运行时分析内核完整性,以检测恶意软件使用的常见规避技术。
KERNEL_MEMORY_TAMPERING
模块通过对虚拟机的内核代码和内核只读数据内存进行哈希比较来检测威胁。
KERNEL_INTEGRITY_TAMPERING
模块通过检查重要内核数据结构的完整性来检测威胁。
类别 | 单元 | 说明 |
---|---|---|
内核内存篡改 | ||
Defense Evasion: Unexpected kernel code modification 预览版
|
KERNEL_MEMORY_TAMPERING
|
内核代码内存存在意外修改行为。 |
Defense Evasion: Unexpected kernel read-only data modification 预览版
|
KERNEL_MEMORY_TAMPERING
|
内核只读数据内存存在意外修改行为。 |
内核完整性篡改 | ||
Defense Evasion: Unexpected ftrace handler 预览版
|
KERNEL_INTEGRITY_TAMPERING
|
出现 ftrace 点,并且回调指向不在预期的内核或模块代码范围之内的区域。
|
Defense Evasion: Unexpected interrupt handler 预览版
|
KERNEL_INTEGRITY_TAMPERING
|
存在不在预期内核或模块代码区域的中断处理程序。 |
Defense Evasion: Unexpected kernel modules 预览版
|
KERNEL_INTEGRITY_TAMPERING
|
存在不在预期内核或模块代码区域的内核代码页面。 |
Defense Evasion: Unexpected kprobe handler 预览版
|
KERNEL_INTEGRITY_TAMPERING
|
出现 kprobe 点,并且回调指向不在预期的内核或模块代码范围之内的区域。
|
Defense Evasion: Unexpected processes in runqueue 预览版
|
KERNEL_INTEGRITY_TAMPERING
|
调度器运行队列中存在意外进程。此类进程位于运行队列中,但不在进程任务列表中。 |
Defense Evasion: Unexpected system call handler 预览版
|
KERNEL_INTEGRITY_TAMPERING
|
存在不在预期内核或模块代码区域的系统调用处理程序。 |
Rootkit | ||
Defense Evasion: Rootkit 预览版
|
|
存在与已知内核模式 rootkit 匹配的信号组合。如需接收此类别的发现结果,请确保同时启用这两个模块。 |
恶意软件威胁发现结果
虚拟机威胁检测通过扫描虚拟机的永久性磁盘中是否存在已知的恶意软件来检测以下发现结果类别。
类别 | 单元 | 说明 |
---|---|---|
Malware: Malicious file on disk (YARA)
|
MALWARE_DISK_SCAN_YARA
|
匹配已知恶意软件使用的签名。 |
观察发现结果
VM Threat Detection 会生成以下观察发现结果:
类别名称 | API 名称 | 摘要 | 严重级别 |
---|---|---|---|
VMTD disabled
|
VMTD_DISABLED |
VM Threat Detection 已停用。在您enable之前,此服务无法扫描 Compute Engine 项目和虚拟机实例是否存在有害应用。
此发现结果会在 30 天后设置为 |
高 |
限制
VM Threat Detection 支持 Compute Engine 虚拟机实例,但存在以下限制:
对 Windows 虚拟机的有限支持:
对于加密货币挖矿检测,VM Threat Detection 主要侧重于 Linux 二进制文件,并且对 Windows 上运行的加密货币挖矿机的覆盖范围进行了限制。
对于内核模式 rootkit 检测(预览版),虚拟机威胁检测仅支持 Linux 操作系统。
不支持使用机密虚拟机的 Compute Engine 虚拟机。机密虚拟机实例使用加密来在内存内容进出 CPU 时提供保护。因此,VM Threat Detection 无法扫描它们。
磁盘扫描限制:
虚拟机威胁检测要求 Security Center Service Agent 能够列出项目中的虚拟机并将磁盘克隆到 Google 拥有的项目。某些安全和政策配置(如 VPC Service Controls 边界和组织政策限制条件)可能会干扰此类操作。在这种情况下,VM Threat Detection 扫描可能无法正常运行。
VM Threat Detection 依赖于 Google Cloud Hypervisor 和 Compute Engine 的功能。因此,VM Threat Detection 无法在本地环境或其他公有云环境中运行。
隐私和安全
VM Threat Detection 会访问正在运行的虚拟机的磁盘克隆和内存以进行分析。该服务仅分析检测威胁所必需的内容。
虚拟机内存和磁盘克隆的内容用作虚拟机威胁检测风险分析流水线的输入。数据在传输过程中会加密,并由自动化系统进行处理。在处理过程中,数据将受到 Google Cloud 安全控制系统的保护。
出于监控和调试目的,VM Threat Detection 会存储服务保护的项目的基本诊断和统计信息。
虚拟机威胁检测会扫描其各自区域中的虚拟机内存内容和磁盘克隆。但是,生成的发现结果和元数据(例如项目和组织编号)可能存储在这些区域之外。