sfc 实用程序如何检查文件完整性?

sfc 实用程序如何检查文件完整性?

我们知道,在 Windows 操作系统中,sfc 是一个众所周知的实用程序,用于检查关键系统文件的完整性。

如果发现更改,则将其替换为 Wsxs 文件夹或类似文件夹中的压缩文件。

但是,天真的黑客可能会替换压缩版本(通过在 Linux 中启动,然后写入 Windows 分区)。

所以,我不清楚 sfc 如何安全地检查系统文件的完整性。比如说,黑客可以更改当前的 svchost.exe 文件及其存档版本。

答案1

我不清楚 SFC 如何安全地检查系统文件的完整性。

SFC 是 WFP(Windows 文件保护)的一部分。

它使用代码签名生成的文件签名和目录文件来检查文件是否被修改/损坏和代码签名。

当然,这并不能阻止黑客在 Linux 中启动然后写入 Windows 分区,但它确实提供了一种修复机制,确保所有关键的 Windows 文件都是正确的版本。

请记住,如果黑客可以物理访问机器,那么一切都将不复存在。如果发生这种情况,没有什么可以阻止黑客为所欲为。

WFP 保护作为 Windows 的一部分安装的关键系统文件(例如,扩展名为 .dll、.exe、.ocx 和 .sys 的文件以及一些 True Type 字体)。WFP 使用代码签名生成的文件签名和目录文件来验证受保护的系统文件是否为正确的 Microsoft 版本。

仅通过以下机制支持替换受保护的系统文件:

  • 使用 Update.exe 安装 Windows Service Pack
  • 使用 Hotfix.exe 或 Update.exe 安装的修补程序
  • 使用 Winnt32.exe 升级操作系统
  • Windows更新

...

WFP 功能使用两种机制保护系统文件。第一种机制在后台运行。当 WFP 收到受保护目录中文件的目录更改通知时,将触发此保护。收到此通知后,WFP 将确定哪个文件已更改。如果文件受保护,WFP 将在目录文件中查找文件签名,以确定新文件是否为正确版本。如果文件不是正确的版本,WFP 将用缓存文件夹(如果位于缓存文件夹中)或安装源中的文件替换新文件。

...

WFP 功能提供的第二种保护机制是系统文件检查器 (Sfc.exe) 工具。在 GUI 模式安装结束时,系统文件检查器工具将扫描所有受保护的文件,以确保这些文件不会被使用无人参与安装方式安装的程序修改。系统文件检查器工具还会检查用于跟踪正确文件版本的所有目录文件。如果任何目录文件丢失或损坏,WFP 将重命名受影响的目录文件并从缓存文件夹中检索该文件的缓存版本。如果缓存文件夹中没有目录文件的缓存副本,WFP 功能将请求适当的媒体来检索目录文件的新副本。

来源Windows 文件保护功能说明

相关内容