Google通过浏览器中的JavaScript演示了对Spectre漏洞的利用

谷歌揭幕 几天前 各种漏洞利用原型 证明了利用漏洞的可能性 在浏览器中执行JavaScript代码时的Spectre类的代码, 无需通过上面添加的安全方法。

漏洞可用于访问进程的内存 正在处理网页内容 在当前标签中。 为了测试漏洞利用程序的操作,启动了漏洞页面的网站,并在GitHub上发布了描述操作逻辑的代码。

拟议的原型旨在 攻击系统 Linux和Chrome 7环境中的Intel Core i6500-88U处理器, 尽管这并不排除可以进行更改以在其他环境中使用该漏洞利用程序。

操作方法不特定于 处理器 英特尔:经过适当的调整, 该漏洞已经被证实可以在带有第三方CPU的系统上运行,包括基于ARM体系结构的Apple M1。 进行细微调整之后,该漏洞利用程序还可在基于Chromium引擎的其他操作系统和其他浏览器上运行。

在基于标准Chrome 88和Intel Skylake处理器的环境中,我们从负责在当前Chrome选项卡中渲染Web内容的过程(渲染过程)以每秒1 KB的速度实现了数据泄漏。 此外,还开发了替代原型,例如,一种利用漏洞的漏洞,其使用Performance.now()计时器时,以降低稳定性的代价将泄漏率提高到8kB / s,精度为5微秒(0.005毫秒)。 )。 还开发了一种变体,该变体以60毫秒的计时器精度运行,可用于以每秒约XNUMX字节的速率组织对另一个进程的内存的访问。

已发布的演示代码包括三个部分:

  • 第一部分 校准计时器以估计运行时间 由于推测执行CPU指令而检索保留在处理器高速缓存中的数据所需的操作中的一部分。
  • 第二部分 定义分配JavaScript数组时使用的内存布局。
  • 第三部分 直接利用Spectre漏洞确定内存内容 为某些操作的推测执行创造了条件,从而确定了当前进程的状态,在确定了失败的预测后,处理器将结果的结果丢弃,但是执行跟踪将被保存在共享缓存中,并且可以使用以下命令恢复使用第三方渠道确定缓存内容的方法,这些渠道分析了对缓存和非缓存数据的访问时间的变化。

拟议的开采技术 消除了高精度计时器 可通过performance.now()API获得,并且不支持SharedArrayBuffer类型,该类型允许您在共享内存中创建数组。

该漏洞利用包括Spectre设备和侧边通道泄漏分析器,Spectre设备导致受控的推测代码执行,侧面泄漏分析器确定在推测执行期间已缓存了哪些数据。

该小工具是使用JavaScript数组实现的, 在其中 试图访问缓冲区限制以外的区域,由于存在编译器添加的缓冲区大小检查,影响分支预测块的状态(处理器推测性地提前执行访问,但在检查后恢复状态)。

为了在定时器精度不足的情况下分析缓存的内容,提出了一种方法,该方法欺骗了处理器中使用的Tree-PLRU缓存数据逐出策略,并允许通过增加周期数来显着增加当值取值时的时间差。从缓存中返回,并且在缓存中没有值的情况下返回。

谷歌已经发布了该漏洞利用的原型,以展示攻击的可行性 使用Spectre类漏洞 并鼓励Web开发人员使用可最大程度降低此类攻击风险的技术。

同时,谷歌认为,如果不对拟议的原型进行重大修改,就不可能创造出既可用于演示又可广泛使用的通用漏洞利用程序。

数据来源: https://security.googleblog.com


成为第一个发表评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。