谷歌的 LVI 保护软件表现出 14 倍的性能损失

来自谷歌的佐拉·布里奇斯 предложил 针对 LLVM 编译器集,实施 SESES(推测执行副作用抑制)保护的补丁,有助于阻止对 Intel CPU 推测执行机制的攻击,例如 LVI。 该保护方法是在编译器级别实现的,基于编译器在生成机器代码时添加指令 朗讯,它们被插入在每个存储器读取或写入指令之前,以及结束该块的指令组中的第一个分支指令之前。

LFENCE 指令等待所有先前的内存读取提交,并禁用 LFENCE 之后的后续指令的抢占,直到提交完成。 使用LFENCE会导致性能显着下降,因此建议在极端情况下对特别关键的代码使用保护。 除了全面保护之外,该补丁还提供了三个标志,允许您有选择地禁用某些级别的保护,以减少对性能的负面影响。

在进行的测试中,对 BoringSSL 包使用 SESES 保护导致该库每秒执行的操作数减少了 14 倍——受保护版本的库的性能平均仅为其他版本的 7.1%。未受保护的版本(变化取决于测试,从 4% 到 23%)。

为了比较, 建议 此前,对于 GNU Assembler,在每次内存加载操作之后和某些分支指令之前执行 LFENCE 替换的机制表现出约 5 倍的性能下降(没有保护的代码的 22%)。 保护方法也是 建议的 и 已实施 由英特尔工程师设计,但其性能测试结果尚未公布。 最初,识别 LVI 攻击的研究人员预测,在应用全面保护时,性能会下降 2 至 19 倍。

来源: opennet.ru

添加评论