2017-05-09 291 views
3

MSDN引用:何时我不希望在Microsoft Visual Studio中启用“Control Flow Guard”?

控制流卫队(CFG)是创建打击内存损坏漏洞高度优化的平台安全 功能。 通过严格限制应用程序可以在其中执行代码 的位置,它使攻击通过诸如缓冲区溢出之类的漏洞执行任意代码 更加困难。

我们 强烈鼓励开发者为他们的应用程序启用CFG。 您不必为代码的每个部分都启用CFG,因为已启用CFG的混合模型 且启用非CFG的代码将正常执行。但是如果失败 为所有代码启用CFG可以在保护中打开空白。 此外,启用CFG的代码在“CFG-Unaware”版本的 Windows上正常工作,因此完全与它们兼容。

那么什么时候我不启用它?

或换句话说,在启用它之前我需要检查一下我的代码,以及的风险是什么

回答

1

看起来像它让程序运行得更慢。不过,他们并没有说多少。文章的简单语言表明,所有的间接调用都正在通过内核?如果这是真的,这确实是灾难性的。

+0

这是一篇很好的文章,详细介绍了[在Windows 10中探索Control Flow Guard,Jack Tang,趋势科技威胁解决方案团队](http://sjc1-te-ftp.trendmicro.com/assets/wp/exploring -control-guard-in-windows10.pdf) – paulsm4

+0

我做了很多工作,但决定其他人必须提出同样的问题,并且用清单等可以得到**许多**票。由于谷歌的前几个命中没有任何内容能清楚地列出负面信息。 –

+0

我不认为间接调用会在内核地址空间附近的任何地方出现,只是在用户地址空间中运行的一个windows lib检查它们。但是,由于内核可以移动关于进程何时开始的功能,因此它已经停止在系统中。 –

相关问题