标题:Windows 启动过程的保护技术 出处:gOxiA=苏繁=SuFan Blog 时间:Mon, 04 Jul 2022 01:50:00 +0000 作者:gOxiA 地址:https://sufan.maytide.net/read.php/2041.htm 内容: Windows 启动过程的保护技术 “安全”是这些年最热门的话题之一,Windows 操作系统也在不断完善和增强自己的安全性,我们看到了显著的成果。今天 gOxiA 来分享一些关于 Windows 启动过程的保护技术。 对于Windows启动过程所面临的威胁恐怕当属Rootkits,作为恶意软件的一部分,它可在内核模式下运行,将拥有与操作系统相同的权限,并且先于操作系统启动,可想而知它的威力、自身隐藏和防御机制有多强大。 Rootkits可以在启动过程的不同阶段加载不同类型的Rootkit: Firmware rootkits,可覆盖PC的I/O系统或其他硬件固件,从而可先于Windows启动。Bootkits,可取代操作系统的引导加载程序,也可实现在操作系统之前加载。Kernel rootkits,可取代操作系统内核的一部分,因此可随Windows加载时自启动。Driver rootkits,将伪装成Windows用于与硬件通信的受信任驱动程序的一部分。 Windows 目前支持四项功能,以帮助防止在启动过程中加载 Rootkit 和 Bootkit。 Secure Boot,即“安全启动”通过将具有 UEFI 和 TPM 的电脑配置为仅加载受信任的操作系统启动加载程序。我们知道当 PC 启动时会首先寻找操作系统的引导加载程序,也就是我们常说的启动程序,没有安全启动的 PC 将无法判断它是受信任的操作系统还是 Rootkit,将会运行硬盘上的任何可引导加载程序。如果 PC 配备了 UEFI,当它启动时首先验证固件是否已进行数字签名,如果启用了安全启动,固件将检查启动加载程序的数字签名,确保其没有被篡改,如果引导加载程序完好无损,则仅当满足下列条件之一时,固件才会启动引导加载程序。 a. 引导加载程序是使用受信任的证书签名。对于经过 Windows 认证的电脑,Microsoft 证书是受信任的。 b. 用户已手动批准了引导加载程序的数字签名。此操作允许加载非 Microsoft 操作系统。Trusted Boot,即“受信任启动”Windows 在加载启动过程的每个组件之前进行完整性检查。在实际过程中,受信任启动将接管安全启动结束的位置。引导加载程序在加载之前验证 Windows 内核的数字签名。反过来,Windows 内核会验证其启动过程的所有其他组件,这包括了驱动程序、启动文件和 ELAM。如果文件被篡改,引导加载程序会检测到问题并拒绝加载损坏的组件。通常,Windows 可以自动修复损坏的组件,恢复 Windows 的完整性并允许 PC 正常启动。Early Launch Anti-Malware (ELAM),即“提前启动反恶意软件”在加载驱动程序之前进行扫描测试,防止加载未经批准的驱动程序。前面讲到安全启动保护了引导加载程序,而受信任启动保护了 Windows 内核,那下一个被恶意软件盯上的机会便是感染那些非 Microsoft 启动驱动程序。传统的防病毒软件在加载启动驱动程序后才会启动,这为伪装成驱动程序的 Rootkit 提供了机会。而提前启动反恶意软件(ELAM)可在所有非 Microsoft 启动驱动程序和应用程序之前加载微软或非微软的防病毒驱动程序,从而形成安全启动和受信任启动后的信任链。由于操作系统还没有启动,并且 Windows 需要尽快启动,因此 ELAM 有一个简单的任务:检查每个启动驱动程序并确定它是否在受信任的驱动程序列表中。如果它不受信任,Windows 将不会加载。ELAM 驱动程序并不是一个功能齐全的防病毒软件解决方案,我们熟知的 Windows Defender 就支持 ELAM。Measured Boot,即“度量启动”将记录每一次的启动过程,与之前受信任的启动数据进行比对,客观评估电脑运行状况。该项技术旨在防范那些看起来很健康,但其实已经感染了 Rootkit 的 PC 。这些 PC 可能正在运行防病毒软件,但其实已经感染了恶意程序。度量启动技术可以用来验证 Windows 启动过程的完整性,它会使用如下过程: 1) PC 的 UEFI 固件在 TPM 中存储固件、引导加载程序、启动驱动程序的哈希值,以及将在防病毒软件应用之前加载的所有内容。 2) 在启动过程结束时,Windows 将启动非 Microsoft 远程证明客户端。受信任的证明服务器向客户端发送唯一密钥。 3) TPM 使用唯一密钥对 UEFI 记录的日志进行数字签名。 4) 客户端将日志发送到服务器,其中还会包含其他安全信息。 根据实际运行数据和配置数据,我们可以确定客户端是否在正常运行。 综上,Windows 现行提供的启动保护技术创建了一个从根本上抵御 Rootkit 的体系结构。确保了 Windows 安全。参考文档:Secure the Windows boot process | Microsoft Docs Generated by Bo-blog 2.1.1 Release