用户如何击败反活取证软件?

信息安全 磁盘加密 取证 USB
2021-08-18 17:02:44

假设我有一台已记录并正在运行的具有全盘加密的计算机,但我怀疑它有反取证软件(例如 usbkill),这意味着我有可能通过以下操作之一损害数据的完整性:

  • 插入 USB/SD 卡
  • 从互联网下载/上传
  • 每 X 小时不执行特定操作(死人的开关)

您认为对其进行取证分析的最佳行动方案是什么?如果没有好的方法来执行它,您认为最好的近似值是什么?

1个回答

如果您有物理访问权限,有很多方法可以破坏正在运行的计算机。您获得所需访问级别的可能性有多大取决于几个因素,包括您的资源、防御者的技能水平以及您的可用时间。您没有提供有关您的目标的太多信息,因此这个答案将是相当笼统的,但会假设它们相当复杂并且对 x86 架构和硬件安全性有很好的理解。具体来说,如果您提供有关以下内容的更多信息,将会很有帮助:

  • 目标是使用COTS(商用现货)硬件,还是定制的?
  • 是否有物理安全措施,例如机箱入侵检测?
  • 你的预算是多少?您可以为自定义攻击硬件付费吗?
  • 您愿意与英特尔签署 NDA 以使用他们的JTAG SDK吗?
  • 记忆采集是在现场完成的,还是在专门的实验室完成的?
  • 您更喜欢更高的检测风险还是更高的数据损坏风险?

所有这些点,尤其是关于目标特定硬件选择的点,都可以帮助缩小最佳策略的范围。否则答案将是广泛的。最坏的情况是目标对 x86 架构有深入的了解,并开发了类似于vCage的复杂解决方案,将 TCB 减少到 CPU 本身的 TCB 并减轻几乎所有物理攻击。这将需要创建新的采集方法。


以下是针对 x86 硬件的一些一般类型的内存获取攻击。

IEEE 1149.1

“最好”的做法是使用 IEEE 1149.1 协议,即JTAG这是一个将处理器置于探测模式的调试协议。从那里可以停止它,可以读取或修改寄存器(包括指令指针),可以读取或修改内存中的地址等。除了破坏物理JTAG 标头(XDP ) 在主板上。英特尔主板的 JTAG 攻击需要昂贵的探针。较新的系统支持DCI,它允许通过 USB 执行 JTAG 调试。许多 BIOS 将禁用 DCI 支持,需要回退到昂贵的替代方案。

总线掌握

PCIe 设备本身支持热插拔,并在其配置空间中有一个两字节的命令寄存器位 2 是总线主机使能,当设置时,允许设备执行 DMA 请求以读取和写入内存中的一般任意位置。虽然 PCIe 设备不能自行设置该位,但它所要做的就是让操作系统相信它需要一个驱动程序来授予它 DMA 能力。此时,您可以读取或写入内存中的任意位置。请注意,某些系统将使用DMA Remapping或 DMAR,它可以限制您可以访问的内存位置(尽管这可能不足以缓解此类攻击,并且某些旧系统的 IOMMU 已损坏)。如果是这种情况,或者如果您希望系统进一步强化以检测新的支持 DMA 的设备的插入,那么尝试使用 PCIe 设备进行 DMA 可能不会有成效。DMA 是最常用于内存采集的方法之一。

冷启动攻击

冷启动攻击有两种类型。您可以将系统重新引导到另一个引导加载程序,然后读取内存,或者您可以物理移除(并可选择冻结)内存模块并将它们转移到您控制的系统。除非您在目标计算机仍受控制时尝试冻结内存,否则通常无法检测到这一点,但如果操作不当,可能会导致大量数据丢失。现代内存(DDR3 和 DDR4)还使用称为内存加扰的功能来减少过度的电气干扰。加扰种子非常弱,因为它使用LFSR,但它仍然需要至少基本的密码分析才能破解. 不过,冷启动攻击还有一个额外的好处,那就是内存获取是原子的,不会留下内存拖影在另一个答案中写了更多关于此的内容

攻击 TRESOR

TRESOR是 Linux 的内核补丁,它完全在内存之外进行加密,减轻冷启动攻击和被动 DMA。密钥仅保存在 CPU 的 x86 调试寄存器中,并且密钥材料永远不会进入内存(NMI 或 SMI 期间除外)。击败 TRESOR 需要能够写入内存。最有效的方法是修改IDT,在下一次中断时触发在主管模式下执行自定义代码。此代码可用于读取调试寄存器。这种攻击在另一篇论文中有更详细的描述您的目标可能不会使用这种特定的缓解措施,或者他们可能已经使用任何数量的创新技术开发了自己的缓解措施. 在与他们的机器交互之前,您应该尽可能多地了解您的目标。


让我们假设防守者有五种不同的技能水平,以估计理想的攻击向量。这些将是简化,正确的做法应该是在尝试任何有风险的程序之前更多地了解目标。

  1. 一点技能都没有。目标实际上对硬件安全一无所知。他们可能会在离开时运行防病毒软件并锁定计算机,但仅此而已。上述任何技术都有可能起作用。一般人可能属于这一类。

  2. 技能水平低。目标对硬件安全的了解非常有限。他们能够找到并运行预先编写的防御软件。他们使用未经修改的消费类硬件,并且可能不检查是否启用了 DMAR。在这种情况下,DMA 攻击很容易成为最有效的攻击。插入 PCIe 设备可以读取内存。具有安全意识的高级用户可能属于这一类。

  3. 中等技能水平。目标对硬件安全有很好的了解。他们的计算机可能对其进行了一些基本修改,例如环氧树脂阻塞敏感端口。他们也许能够为各种攻击编写基本的防御软件。DMAR 可能得到支持和正确执行,使得 DMA 攻击变得不切实际。当连接新的 PCIe 设备时,系统可能会或可能不会做出防御性反应。在这种情况下,JTAG 攻击将是最有效的。如果不使用 TRESOR,则可能会发生冷启动攻击。一个特别聪明的业余安全研究员可能属于这一类。

  4. 高技能水平。目标对硬件安全有深入的了解,并可能访问其硬件制造商的未发布或机密文件。他们的系统要么经过大量修改,要么完全定制。入侵检测可能包括机箱内部或附近的摄像头。单个敏感芯片、走线和总线可以封装在防篡改环氧树脂中。JTAG 接头可能会被物理破坏或连接以警告系统受到攻击。攻击以这种方式运行的系统需要深入了解目标、大量定制硬件和新颖的攻击。为政府处理敏感数据的大型安全承包商的员工可能属于这一类。

  5. 民族国家技能水平。目标拥有与民族国家相当的资源。芯片组本身很可能是内部设计的,并由承包商在安全的现场工厂中制造。每个组件都是该目标自身供应链的一部分。自定义防御机制可能会一直执行到微观级别(例如复杂的芯片脱落保护机制)。如果检测到篡改,可能会发生物理破坏(和黑色装袋)。该器件完全屏蔽了 RFI/EMI 泄漏。加密模块至少可以通过 FIPS 140-2 4 级认证,并且机器上运行的软件可能至少部分经过正式验证和测试,达到 EAL7+。FVEY 或 SSEUR 成员的高度敏感和资金充足的分支机构可能属于这一类。