英特尔处理器被曝出“Downfall”漏洞:可窃取加密密钥

1691636387_64d452a33ddb6b5f5bc86.png!small?1691636388571

今日,谷歌的一位高级研究科学家利用一个漏洞设计了一种新的CPU攻击方法,该漏洞可影响多个英特尔微处理器系列,并允许窃取密码、加密密钥以及共享同一台计算机的用户的电子邮件、消息或银行信息等私人数据。

该漏洞被追踪为CVE-2022-40982,是一个瞬态执行侧通道问题,影响基于英特尔微架构Skylake到Ice Lake的所有处理器。

攻击者利用这个安全漏洞可以提取受软件保护扩展(SGX)保护的敏感信息。SGX是英特尔基于硬件的内存加密技术,可以将内存中的代码和数据与系统上的软件分离开来。

SGX目前仅在服务器中央处理单元上得到支持,并为那些操作系统都无法访问的软件提供可信的隔离环境。

收集秘密数据

谷歌研究员Daniel Moghimi发现了这个漏洞,并将其报告给了英特尔,他说他的垮台攻击技术利用了gather指令,“在推测执行期间泄露了内部矢量寄存器文件的内容”。

Gather是英特尔处理器内存优化的一部分,用于加速访问内存中的分散数据。然而,正如Moghimi在今天发表的一篇技术论文中解释的那样:“gather指令似乎使用了一个跨同级CPU线程共享的临时缓冲区,它将数据暂时转发给后来依赖的指令,数据属于不同的进程,并在同一核心上运行gather执行。”

Moghimi开发了两种攻击技术,一种是收集数据采样(GDS),另一种是收集值注入(GVI),它将GDS与2020年披露的负载值注入(LVI)技术相结合。

通过使用GDS技术,Moghimi 能够在受控虚拟机之外的另一个虚拟机(VM)上窃取 AES 128 位和 256 位加密密钥,每个系统都位于同一 CPU 内核的同胞线程上。

研究人员可在10 秒内一次性窃取 8 个字节,最终成功窃取了 AES 圆形密钥,并将它们组合起来破解了加密。对于 100 个不同的密钥,AES-128 的首次攻击成功率为 100%。对 AES-256 的首次攻击成功率为 86%。

研究人员指出,尝试失败意味着恢复整个密钥需要多次运行攻击,因为主密钥的数据不会在 10 秒内频繁出现。

除了加密密钥外,Moghimi还提供了 GDS 攻击的变种,这种攻击可以窃取静态的任意数据,因为在两种情况下,CPU 会将这类信息预取到 SIMD 寄存器缓冲区中。

威胁评估和微代码性能影响

Moghimi 指出,Downfall 攻击要求攻击者与受害者在同一个物理处理器内核上。但恶意软件等本地程序有可能利用这一漏洞窃取敏感信息。

去年 8 月,英特尔发现了 Downfall/GDS 漏洞,并与 Moghimi 合作进行了研究,并且目前提供了微码更新来缓解这一问题。

为了给原始设备制造商(OEM)和通信服务提供商(CSP)留出测试和验证解决方案的时间,并为他们的客户准备必要的更新,有关该漏洞的细节保密了近一年。

英特尔告诉 BleepingComputer,该问题不会影响 Alder Lake、Raptor Lake 和 Sapphire Rapids,Downfall 会影响以下三个系列的处理器:

  • Skylake 系列(Skylake、Cascade Lake、Cooper Lake、Amber Lake、Kaby Lake、Coffee Lake、Whiskey Lake、Comet Lake)
  • 虎湖系列
  • 冰湖系列(Ice Lake、Rocket Lake)

英特尔修复和响应工程副总裁 Vivek Tiwari 认为,试图在受控实验室环境之外利用这一点将是一项复杂的工作。

英特尔在给 BleepingComputer 的一份声明中表示,客户可以查看公司提供的风险评估指南,并决定通过 Windows 和 Linux 以及虚拟机管理器(VMM)中的可用机制禁用微码缓解功能。

做出这样的决定可能是出于对Downfall/GDS缓解措施可能带来的性能问题的担忧,也可能是因为该问题对环境不构成威胁。

英特尔为客户提供了威胁评估和性能分析信息,其结论是在某些环境中该问题的影响可能很小。在频繁执行收集指令的情况下,存在潜在影响,这是高性能计算(HPC)环境所特有的。

不过,该芯片制造商表示,由于攻击的条件和这些环境的典型配置,该问题在高性能计算环境中可能不会被视为威胁。

例如,攻击者需要在与目标相同的物理内核上运行,并能够运行不受信任的代码等,而这些在这些环境中并不常见。

基于软件的缓解措施

要消除 Downfall/GDS 攻击的风险,需要重新设计硬件。虽然基于软件的替代方案是存在的,不过这些方案都有注意事项,而且只能暂时解决问题。Moghimi 提出了四种这样的替代方案,其中三种有明显的缺点:

  • 禁用同步多线程(SMT)可部分缓解 GDS 和 GVI 攻击,但削减超线程会带来 30% 的性能损失,而且跨上下文切换的泄漏仍会发生
  • 通过操作系统和编译器禁止受影响的指令,以防止它们向收集泄密;缺点是一些应用程序可能会被打乱,而且如果漏掉某些指令,泄密仍会发生
  • 禁用收集。缺点是使用该指令的应用程序可能会变得缓慢甚至崩溃
  • 防止收集指令后的瞬时数据转发(添加加载栅栏,如 lfence 指令)可减轻 Downfall,这也是英特尔在最新微代码更新中采用的解决方案。

不过,Moghimi 表示,要创建这样的工具并不容易,因为它们需要更好地覆盖硬件和支持的指令,鉴于硬件的复杂性和专有障碍,这是一项具有挑战性的任务。

这位研究人员发布了 Downfall 的代码,以便其他人可以查看和试用。此外,Daniel Moghimi 还计划在美国黑帽安全大会上讨论 Downfall 漏洞和攻击技术。

英特尔发布了 CVE-2022-40982 的安全公告,目前的严重程度为 6.5 级。基于此漏洞,该公司还提供了一份技术文件,以及 Moghimi 关于 Downfall 的采访内容。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/68668.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决 idea maven依赖引入失效,无法正常导入依赖问题

解决 idea maven依赖引入失效,无法正常导入依赖问题_idea无法导入本地maven依赖_普通网友的博客-CSDN博客 解决 idea maven依赖引入失效,无法正常导入依赖问题 idea是真的好用,不过里面的maven依赖问题有时候还真挺让人头疼,不少小…

【计算机视觉】关于图像处理的一些基本操作

目录 图像平滑滤波处理均值滤波计算过程python实现 高斯滤波计算过程python实现 中值滤波计算过程python实现 图像的边缘检测Robert算子计算过程python实现 图像处理腐蚀算子计算过程python实现 Hog(梯度方向直方图)特征计算流程:Hog的特征维…

brew+nginx配置静态文件服务器

背景 一下子闲下来了,了解的我的人都知道我闲不下来。于是,我在思考COS之后,决定自己整一个本地的OSS,实现静态文件的访问。那么,首屈一指的就是我很熟的nginx。也算是个小复习吧,复习一下nginx代理静态文…

【Java并发】如何进行死锁诊断?

文章目录 1.什么是死锁2.死锁怎么产生的3.如何进行死锁诊断?3.1 通过命令查看3.2 jconsole可视化工具3.2 VisualVM:故障处理工具 1.什么是死锁 死锁(Deadlock)是指两个或多个进程(线程)在执行过程中&#…

Jmeter(二) - 从入门到精通 - 创建测试计划(Test Plan)(详解教程)

1.简介 上一篇中已经教你把JMeter的测试环境搭建起来了,那么这一篇我们就将JMeter启动起来,一睹其芳容,首先宏哥给大家介绍一下如何来创建一个测试计划(Test Plan)。 2.创建一个测试计划(Test Plan&#x…

基于Python爬虫+词云图+情感分析对某东上完美日记的用户评论分析

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

数据结构——红黑树基础(博文笔记)

数据结构在查找这一章里介绍过这些数据结构:BST,AVL,RBT,B和B。 除去RBT,其他的数据结构之前的学过,都是在BST的基础上进行微小的限制。 1.比如AVL是要求任意节点的左右子树深度之差绝对值不大于1,由此引出…

教程分享:如何制作一个旅游路线二维码?

吃一成不变的早餐,九点出门还会遇见楼下遛狗的大爷,老板掐着表发起了会议邀请,窗外还是那几棵树,天空依旧灰蒙蒙的,羊了个羊第二关还是过不去,理发店的小哥又倚在门口抽烟…… 大多时候,我们的…

Kafka 01——Kafka的安装及简单入门使用

Kafka 01——Kafka的安装及简单入门使用 1. 下载安装1.1 JDK的安装1.2 Zookeeper的安装1.2.1 关于Zookeeper版本的选择1.2.2 下载、安装Zookeeper 1.3 kafka的安装1.3.1 下载1.3.2 解压1.3.3 修改配置文件 2. 启动 kafka2.1 Kafka启动2.2 启动 kafka 遇到的问题2.2.1 问题12.2.…

数学建模—分类模型

本讲将介绍分类模型。对于而分类模型,我们将介绍逻辑回归(logistic regression)和Fisher线性判别分析两种分类算法;对于多分类模型,我们将简单介绍Spss中的多分类线性判别分析和多分类逻辑回归的操作步骤下。 本题按水…

vue3多页面配置你一定会遇到的问题,踩坑指南

vue3实现多页面打包容易,关键是如何实现本地的开发和调试?我们接下来解决如下几个问题: 1 多页面项目的项目结构是怎样的? --public--src---App.vue---main.js---page1. ---App.vue---main.js----home.vue----list.vue---page2.…

HttpRunner搭建接口自动化测试项目

前言:前面写过一篇PytestAllure接口自动化测试框架搭建的博客,这篇博客学习另外一款优秀的开源的接口自动化测试框架:HttpRunner,本博客主要学习如何搭建基于HttpRunner的接口自动化测试项目 PytestAllure接口自动化测试框架搭建…

编写一个指令(v-focus2end)使输入框文本在聚焦时焦点在文本最后一个位置

项目反馈输入框内容比较多时候,让鼠标光标在最后一个位置,心想什么奇葩需求,后面试了一下,是有点影响体验,于是就有了下面的效果,我目前的项目都是若依的架子,用的是vue2版本。vue3的朋友想要使…

“智农”数字孪生一体化管控平台

数字乡村可视化|数字乡村|农业可视化|高标准农田|数字农业大脑|大棚可视化|数字农业|数字乡村|数字农业研学|数字大棚|智慧大棚|农业数字孪生|智慧农业|数字农业温室|智农|智慧农业可视化|智能温室|智慧温室|农业大数据|农业产业园可视化|植物工厂|可视化农业监控系统|设施农业…

判断时间段是否重叠

1、逻辑公式 时间段1&#xff1a;start1&#xff08;开始时间&#xff09;&#xff0c;end1&#xff08;结束时间&#xff09; 时间段2&#xff1a;start2&#xff08;开始时间&#xff09;&#xff0c;end2&#xff08;结束时间&#xff09; 重叠条件为&#xff1a;start1 <…

I 2C 接口控制器理论讲解

IIC系列文章&#xff1a; (1) I 2C 接口控制器理论讲解 (2) I2C接口控制设计与实现 文章目录 一、 IIC协议二、IIC协议解析1.特点2.规定3.器件地址4.存储地址 三、IIC写时序1.单字节写时序2.连续写时序&#xff08;页写时序&#xff09; 四、IIC读时序1.单字节读时序2.连续读时…

鸿蒙边缘计算网关正式开售

IDO-IPC3528鸿蒙边缘计算网关基于RK3568研发设计&#xff0c;采用22nm先进工艺制程&#xff0c;四核A55 CPU&#xff0c;主频高达2.0GHz&#xff0c;支持高达8GB高速LPDDR4&#xff0c;1T算力NPU&#xff0c;4K H.265/H264硬解码&#xff1b;视频输出接口HDMI2.0&#xff0c;双…

62.不同路径

一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#xff1f; 动态规…

竞赛项目 深度学习手势识别算法实现 - opencv python

文章目录 1 前言2 项目背景3 任务描述4 环境搭配5 项目实现5.1 准备数据5.2 构建网络5.3 开始训练5.4 模型评估 6 识别效果7 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习手势识别算法实现 - opencv python 该项目较为新颖…

.netcore grpc客户端流方法详解

一、客户端流式处理概述 客户端流式处理方法在该方法没有接收消息的情况下启动。 requestStream 参数用于从客户端读取消息。 返回响应消息时&#xff0c;客户端流式处理调用完成。客户端可以发送多个消息流到服务端&#xff0c;当所有客户端消息流发送结束&#xff0c;调用请…