保护计算机系统免受物理攻击的方法

信息安全 身体的
2021-08-14 17:05:55

我对用于检测针对计算机系统的物理攻击的具有成本效益和创造性的想法感兴趣。这包括但不限于防篡改安全措施。

考虑以下攻击场景:攻击者想要从硬盘驱动器获取数据。目标机器设置了全盘加密,设置了 bios 密码,启动优先级表明加密驱动器是第一个要启动的设备。

必须输入密码才能解密驱动器并启动机器。可以安装硬件键盘记录器来获取此Bus Sniffing可以击败一些全盘加密实现,但是为了进行这种攻击,必须打开计算机机箱。在任何一种攻击中,一段时间后,攻击者都可以返回并收集硬盘驱动器和截获的密码。

如何检测您的电脑机箱是否已打开?你怎么能阻止使用硬件键盘记录器?

这里还有一个关于绕过防篡改设备的精彩演讲。

编辑:现代物理安全状况非常糟糕。从字面上看,我当地沃尔玛的每一个门锁都可以在几秒钟内被挑选出来。美国的大多数家庭仍在使用数千年前最初由埃及人发明的弹子锁。

4个回答

试图检测这些攻击的问题在于,它们的共同目标——桌面工作站——在其生命周期的大部分时间里基本上都没有被观察到。即使它实际上位于桌面上,用户也很少注意它,除了按下电源按钮、插入/移除可移动媒体或插入/拔出附件——所有这些通常都可以从系统正面完成,而隐藏这些攻击的最简单方法是插入后方您也许可以强制要求所有桌面都实际保留桌面上,并将所有外围设备都插入前置端口,但这几乎肯定不会获得良好的用户接受度。

除了定期检查外围设备连接外,可能没有简单的方法来阻止硬件键盘记录器。您可以将其包含在您的最终用户培训中,但他们不太可能真正做到这一点,并且当他们无意中拔掉过程中必不可少的东西时,这增加了他们不得不寻求帮助的可能性。更好的方法(如果必须有的话)可能是让一组技术人员进行定期硬件检查。

检测计算机机箱本身违规的最简单且最具成本效益的方法是使用类似于 OEM 用于保修验证的贴纸。当然,这需要您定期检查所述标签以确认它没有被篡改。同样,这不是最终用户会很好接受或实施的东西。因此,您的技术人员需要定期检查他们的系统。您还必须确保上述技术人员可以访问这些标签,以便他们在维修系统时可以应用新标签,但随后我们会发现内部攻击的可能性。

或者,某些机箱和主板支持基于硬件的监视器,如果自上次开机后机箱已打开,则可以在启动时提醒您。这些可能会或可能不会轻易被规避(即:攻击者通过重启系统以在受害者再次使用警报之前解除警报来掩盖他的踪迹。)取决于设计,并且再次可能仍然容易受到内部威胁。

这是一个通用攻击,它击败了这里公开的大多数(否则是好的)想法:

攻击者购买了一个看起来像目标系统的 PC 机箱。在里面,他放置了一个系统,当它要求解锁密码时,它会显示与目标系统相同的登录屏幕。但是一旦用户输入他的密码,系统就会通过网络(可能是无线的)发送密码然后自杀(例如,它会引爆一些烟花来模拟发生故障的化学冷凝器,然后进入空白屏幕)。然后,攻击者只需要盗取整台计算机并将他的仿制品放在它的位置上。当然,这会被发现,但为时已晚:攻击者已经拥有硬盘和解锁密码。

(一种更便宜、更容易的类似攻击是用看起来和工作方式相同的复制品替换键盘,但还包括键盘记录器。)

当然,这种攻击不一定适用,而是因为上下文因素;例如,计算机在公共场所,不可能有人偷偷夹着一个完整的计算机机箱逃脱(除非伪装成某种 IT 操作员,留着牛仔裤和蓬乱的胡须,在这种情况下,这可能会被拉下来)离开)。这凸显了环境的重要性

同样,键盘记录可以远程完成。例如,攻击者可以将摄像头粘在天花板上,并可以看到键盘的全貌。ATM和类似设备(例如 24/7 加油泵)经常这样做,因此摄像机及其隐蔽安装的专有技术已经很普遍。这个例子表明重要的不是计算机的完整性,而是使用秘密数据的完整环境的完整性,这里的“秘密数据”包括用户的密码。


通常,可以通过三种方式预防诸如您所解释的攻击:

  1. 攻击者无法更改计算机的物理完整性,例如无法访问它。示例:计算机周围的锁定外壳。

  2. 有一个系统可以保证,如果攻击者尝试攻击,他将被识别(可靠且迅速)。这是一种心理威慑(这可能会使攻击对攻击者“不值得”)。示例:安全摄像头。

  3. 假设发生了攻击,您可以在最后一分钟检测到它,就在输入目标密码之前。

防篡改系统专注于第三种方法,但这是最后的手段:只有在前两个级别的方法失败时,这些系统才能发挥作用。从这个意义上说,首先应该在其他两个层面上做出努力。

物理安全的问题是:

如果攻击者可以物理访问机器,那么就没有安全性。

不幸的是,对于最终用户工作站,几乎没有什么可以做的。在我工作的地方,我们使用真正是台式机的工作站。因此,在终端用户的视线范围内将安全标签贴在前面的外壳上很容易。如果案件被打开,案件入侵系统可以发送警报,但也可以反击。我能想到的最好的安全解决方案是四倍的。

  1. 对存放计算机的位置的物理访问控制。被授权在该地点工作的员工可以使用 RFID 卡或身份证上的一些磁条或条形码通过锁着的门进入。这允许在每个员工的基础上审核对该位置的访问。

  2. 强制用户使用两因素身份验证:你知道的东西和你拥有的东西。市场上有几种解决方案。一个例子是广受欢迎的 RSA SecurID 令牌。

  3. 不要在最终用户机器上存储敏感数据。仅将其存储在服务器上。使用网络访问控制加强数据安全。

  4. 教育你的用户。

#1 的一个有趣效果是,如果用户在没有访问该位置的记录的位置登录计算机,则可以标记该差异以供审查。此外,配置一个解决方案,在他们上次登录时显着显示登录时间和登录持续时间。Unix 机器已经这样做了,但我还没有在 Windows 机器上看到这一点。

对于服务器,机器通常存放在某个密室里。不要使用钥匙进入上锁的服务器机房,而是使用#1 的方法。这样一来,访问被限制在房间内,可以进行访问审核,如果有人因某种原因被放开,您可以将其从访问系统中删除,而不必担心他们复制了房间的钥匙。

作为旁注,我想提一下,如果有足够动机的攻击者获得了对计算机的访问权限并移除了硬盘,那么即使是硬盘的硬件密码也不会阻止他们访问存储在驱动器上的数据。我不久前在某处读到,驱动器本身将加密密钥存储在用户无法访问的磁盘盘片上。但是,攻击者可以打开驱动器并直接读取密钥,从而解密整个驱动器。

最后,在涉及人身安全时,一个足够积极的攻击者必须逮捕和起诉他们。或者把它们拖出来射击它们……为了更好的衡量,两次。

我曾经有一台戴尔电脑,它会在任何时候打开箱子时通知我。重置通知是在 BIOS 中完成的。可能类似于计算机机箱入侵检测系统

诸如防篡改胶带之类的东西可能会起作用(如下图所示)。

防篡改胶带