1、本来是系统BUG,成为流行攻击手段
这个新增加的功能就是内核模式硬件强制堆栈保护。它从Win11 22H2开始就“入驻”了系统,不过现在仍然有大量的用户没有启用这个防护系统功能。
说到堆栈保护,就不得不提为什么要“堆栈保护”。这一切都源于堆栈缓冲区溢出的系统bug以及利用这个bug进行攻击的黑客行为。
要了解基于堆栈的溢出攻击,至少要对计算机内存有基本的了解。计算机内存只是数据和指令的存储空间,数据用于存储数字、字母、图像和其他任何东西,而指令则告诉计算机如何处理数据。
要改变运行中程序的行为,其实并不需要更改指令,只要稍加了解,可写数据内存就能提供多种影响指令执行的机会和方法。堆栈缓冲区溢出就是一个方法。
堆栈缓冲区溢出,是指当一个程序试图向堆栈(stack)或缓冲区中写入超出其分配的内存空间的数据时发生的一种安全漏洞。这种漏洞通常被黑客用来在系统中执行恶意代码或者破坏系统的运行。
打个比喻,就是假设你有一个邮箱信箱,只能装下10封信。现在有人给你寄了11封信,这时你的邮箱就会溢出。
攻击者可以利用堆栈缓冲区溢出来执行恶意代码,例如在计算机中运行病毒或者窃取敏感信息。典型的表现和症状包括程序崩溃、系统变慢、显示异常错误消息、弹出未经授权的窗口等。普通用户可能会发现他们的电脑突然变得异常缓慢,或者不断弹出一些奇怪的窗口或警告,这可能是受到了堆栈缓冲区溢出攻击的迹象。
2、防护:用“假”堆栈来检验攻击
为此,Win11退出了内核模式硬件强制堆栈保护功能。
这个功能需要一个特殊的基于硬件的临时堆栈(称为 "影子堆栈")才能工作。
程序的函数被调用时,返回地址会同时存储在正常堆栈和影子堆栈中。当函数返回时,硬件强制堆栈保护功能会检查主堆栈的返回地址是否与影子堆栈中存储的地址一致。如果返回地址匹配,函数将按预期返回,程序将继续正常执行。但是,如果返回地址不匹配,则可能表明存在攻击,如堆栈缓冲区溢出或 ROP 攻击。发生这种情况时,Windows 会终止进程,以防止恶意代码的执行。
不过,由于影子堆栈的启用需要英特尔的控制流执行技术 (CET) 技术,因此该功能只能在较新的 CPU 上使用:电脑必须安装英特尔 Tiger Lake CPU 或 AMD Zen3 CPU 及更高版本,并在 BIOS 中启用 CPU 虚拟化。
3、如何启用内核模式硬件强制堆栈保护?
虽然 Windows 内核模式硬件强制堆栈保护功能理解起来比较复杂,但启用该功能却相当容易。
如果运行的是带有最新更新的 Windows 11 22H2,请打开 "Windows 安全 "并进入 "设备安全">"核心隔离"。如果拥有所需的硬件并启用了 CPU 虚拟化,将看到一个名为 "内核模式硬件强制堆栈保护 "的设置。
要启用该功能,只需将其切换为 "开",Windows 就会检查已加载的设备驱动程序,查看是否有可能与安全功能冲突的驱动程序。
如果检测到任何冲突的驱动程序,它会提示你查看驱动程序列表,更新到较新版本后才能启用该功能。
将驱动程序更新到最新版本后,可以尝试再次启用该功能,看看是否会出现进一步的冲突。
如果没有发现冲突的驱动程序,Windows 可能会提示您重新启动计算机以启用该功能。
4、开了这个功能会出什么问题?
但对于游戏玩家来说,当启用该功能时。你可能会发现特定程序不再工作,因为它们的驱动程序与内核模式硬件强制堆栈保护功能相冲突。某些游戏可能停止启动,Windows 会指出驱动程序不兼容,并提示禁用安全功能。
许多冲突都与游戏使用的版权保护和反作弊驱动程序有关,包括绝地求生、无畏契约、命运2、原神等游戏的反作弊模组。都可能会出现这个提示。不过,随着越来越多的用户开始使用这一Windows 安全功能,这些反作弊和版权保护程序也会升级,以支持堆栈保护。
2024-01-10
2023-12-12
2024-03-02
系统资讯推荐
win10系统推荐
系统教程推荐