0

我试图了解文件完整性监控的工作原理,但我觉得我错过了一些东西。根据我的阅读,要监控的文件的加密哈希存储在数据库中。然后,定期重新计算这些文件的哈希值并进行比较以检查更改。这是我的问题:

  • 如果定期检查当前哈希值的代码与我们正在检查的代码在同一台服务器上,并且服务器受到威胁,那么攻击者是否也不能修改完整性检查器?这似乎会打败整个观点。

  • 但是,如果检查器位于另一台机器上,则您必须将所有文件从服务器传输到检查器机器以计算哈希值。这可能非常耗时且占用大量带宽。

我错过了什么?

更新:我徒劳地遇到了一个有趣的想法。对于类似的问题,有人建议使用 rsync来比较哈希。我知道这不是 rsync 的用途,但经过一些初步测试后,它似乎可以工作(而且速度非常快)。想法?

4

1 回答 1

2

这取决于威胁模型。如果攻击者不知道您正在检查您的哈希值,那么任何检查都将起作用。如果攻击者拥有您的系统,那么唯一可行的方法就是离线检查。

关于您的第一点,您是对的,一旦拥有一个系统,您就不能相信它,但您可以取出驱动器并离线比较更改。您可以使用它来诊断攻击。此外,您可以从只读媒体(例如之前刻录的 DVD)运行,它不会阻止所有攻击,但同样取决于线程模型,它会阻止一些攻击。

关于第二点,如果您信任校验和计算器,您可以将哈希移动到“校验机”。请注意,有动机的攻击者可以在本地运行修改后的文件时向您提供文件的“原始”副本以远程发送,或者甚至在所有其他情况下运行修改后的文件时将原始副本提供给本地检查器,如果他们有足够的权限。

于 2013-08-14T21:14:36.850 回答