我最近换了一个全新的 Windows 8 x64 系统,我发现我最喜欢的防火墙(JPF - Jetico 个人防火墙)无法与 Win8x64 兼容(CRITICAL_STRUCTURE_CORRUPTION 错误),但我不能没有 JPF,因此我尝试了所有能想到的方法(测试模式、调试、各种系统更改),但由于防火墙驱动程序/软件,我仍然出现蓝屏。
我确信是防火墙导致了问题,因为我一安装它就出现蓝屏,卸载它后蓝屏就停止了。我也在虚拟计算机上彻底测试了它。
无论如何,我发现通过使用此命令可以完全关闭 DEP:
bcdedit.exe /set {current} nx AlwaysOff
防火墙不会再导致蓝屏。
我的问题是,如果完全关闭 DEP 会出现什么问题?
注意:我不太关心硬件/Windows 安全性,我使用沙箱和虚拟计算机来保证自己的安全(而且我也有备份),所以我不担心病毒和 root 工具包或任何人们担心的东西。
答案1
环境保护署并不是为了防止坏程序做坏事,而是为了防止坏程序利用好程序中的漏洞做坏事。(地址空间布局随机化(ASLR)属于同一类别)
它的功能是允许程序告诉系统:“嘿,你看到这边的这个内存部分了吗?这是数据,不是代码。这永远不应该被执行。如果你发现我试图像代码一样执行它,请立即终止我。”这使得受信任的程序可以更安全地处理不受信任的数据,因为存储不受信任数据的内存可以被标记,并且如果恶意数据诱骗主机程序尝试运行这个受保护的内存,CPU 可以立即向操作系统发出异常,并且操作系统可以在程序被接管之前终止它。
禁用 DEP 将允许恶意代码在内核和应用程序中执行缓冲区溢出、堆溢出和堆栈破坏攻击。
你的程序将继续工作但它们很容易被恶意代码接管和利用。有可能“突破”沙盒,或者通过发送恶意数据包来控制防火墙或者让网站控制您的网络浏览器。
沙盒和虚拟机的工作原理是使用受信任的程序来监视和过滤不受信任的代码,从而小心地确保不受信任的代码不会执行恶意操作。DEP 是几个重要功能之一,可防止不受信任的代码控制受信任的程序并伪装成受信任的程序执行操作。
此外,DEP 已经存在 6-8 年了,所以它并不是什么新鲜事。我认为大多数正在积极开发的应用程序,尤其是任何标榜为安全的应用程序,早就支持它了,而我很难相信任何不支持的应用程序。微软最终在其操作系统的消费者版本中强制默认启用它是有原因的,而且它在服务器版本中已经默认为“启用”一段时间了。
致电 JPF 的支持部门,抱怨他们糟糕的、过时的安全措施。Windows 防火墙并不出色,但希望它能完成工作,直到他们修复产品为止。要么您最终得到想要的防火墙,正常工作,要么您了解到您真的不应该信任他们处理任何与安全相关的事务。
答案2
注意:我不太关心硬件/Windows 安全性,我使用沙箱和虚拟计算机来保证自己的安全(而且我也有备份),所以我不担心病毒和 root 工具包或任何人们担心的东西。
如果那样的话,就没什么了。关掉它。