Windows 10 强化漏洞缓解技术,提升攻击成本

本文详细介绍了Windows 10中新增的控制流防护(CFG)等漏洞缓解技术,通过增强内存保护和随机化机制,提高攻击者利用漏洞的难度,有效防御代码劫持和恶意代码执行攻击。

Windows 10: 强化漏洞缓解技术提升攻击成本

系统和应用程序的漏洞利用,替换为恶意代码并执行是典型的攻击手法之一。这种情况下,攻击者以漏洞为跳板,进行额外恶意软件安装等操作,最终可以任意操控计算机。应用安全更新程序是应对漏洞的最佳策略,但并非总能立即应用,或者在零日漏洞情况下,攻击可能在安全补丁创建之前就已执行。

为了保护系统免受此类情况影响,Windows 10 搭载了更强大的功能,使有效攻击代码的开发变得更加困难。

强化漏洞缓解功能

作为威胁抵抗的一种方式,同时也是为了提高攻击成本,Windows 配备了多种缓解功能,防止(或增加难度)利用漏洞执行恶意代码。随着 Windows 版本的迭代,针对当时攻击手法的功能不断添加和强化,Windows 10 新增了控制流防护(CFG)这一缓解功能。

Windows 版本 新增/强化功能 效果
Windows 2003 以前 无防御
Windows XP SP2 - DEP
- /GS
- SafeSEH
- Heap hardening v1
数据区域代码执行防止,栈、异常处理、堆保护
Windows Vista/7 - ASLR v1
- SEHOP
- Heap hardening v2
内存布局随机化,异常处理、堆保护强化
Windows 8 - ASLR v2
- Kernel SMEP & DEP
- Heap hardening v3
内存布局随机化改善,堆保护改善
Windows 10 - 控制流防护 仅正常函数可调用

表:各版本 Windows 新增的主要内存保护功能

漏洞利用与缓解功能的历史

以 2003 年震撼全球的 Slammer 和 Blaster 攻击为转折点,微软在可信计算(TwC)的名义下启动了安全开发生命周期(SDL),并在 Windows XP SP2 中配备了多种防止(或增加难度)漏洞利用的缓解功能。

攻击者能否成功利用漏洞,取决于能否将利用代码准确放置在内存的特定位置。数据执行防止(DEP)通过限制内存上的代码可执行区域(防止数据区域执行),缩小了攻击者可以插入恶意代码的范围,使其执行变得困难。Vista 中引入的地址空间布局随机化(ASLR)通过随机化应用程序的内存地址,使攻击者难以执行利用代码。

DEP 和 ASLR 是非常有效的功能,但遗憾的是,由于遗留依赖和应用程序兼容性等问题,在 Windows 7 及更早版本中,仅部分 Windows 功能有效。为此,Windows 8 解决了兼容性问题,使其能够在整个系统中使用。此外,ASLR 2.0 通过增加熵值和应用于 64 位内存地址,扩大了可随机化的内存区域范围,增强了对暴力攻击等的抵抗能力。

检测/阻断代码劫持的控制流防护

Windows 10 新增了控制流防护(CFG)这一新的缓解功能。这是作为绕过 ASLR 手法的对策而诞生的。如前所述,ASLR 通过随机化应用程序执行的内存地址,使攻击者难以插入并执行代码。但是,例如通过使用“Use after Free(释放后使用)”等手法,攻击者可以确定应用程序正在使用内存的哪个位置,从而绕过 ASLR。

CFG 由此诞生。CFG 通过仅调用正常函数,防止恶意函数的加载。它字面意义上监视应用程序的代码流和连续性,在代码劫持等间接调用执行之前,验证其是否安全且符合预期,如果判断为异常,则终止应用程序,从而防止恶意代码的执行。这样,即使 ASLR 被绕过,恶意代码被插入,CFG 也能检测到代码劫持并防止执行,从而避免进一步的敏感信息窃取或远程操控 PC 等实际损害。从安全强化的角度,我们也推荐开发者使用 CFG 编译应用程序。

结语

事实上,只要是人类编写代码,漏洞就不可避免。在减少开发阶段漏洞的努力的同时,平台和应用程序自身检测或阻止恶意代码执行的缓解技术的进一步提升,虽然可能不起眼,但仍是未来的期待所在。

相关信息

  • 数据执行防止:常见问题
  • 第 13 回 Windows Vista 的安全功能~ Address Space Layout Randomization ~
  • 控制流防护参考信息:Visual Studio 2015 Preview: Work-in-Progress Security Feature

Windows 10 相关博客

  • Windows 10: 介绍防止问题更新程序和驱动程序通过 Windows Update 安装的工具 (2015/07/31)
  • Windows 10、Microsoft Edge、首次月度安全发布 – 解读 (2015/08/12)
  • Windows 10: 什么是 Wi-Fi 传感器(Wi-Fi Sense)?正确理解并使用 (2015/08/21)
  • Windows 10: Windows Update 的主要变更点 (2015/08/27)
  • Windows 10: Microsoft Passport: 无密码时代的开端 (2015/09/11)
  • Windows 10: 再见密码,你好 Windows Hello (2015/9/18)
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计