查看原文
其他

Windows 10引入“Retpoline”对抗Spectre漏洞

小雪 看雪学院 2019-05-25

微软近期推送了Windows 10的最新更新,包含一项重要更改。Windows 10KB4482887(Build 17763.348)在某些设备上为Windows 10版本1809引入了“Retpoline”修复补丁方案,并计划将该补丁方案推广到更多设备。

早在2018年,当发现Meltdown(熔毁)和Spectre(幽灵)漏洞时,微软和其他科技巨头推出了软件更新来解决这些漏洞。虽然补丁解决了这些漏洞,但该报告显示可能会降低性能,范围在5%到30%之间。

为了解决性能问题,谷歌为Spectre Variant 2开发了名为“Retpoline”的修复方案。Retpoline方案的实现旨在提高各种平台(包括Linux和Windows)中SpectreVariant 2的性能。


Retpoline



Retpoline修补方案的作者是 谷歌基础设施技术部门的高级工程师Paul Turner,而在谷歌公司内部,他们已经将这种技巧应用于私有数据中心的Linux 服务器,只造成微小的性能损耗。

Retpoline 是一个软件结构,可以让间接分支从推测执行中分离出来,应用在保护敏感二进制文件(操作系统和管理程序),避免分支目标注入对间接分支造成的影响。


Retpoline 的名字源自于“回归”(return)和“trampoline”(蹦床),这意味着这是一个使用返回操作进行来回反弹的结构,形象地表现出在需要保护的内容中,相关的推测执行是通过“无休止地”反弹而避免被窥探到。


Retpoline创建了类似于实际代码中永远不会调用的无限循环之类的东西,这可以阻止 CPU 进入推测执行环节。开发人员可以在他们的应用程序二进制代码中应用 Retpoline 技巧,防止他们的应用程序讲内存信息暴露给 Spectre 攻击。这也可以应用在操作系统内核中,系统程序、库和其他软件如有需要,也可以添加。

微软工程师也发现这种方法很有效果,于是微软去年开始将Retpoline集成到Windows系统中。

Retpoline实施是一件大事。对于大多数Windows 10设备,Retpoline和微软自己的内核修改都降低了性能。

微软最初表示,Retpoline将与Windows 10 19H1版本一起集成到Windows中,该版本将于2019年4月推出。但似乎微软还计划将此更新推送给旧版本Windows 10上,从Windows 10更新十月版开始。

在Windows 10 KB4482887更新日志中,微软指出,“在某些设备上”启用Retpoline可以提高Spectrevariant 2降低的性能。

通过最新的更新,微软已经向后移植了支持Retpoline所需的操作系统级修改。在接下来的几个月中,微软将开始通过更多设备上的云配置启用该功能。

在另一篇博客文章中,微软指出Retpoline目前在Windows 10客户端生产设备上被禁用。但是,微软表示它将在未来几个月内推出该功能。

这种变化对性能的影响各不相同。例如,它可以将Broadwell CPU上的Office应用程序启动时间加速多达25%。

事情并非如此简单,微软计划在未来几个月内在更多运行Windows 10更新十月版的设备上启用Retpoline。值得注意的是,Retopoline默认也将在Windows 10 19H1版本中启用,并于2019年4月推出。

参考来源:

  • IT之家

  • freebuf

- End -


热门文章阅读


1、2019看雪CTF 晋级赛Q1 3月10日正式开启! 防守篇征题倒计时!

2、看雪课程 | LLVM 编译框架详解

3、Thunderclap漏洞影响MacOS和Windows等主要平台

4、2019看雪安全开发者峰会早鸟票已开通!



公众号ID:ikanxue

官方微博:看雪安全

商务合作:wsc@kanxue.com


点击下方“阅读原文”

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存