EDR/XDR 中的可信计算基(TCB)与安全边界隔离验证
字数 2954
更新时间 2026-04-21 23:16:10

EDR/XDR 中的可信计算基(TCB)与安全边界隔离验证

要理解 EDR/XDR 如何真正保护一个主机,我们不能只看它检测到了什么攻击,而要先搞清楚一个根本问题:EDR 自身运行的环境是否可信? 这就引出了“可信计算基”和“安全边界隔离”的概念。

第一步:什么是“可信计算基”(TCB)?

可信计算基是一个系统里所有负责安全的部分的总和。简单说,就是“你必须相信它不会害你”的那部分代码和硬件。

想象一个银行金库:

  • 金库的混凝土墙、钢制门、密码锁、监控摄像头、甚至守卫——所有这些共同组成了保护金库的“安全基”。
  • 你必须相信这些组件是坚固、没有被篡改的。如果墙有裂缝,或者守卫是坏人,整个安全体系就垮了。

在操作系统中,TCB 通常包括:

  • 操作系统内核(最核心的部分)
  • 硬件(CPU、内存管理单元、主板上的可信平台模块 TPM)
  • 关键的驱动程序
  • 负责权限检查的组件(比如 Windows 的安全引用监视器 SRM)

EDR/XDR 代理本身,也必须是 TCB 的一部分。因为它要监控系统,如果它自己能被轻易关闭或欺骗,那监控就失去了意义。

第二步:为什么需要“安全边界隔离”?

TCB 里的不同组件之间、以及 TCB 与非 TCB 之间,需要有清晰的安全边界。边界就是一道墙,墙的一边是高信任区(内核),另一边是低信任区(普通用户进程)。

攻击者常用的手法就是突破安全边界

  • 从普通用户态(Ring 3)通过漏洞跳进内核态(Ring 0)
  • 或者篡改 TCB 里的关键数据(比如系统调用表)

安全边界隔离要确保:

  • 低信任区的代码不能随便访问高信任区的内存或执行高特权指令。
  • 即使低信任区崩溃或被控制,高信任区依然完好。

第三步:EDR/XDR 如何验证 TCB 的完整性?

EDR/XDR 不能假设 TCB 一开始就是干净的。它必须在运行时持续验证。

核心机制:

  1. 基于硬件的信任根

    • 利用 CPU 的 SGX(Software Guard Extensions)或 TPM(可信平台模块)芯片。
    • 在系统启动时,从 BIOS 到引导加载程序,再到内核,每个阶段都测量下一阶段的哈希值,并存储在 TPM 的 PCR(平台配置寄存器)中。
    • EDR 可以读取这些 PCR 值,与已知的干净值对比。如果不匹配,说明有 Bootkit 或 Rootkit 在早期就感染了 TCB。
  2. 内核代码完整性验证

    • EDR 的内核驱动定期计算关键内核代码段(如 ntoskrnl.exe、内核系统调用表)的哈希值。
    • 与存储在安全位置(如签名后的基准值)进行比对。
    • 检测到任何未授权的修改 → 判定为内核劫持。
  3. 关键数据结构隔离监控

    • 监控 IDT(中断描述符表)、GDT(全局描述符表)、MSR(模型特定寄存器)等。
    • 这些是内核的“控制面板”。攻击者常修改它们来挂钩(hook)系统调用。EDR 通过硬件虚拟化技术(如 Intel VT-x)创建一个比内核权限更高的 Hypervisor 层,从外部监控这些表是否被篡改。

第四步:EDR/XDR 自身如何隔离和保护?

EDR 代理本身也要遵循安全边界原则:

  • 进程隔离:EDR 的主服务运行在高权限(SYSTEM 或 root),但其不同组件(如 UI、更新程序)运行在较低权限。敏感操作(如终止恶意进程、内存扫描)由高权限组件执行。
  • 代码签名与防篡改:EDR 的二进制文件必须有强数字签名。操作系统会阻止未签名的驱动加载。EDR 还会注册系统回调(如 ObRegisterCallbacks),防止其他进程(甚至管理员)打开 EDR 进程的句柄、注入线程或结束其进程。
  • 自我保护线程:EDR 会启动看门狗线程,如果检测到自身某个关键线程被挂起或终止,立即重启组件或报告故障。
  • 使用受保护的进程(PPL):在 Windows 上,EDR 可以注册为 受保护进程光(Protected Process Light, PPL) 级别,使得普通管理员权限也无法轻易注入代码到 EDR 进程中。

第五步:攻击者如何绕过 TCB 隔离?EDR 如何应对?

这是攻防对抗的前沿。

攻击手段 针对的边界 EDR 防御技术
Bring Your Own Vulnerable Driver (BYOVD) 加载一个带漏洞的合法驱动,用漏洞提权到内核。 驱动加载监控 + 驱动黑名单/信誉库 + 内核回调拦截 NtLoadDriver
PatchGuard 绕过 尝试修改 Windows 内核受保护的结构(如系统调用表)。 基于硬件虚拟化的内存写保护。Hypervisor 捕获写操作,阻止并告警。
直接内核对象操作 (DKOM) 不修改代码,直接修改内核中的数据(如进程结构体中的进程名、PID、线程标志)。 交叉视图比对:EDR 从不同视角(内核 API 列表、线程调度队列、内存池标签)枚举进程,发现差异。
禁用 EDR 内核回调 移除或覆盖 EDR 注册的回调函数。 定期验证回调函数指针是否指向 EDR 驱动范围内;利用 Hypervisor 监控回调表变化。

第六步:现实世界案例与检测逻辑

场景:勒索软件尝试关闭 EDR。

  1. 攻击者获得管理员权限。
  2. 运行命令 sc stop edragent 尝试停止 EDR 服务。
  3. EDR 的 TCB 隔离防御生效
    • 由于 EDR 服务配置了高权限且注册了 ScmControl 回调,系统在停止服务前会询问 EDR。
    • EDR 检测到 SERVICE_CONTROL_STOP 请求,来源进程是 cmd.exe(PID 1234),父进程是 explorer.exe(用户点击的)。
    • 根据策略(例如:除非来源是 EDR 自己的更新程序或特定安全工具,否则拒绝停止),EDR 拒绝该请求。
    • 同时产生告警:“检测到未经授权的服务停止尝试 – 来源进程 [cmd.exe] – 目标服务 [edragent] – 行为 [疑似防篡改绕过]”
    • 攻击者如果尝试直接卸载 EDR 驱动,会触发 NtUnloadDriver 监控,同样会被拦截。

总结(核心要点)

  1. TCB 是系统里必须被信任的核心安全组件,包括内核、硬件和 EDR 自身。
  2. 安全边界隔离 确保低信任区无法随意访问高信任区,这是防御的基础。
  3. EDR 通过硬件信任根(TPM/SGX)、内核完整性验证、Hypervisor 级别监控来验证 TCB 是否被篡改。
  4. EDR 自身使用进程隔离、PPL、回调保护、代码签名来防止被禁用或绕过。
  5. 攻击者常通过 BYOVD、DKOM、禁用回调 来挑战边界,EDR 用交叉视图、虚拟化监控、驱动加载拦截 来对抗。

理解 TCB 与安全边界隔离,你就能明白为什么某些高级 EDR 即使在被攻击者拿到管理员权限后,依然能保持监控能力——因为它们把自己嵌入到了比管理员权限更高、甚至比内核更深的硬件辅助隔离层中。

相似文章
相似文章
 全屏