从外国情报机构保护笔记本电脑

信息安全 身体的 硬化 物理访问 防篡改
2021-09-04 09:22:39

保护单一用途的 Windows 笔记本电脑免受外国情报机构篡改机器数据的最佳实践是什么?这台机器每年会被两个人使用几次,他们独立验证彼此的工作并打印结果。该机器不需要访问互联网,但在使用时需要连接到打印机。

到目前为止我想到的一些事情:

  • 使用带有 TPM 模块的笔记本电脑。
  • 加密驱动器。
  • 禁用网卡。
  • 禁用 USB 端口。
  • 在机器上使用强密码。
  • 不使用时,将机器物理存放在带锁的保险箱中。
  • 使用时,请由两名不同的保安人员运送笔记本电脑。
  • 虽然不在保险箱内,但笔记本电脑总是由至少两个人照看。
  • 笔记本电脑将是全新安装的 Windows,没有安装第 3 方软件(不确定在这种情况下是否有更新)。
  • 计算机上的自定义软件在运行时会计算其二进制文件(例如 exe 和 dll)的哈希值,并生成一个代码,用户将与已知值进行比较以检测篡改。

有什么改变或补充吗?

2个回答

我假设出于某种原因,您不能在多个国家或地区使用十几台不同的笔记本电脑来执行相同的活动以提供极高的冗余(正如对该问题的评论中所指出的那样)。如果任何一台笔记本电脑的结果不同,则可以假设其中至少一台受到损害,并且可以启动事件响应。可以扩展独立计算的数量以满足您的要求。这当然假设在笔记本电脑上完成的活动是确定性的,并且只有一个“正确答案”,允许任何诚实和不妥协的一方提出完全相同的结果。

假设您需要最大限度地提高单台笔记本电脑的完整性,您的计划似乎很可靠。但是,我会对您的提案进行一些更改和补充:

  1. 切换到 Linux,以便在修补之前不会将漏洞提供给民族国家

  2. 要求处理笔记本电脑的人提供全面的监管链

  3. 不要只是禁用未使用的外围设备,用防篡改环氧树脂覆盖它们。

  4. 禁止使用任何不受信任的外围设备。甚至 VGA/HDMI 也可能容易受到攻击!

  5. 不要使用自定义软件来散列二进制文件。安全软件已经存在。

  6. 需要智能卡来识别设备。沙米尔的秘密分享很有用。

  7. 在安全区域工作或使用屏蔽设备注意 EMSEC。


相互认证

计算机的用户能够对其进行身份验证非常重要。通常,是用户向计算机进行身份验证,但在高风险环境中,计算机可能也需要向用户进行身份验证。这可以使用各种实验性的相互身份验证技术来完成,例如MARK,它使用有源 USB 设备。

每个使用笔记本电脑的人都应该使用智能卡作为身份验证过程的一部分。此卡应妥善保管。根据您的威胁模型,它甚至可能需要在人身上隐藏。可以使用秘密共享算法来确保需要一定阈值的授权个人才能对系统进行完全身份验证。可以这样设置,例如,五个人拥有密钥,并且其中至少三个人必须同时使用他们的密钥进行身份验证。这将防止最多两个人成为流氓,同时即使最多两个人失去访问权限,仍然允许身份验证。可以随意调整确切的参数,包括每个人的体重,以匹配您的威胁模型。

固件和软件完整性

假设 TPM 用于SRTM,它将能够检测到对引导加载程序和相关软件以及某些固件甚至 BIOS 本身的任何修改,假设 BIOS 包含只读引导块(CRTM)。如果还使用加密,这将提供更高级别的防篡改。不幸的是,大多数块模式都是可延展的(即使不知道密钥也可以智能地修改明文),因此即使在启动后也有必要让操作系统验证系统的所有组件,例如通过使用IMA,完整性测量架构,可用在 Linux 上。* IMA 可能会通过中断需求分页来降低 I/O 性能

通常,即使操作系统忽略 NIC 或 USB 控制器,它们仍将处于活动状态。易受攻击的 BIOS 可能会通过此类接口受到损害。大多数系统的 BIOS 非常不安全,允许本地攻击者(机器上运行的恶意进程)和物理攻击者获得更高的权限。您可以使用CHIPSEC框架对 BIOS 安全性进行一些有限的分析。该框架旨在验证平台固件的某些安全属性。重要信息可在他们的 wiki 上找到。该框架主要是为 BIOS 供应商和 OEM 设计的,他们希望寻找允许在运行时覆盖固件的漏洞,尽管标准软件写入锁定已到位。

* 我对 Windows 几乎没有经验,但我相信该操作系统可以支持这种完整性。但是,重要的是要记住,民族国家通常会在 Windows 中的漏洞被公开披露甚至修补之前得到事先通知。出于这个原因,Windows 可能不是最好的使用平台。

物理攻击

如果有人可以不受限制地物理访问笔记本电脑,那么它就不再是您的笔记本电脑了。许多不同的物理攻击是一个可以进行。其中一些可以缓解,而另一些则需要您对笔记本电脑进行物理修改以缓解:

  • DMA 攻击- 许多外设支持内部和外部的直接内存访问。外部 GPU、Thunderbolt、Firewire 以及内部 PCI 和 PCIe 端口都支持 DMA。这种支持允许将设备连接到这些接口的任何人对任意内存位置执行读写操作。缓解措施要求您的笔记本电脑具有适当的DMAR表和现代 IOMMU(英特尔的 VT-d2)。您还必须在启用 IOMMU 的情况下启动,例如通过传递intel_iommu=on到 Linux 上的启动命令行。

  • 冷启动攻击——通过移除内存模块并将它们放在不同的设备中进行读取,可以被动地检索内存。这允许他们读取敏感数据,但不允许篡改,因为这是一个高度侵入性的过程,必然需要关闭目标机器。全内存加密可以缓解这种情况,使用 ECC 内存也会使攻击复杂化(ECC 通常需要在初始化期间将内存模块重置为已知状态)。

    冷启动攻击只会损害内存中数据的机密性,而不是完整性。如果您只需要完整性,那么冷启动攻击与您的威胁模型无关。

  • JTAG - JTAG是主板上的调试协议和接口,适用于许多设备,从简单的CPLD到复杂的企业 x86 处理器。JTAG 探针插入接口允许对芯片组进行完全、绝对的控制,允许它们停止机器、读写寄存器和内存,并与外围设备交互。如果攻击者设法使用 JTAG 连接到目标,那么所有的赌注都将失败。您需要确保设备没有 JTAG 接头,或者接头已损坏或涂有环氧树脂。

此外,物理攻击可能涉及连接到易受攻击的外围设备。几乎所有东西都可能容易受到攻击,甚至VGA 和 HDMI也可以通过滥用 EDID 之类的东西来加以利用。USB 设备可能支持DCI,并且一些无法在其 BIOS 中禁用它。这些系统可以看到滥用USB来传递 JTAG 命令,而无需打开机器并将探针连接到主板。网络接口可能容易受到攻击,并且已经发现了漏洞。有时仅仅禁用软件中的端口是不够的,正如各种 DCI 漏洞所显示的那样。您可能需要使用强环氧树脂物理阻塞端口。

物理篡改证据

有几种方法可以检测对设备的物理篡改。所有这些方法都需要您从多个角度拍摄机器的高分辨率照片,以便您可以随时将它们与您的实际机器进行比较,您怀疑它可能已被修改。任何检测物理篡改的解决方案都将显示为照片与实际设备之间的差异。一般的想法是在设备的敏感区域放置一些东西,如果该区域被侵入,这些区域会明显损坏或移动。几个例子:

  • 安全胶带- 标准方法是使用防篡改安全胶带这些是贴纸或胶带条,如果它们被移除,它们会在表面留下独特的标记,并且它们的设计是为了抵抗蒸汽或其他用于轻轻地将它们拉下的技术。这些可以得到相当昂贵的支持功能,例如全息标签和独特的标记。

  • 环氧树脂- 环氧树脂是一种强力胶状物质,它会在不破坏其涂层的任何东西的情况下凝固并且不能轻易去除。有许多类型的环氧树脂具有不同的强度和性能。您可能需要一种设计为抗篡改(例如设计为不易用溶剂或细钻去除),以及非导电和非热绝缘的,以防止短路和过热。如果使用得当,环氧树脂既可以抵抗物理攻击(防篡改),又可以使成功的攻击可见(防篡改)。

  • 指甲油- 有很多闪光的指甲油实际上非常非常有用,作为贫民窟安全封条的一种形式。当放置在系统的接头周围时,在不移动闪光的情况下打开它变得非常困难。一旦闪光受到干扰,几乎不可能将其恢复原状,从而为防守者留下宝贵的证据。

排放安全 (EMSEC)

当你有民族国家作为对手时,对电磁信号的秘密监测是一种非常现实的可能性。这些信号可用于读取20 米或更远的击键。它可用于执行Van Eck Phreaking以通过墙壁查看计算机显示器。它可用于通过在处理加密材料时监听处理器来破解加密。缓解这种情况需要一个大而安全的周界(几百米),或使用TEMPEST 认证的设备这些认证确实来自政府(例如 NATO SDIP-27 和美国 NSTISSAM),但它们允许设备被认证为对 EMI/RFI 泄漏具有免疫危险性。

除非您在一个安全的屏蔽室或有一个大而安全的周边,否则您必须确保您的设备在用于敏感操作时受到屏蔽。虽然与电磁学不严格相关,但在没有窗户的房间内使用该设备也很重要,就像高度安全的政府设施一样。这可以防止使用激光麦克风恢复音频(来自对话和键盘)如果您的预算或环境使这一切成为不可能,您必须依靠标准的 OPSEC 来防止您的对手在关键时刻足够接近以记录敏感排放。

我想为@forest 的出色答案添加一层简化。

将整个系统刻录到只读媒体

并保护 DVD(或蓝光)不被攻击者交换。

一旦软件套件和操作系统系统映像确实干净,就可以将它们刻录到不可重写的媒体中。这个想法是每次从 DVD 运行实时操作系统和软件套件,使用 RAM 作为临时存储。问题没有提到应用程序是否需要在磁盘上保存状态,或者是否可以加载从 USB 密钥或按键输入的火箭坐标。只要物理介质保持不变,您几乎可以保证运行原始软件。

这为您提供了一个优势:如果您怀疑硬件已受到损害,您可以获取一个新的或将机器作为虚拟机运行在干净的虚拟机管理程序上。

鉴于外国情报的力量,你仍然需要大量的离线安全。还有一点预算...

  • 标记并保护您的媒体,使其难以与运行流氓软件的篡改 DVD 交换
  • 保护您的供应链:如果新购买的笔记本电脑首先交付给 3-letter-agency,他们可能会破坏硬件并安装 rootkit
  • 问题没有提到隐私,因此在不太可能被外国情报篡改的本地云提供商上使用计算资源是一种在软件执行位置上欺骗攻击者的方法。经常更换提供者是一个加分项
  • 您仍然可以在您选择的地方借用笔记本电脑

威胁

如果外国情报破坏了运行您软件的笔记本电脑,他们可能会尝试使用 rootkit 进行非常有针对性的冷启动攻击。

假设攻击者非常了解您的软件,拥有无限的预算并且想要破坏您的计算结果,他们可以使用恶意引导加载程序来加载针对您的应用程序的修改内核。从理论上讲,这样的内核可以从改变已知的内存寄存器到通过外围驱动程序将精心制作的数据发送到打印机造成任何伤害。或者(更改文件系统例程)加载修改后的可执行版本,而哈希检查报告磁盘上的可执行文件从未被篡改。

如果您能够快速不可预测地更改正在执行的硬件,那么您将获得克服这种威胁的重大优势。例如,您可能想(派人)通过当地的 BestBuy、MediaWorld 或类似机构以现金购买笔记本电脑。

如果您怀疑需要更改它,外国攻击者必须破坏整个供应链以发现您将使用的硬件。相当阴谋论者,对我来说太阴谋论者了。

监管链

我记得@forest 在他的初始列表中的第 2 点。您必须确保只读媒体和可能的笔记本电脑的监管链一致。媒体上的永久墨水手签名是我目前最好的主意。