他们在不需要JavaScript的情况下在网络浏览器中开发了一系列CPU缓存恢复攻击

来自各大学的研究人员团队 美国人,以色列人和澳大利亚人 已经针对网络浏览器开发了三种攻击,这些攻击允许提取有关处理器缓存内容的信息。 一个方法 在没有JavaScrip的浏览器中工作t和其他两个绕过现有的保护方法,以防止通过第三方渠道进行攻击,包括在Tor浏览器和DeterFox中使用的那些渠道。

分析缓存中的内容 所有攻击都使用“ Prime + Probe”方法该 涉及用一组参考值填充缓存并通过测量访问时间来确定更改 给他们充电时。 为了绕过浏览器中存在的安全机制(这些机制会阻止精确的时间测量),在两个版本中,需要调用受控攻击的DNS或WebSocket服务器,该服务器会保留接收请求时间的记录。 在一个实施例中,固定的DNS响应时间被用作时间参考。

由于使用了基于机器学习的分类系统,因此使用外部DNS服务器或WebSocket进行的测量足以在最理想的情况下以98%的准确度预测值(平均为80-90%)。 攻击方法已在各种硬件平台(Intel,AMD Ryzen,Apple M1,Samsung Exynos)上进行了测试,并被证明具有通用性。

DNS Racing攻击的第一个变体 使用Prime + Probe方法的经典实现 使用JavaScript数组。 区别在于使用基于外部DNS的计时器和尝试从不存在的域中加载图像时触发的错误处理程序。 外部计时器允许在浏览器中进行Prime + Probe攻击,从而限制或完全禁用JavaScript计时器访问。

对于同一以太网上托管的DNS服务器,该计时器的精度估计约为2毫秒,足以进行边信道攻击(作为比较:Tor浏览器中标准JavaScript计时器的精度为减少到100毫秒)。 对于攻击,无需控制DNS服务器,因为选择了操作的执行时间,以使DNS响应时间可以作为提早完成验证的信号(取决于错误处理程序是在更早之前触发还是在稍后触发)。 ,结论是对缓存的验证操作已完成)...

第二种“ String and Sock”攻击旨在绕过安全技术 限制了底层JavaScript数组的使用。 String和Sock会使用非常大的字符串(而不是数组)来代替数组,而是选择非常大的字符串,以便该变量覆盖整个LLC缓存(顶级缓存)。

接下来,使用indexOf()函数,在字符串中搜索一个小的子字符串,该字符串最初不存在于原始字符串中,也就是说,搜索操作导致整个字符串的迭代。 由于行的大小与LLC高速缓存的大小相对应,因此扫描可以在不操作阵列的情况下执行高速缓存检查操作。 为了测量延迟而不是DNS,这是对由攻击者控制的WebSocket服务器的攻击:在搜索操作开始之前和结束之后,请求是在链中发送的,

通过HTML和CSS攻击的第三版“ CSS PP0”,并且可以在禁用JavaScript的浏览器中使用。 此方法看起来像“字符串和袜子”,但未绑定到JavaScript。 该攻击会生成一组CSS选择器,这些选择器会通过遮罩进行搜索。 充满缓存的出色原始行 通过创建div标签设置 具有非常大的类名,并且n里面有一组其他的div,它们都有自己的标识符。

每一个 这些嵌套的div使用查找子字符串的选择器设置样式。 呈现页面时,浏览器首先尝试处理内部div,这将导致对大字符串的搜索。 使用明显缺少的掩码进行搜索,并导致整个字符串的迭代,此后触发“否”条件,并尝试加载背景图像。


发表您的评论

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

*

*

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