白帽笔记
首发于白帽笔记
谷歌推出新的Retpoline编码技术,可避免Spectre攻击

谷歌推出新的Retpoline编码技术,可避免Spectre攻击

1月5日,Google已经公布了他们工程师创建的新编码技术的详细信息,任何开发人员都可以部署和防止Spectre攻击。


Google声称,这种称为Retpoline的新技术与过去几天推出的其他补丁相比,对性能的影响可以忽略不计,其他补丁在某些情况下会导致CPU性能大幅下降。


Google基础架构高级工程师Paul Turner发布了该技术,该技术被描述为二进制修改技术。


谷歌表示,他们已经部署了Retpoline,用于部署在其私有数据中心内的基于Linux的服务器,该技术对CPU的性能的影响很小。


Retpoline可能会终结Spectre在Linux内核中的威胁

Turner还向Linux内核项目提交了一个补丁,以实现Linux内核的Retpoline技术。在向其他Linux内核开发人员介绍该技术时,Turner表示,Retpoline为我们的内部工作负载添加了一个“平均总体开销”,它的范围在0-1.5%内,其中包括一些高分组处理引擎。

Retpoline似乎也得到了英特尔开发人员的支持,如Andi Kleen也赞同使用Linux内核技术。


Kleen说:因此我们想要避免内核中的推测性间接调用。 这个叫做retpoline的特殊代码序列可以做间接调用而不用推测。


Retpoline能够解决“推测性执行”的问题

通过“推测”,Kleen指出“推测性执行”是所有现代CPU使用的代码优化技术,也是出现

Meltdown (CVE-2017-5754) 和Spectre (CVE-2017-5753 and CVE-2017-5715) 漏洞的原因。


根据几位开发人员对新技术的评论,Retpoline创建了类似于实际代码中永远不会调用的无限循环的东西,但是不会让CPU进入推测性执行。


开发人员可以编写他们的应用程序二进制代码来使用Retpoline,并防止将他们的应用程序暴露给Spectre攻击。


谷歌表示:“这种缓解措施可能适用于操作系统内核,系统程序和库以及个别软件程序。”


除了Linux内核之外,像GCC和LLVM这样的项目也在增加对这种新技术的支持。

发布于 2018-01-08

文章被以下专栏收录

    我们是抵御黑暗的烈焰,守护王国的剑盾,惩奸除恶的侠客,尽忠职守,生死于斯。