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

news2024/10/7 12:17:23

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 的采访内容。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nginx配置gzip

在 Nginx 中启用 Gzip 压缩可以大幅减少传输内容的大小,从而加快网页加载速度。 打开 Nginx 的配置文件,通常是 /etc/nginx/nginx.conf 或者 /etc/nginx/conf.d/default.conf。找到 http 配置块,在其中添加以下代码来开启 Gzip 压缩&#xff…

pikachu中RCE出现乱码的解决的方案

exec “ping” 输入127.0.0.1 这种乱码的解决办法就是在pikachu/vul/rce/rce_ping.php目录里面的第18行代码 header("Content-type:text/html; charsetgbk");的注释打开即可。 BUT但是吧!又出现了其他的乱码!但是搞完这个再把它给注释掉就行了…

pyscenic分析:视频教程

我们之前更新过pyscenic的教程:pySCENIC单细胞转录因子分析更新:数据库、软件更新。我们也说过,我们号是放弃R语言版的SCENIC的分析了,因为它比较耗费计算资源和时间,所以我们的单细胞转录因子分析教程都是基于pysceni…

轻松预约,尽享美食,详解餐厅预约小程序的设计与实现

随着智能手机的普及和人们生活水平的提高,餐厅预约已经成为人们日常生活中的一部分。为了更好地满足人们的需求,许多餐厅开始使用小程序来提供更方便快捷的预约服务。本文将介绍如何制作一款餐厅预约小程序的详细步骤。 1. 进入乔拓云网后台,…

JVM:对象的内存布局

对象的内存布局 对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。 ps:这个对象所属类的方法信息,静态变量…

百度、NVIDIA、Intel……各大厂商集结,共话文心与飞桨共享生态下的大模型训推部署创新实践计划

由深度学习技术及应用国家工程研究中心主办、百度飞桨和文心大模型承办的WAVE SUMMIT 2023峰会重磅来袭!本届峰会聚焦AI技术、产业生态、未来趋势等主要方向,产、学、研、用各界大咖将围绕深度学习及大模型技术的发展与未来,带来行业前瞻洞察…

【一】初步认识数据库

数据库概览数据库 缘起表(Table)的理解用表来定义数据库数据库系统的理解概念层次的理解实例层次的理解 数据库管理系统的理解从用户角度看从系统实现角度看典型的数据库管理系统 数据库语言数据库定义、操纵、控制语言数据库语言 VS 高级语言 内容回顾练习 数据库概览 走马观…

ORACLE行转列、列转行实现方式及案例

ORACLE行转列、列转行实现方式及案例 行转列案例方式1.PIVOT方式2.MAX和DECODE方式3.CASE WHEN和GROUP BY 列转行案例方式1.UNPIVOT方式2.UNION ALL 行转列 案例 假设我们有一个名为sales的表,其中包含了产品销售数据。表中有三列:product(…

vue 设置了表单验证的el-input,在触发验证后无法继续输入的问题解决

问题表现 在项目中碰到的问题&#xff0c;说是input框出现验证提示后&#xff0c;该框就无法输入新的数据了 下面是我的代码&#xff1a; // dom结构 <el-form ref"addForm" :rules"addFormRules" :model"addForm" label-width"100px&…

【ChatGPT 指令大全】怎么使用ChatGPT辅助程式开发

目录 写程式 解读程式码 重构程式码 解 bug 写测试 写 Regex 总结 在当今快节奏的数字化世界中&#xff0c;程式开发变得越来越重要和普遍。无论是开发应用程序、网站还是其他软件&#xff0c;程式开发的需求都在不断增长。然而&#xff0c;有时候我们可能会遇到各种问题…

MySQL多表连接查询

目录 表结构 创建表 表数据插入 查询需求 1.找出销售部门中年纪最大的员工的姓名 2.求财务部门最低工资的员工姓名 3.列出每个部门收入总和高于9000的部门名称 4.求工资在7500到8500元之间&#xff0c;年龄最大的人的姓名及部门 5.找出销售部门收入最低的员工入职时间…

Vc - Qt - QToolButton

QToolButton 是 Qt 框架中的一个类&#xff0c;是 QPushButton 的子类。它可以显示一个可单击的按钮&#xff0c;并且可以与弹出菜单、图标和文本等进行关联。 QToolButton的一些常见特性和用法包括&#xff1a; 设置文本&#xff1a;使用 setText() 函数设置按钮上的文本。设置…

Cloud Studio一个永不间断的云端工作站

一、简介 官网 Cloud Studio 是基于浏览器的集成式开发环境&#xff08;IDE&#xff09;&#xff0c;为开发者提供了一个永不间断的云端工作站。用户在使用 Cloud Studio 时无需安装&#xff0c;随时随地打开浏览器就能在线编程。 Cloud Studio 作为在线 IDE&#xff0c;包含…

【CSS】透明背景的圆角渐变边框实现方案

css的渐变边框可以用下面方式实现 border-image: linear-gradient(rgb(89, 0, 255),pink) 30 30; css的圆角边框可以用下面方式实现 border-radius: 20px; 那想要实现一个圆角的渐变边框呢&#xff0c;可能会以为&#xff0c;两个都用上不就可以了&#xff0c;但事实是&…

稳定性治理三,故障预防、发现、处理

目录&#xff08;故障预防&#xff0c;故障发现&#xff0c;故障处理&#xff09; 集群分组隔离线程池隔离DB 双库&#xff0c;慢 SQL 隔离多级缓存 redis 主要缓存mapdb 降级缓存localCache限流 分类进行频次统计限流sentinel 平台精细化接口限流降级熔断自动预案 稳定性相关的…

新法!《个人信息保护合规审计管理办法(征求意见稿)》解读

8月3日&#xff0c;依据《中华人民共和国个人信息保护法》等法律法规&#xff0c;国家互联网信息办公室起草了《个人信息保护合规审计管理办法&#xff08;征求意见稿&#xff09;》&#xff08;下文简称“办法”&#xff09;&#xff0c;并向社会公开征求意见。 据悉&#xff…

ThreadLocal原理和实践

一、概述 ThreadLocal是线程本地变量&#xff0c;解决多线程环境下成员变量共享存在的问题。ThreadLocal为每个线程创建独立的的变量副本&#xff0c;他的特性是该变量的引用对全局可见&#xff0c;但是其值只对当前线程可用&#xff0c;每个线程都将自己的值保存到这个变量中…

Java并发编程(二)并发理论[JMM/重排序/内存屏障/Happens-Before 规则]

JMM(Java内存模型) 概述 JMM即Java内存模型(Java Memory Model),是一种抽象的概念,并不真实存在,JMM描述的是一组规则或规范,通过这组规范定义了程序中各个变量的访问方式Java内存模型中规定所有变量都存储在主内存,主内存是共享内存区域,所有线程都可以访问,但线程对变量的操…

Java实现籍贯级联选择器

在工作中要求写一个籍贯的级联选择器&#xff0c;记录一下自己写这个级联选择器的过程&#xff0c;因为自己才刚开始工作&#xff0c;有很多地方都没有考虑的很清楚&#xff0c;希望各位大佬能给出建议。 一、需求 A:正常的23个省&#xff0c;籍贯由“省区/县/市”组成&#xf…

javaScript:分支语句的理解与使用(附带案例)

目录 前言 补充 另一种说法 分支语句 1.if语句 a.单分支语句 注意 b.双分支语句 注意点 c.多分支语句&#xff08;分支语句的联级语句&#xff09; 补充 2.三元运算符 三元运算符 &#xff1f; &#xff1a; 使用场景 3.switch语句 解释 释义&#xff1a…