9 月 13 日,2025 Inclusion・外滩大会「开源嘉年华」正在限量报名中! 了解详情
写点什么

针对苹果 M 和 A 系列 CPU 的新型侧信道攻击

作者:Sergio De Simone

  • 2025-03-14
    北京
  • 本文字数:1522 字

    阅读完需:约 5 分钟

针对苹果M和A系列CPU的新型侧信道攻击

来自佐治亚理工学院和波鸿鲁尔大学的研究人员演示了针对苹果近期发布的 M 和 A 系列 CPU 的两种新型侧信道攻击,这些攻击会导致用户在使用 Chrome 和 Safari 浏览器访问热门网站时泄露敏感信息。


这两种攻击分别被称为 FLOP(通过错误的加载输出预测破坏苹果 M3 CPU)和 SLAP(通过苹果芯片的加载地址预测进行数据推测攻击),它们可以在 2021 年及以后发布的 Mac、iPhone 和 iPad 上执行。具体来说,SLAP 影响使用 M2/A15 及更新型号 CPU 的设备,这些 CPU 配备了加载地址预测器(LAP),而 FLOP 影响使用 M3/A17 及更新型号的设备,这些设备配备了加载值预测器(LVP)。


据研究人员称,SLAP 和 FLOP 破坏了浏览器内置的隔离保护机制,允许一个网页读取另一个网页的内容,其中可能包含敏感数据。由于这两种攻击都是基于微架构的,因此不会留下任何痕迹。


这两种漏洞源自苹果芯片 CPU 中使用的两个预测子系统:加载地址预测器(LAP)和加载值预测器(LVP)。这些子系统通过微架构优化来缓解数据危害),并减少 Read-After-Write 依赖导致的减速。


加载地址预测器会根据之前的访问模式猜测 CPU 下一次将访问哪个内存地址:


如果预测的地址被缓存,CPU 将从预测的地址而不是程序原本指定的地址进行推测性加载。一旦从预测地址获取了值,CPU 将使用程序代码中下游的任意指令对该值进行计算。


加载值预测器会在实际值可用之前猜测下一次内存访问将返回的数据值:


LVP 会观察加载操作返回的数据值。如果这些值是固定的,这些 CPU 可以在下一次执行加载时打开一个推测窗口,而不是等待 RAW 依赖解决后才有可用的结果。


研究人员发现,当 LAP 或 LVP 猜测错误时,CPU 可能在推测执行期间对超出范围(SLAP)或错误(FLOP)的数据执行任意计算,从而导致数据泄露。


对于 SLAP,研究人员演示了针对 Safari 的端到端攻击,攻击者可以在未经授权的情况下恢复电子邮件内容和浏览历史记录:


LAP 会监控来自相同加载指令的地址,用以推测性地加载预测地址,该地址可能错误地指向固定的机密信息(即从未被 CPU 读取)。一旦获取了机密信息,LAP 就会获得一个较大的推测窗口,足以让攻击者对机密信息进行计算,例如通过隐蔽通道泄露它。


对于 FLOP,他们演示了攻击者如何利用任意读取原语恢复 Safari 和 Chrome 的位置历史记录、日历事件和信用卡信息。


研究人员已将这两种漏洞告知苹果公司,但苹果公司尚未透露计划何时解决这些问题。虽然这两种漏洞都有可行的缓解措施,但需要苹果公司在其操作系统中发布相关补丁。


FLOP 影响 Chrome 和 Safari,而 SLAP 则是 Safari 独有的。这是因为 Safari 没有在”同一浏览器上下文组“内实现隔离,与 Firefox 和 Chrome 不同:


Firefox 和 Chrome 似乎确实实现了同一浏览器上下文组隔离,并通过 IPC 桥接所需的 API,因此希望 Safari 也能在未来实现这一功能。


正如 Hacker News 用户 adrian_b 所指出的,加载值预测器的有效性 与 ARM 架构有固定长度指令密切相关,这使得无法将数据存储在指令中,因此


作为一种变通方法,在为这类 ISA 编程时,常量被存储在靠近函数代码的常量池中,加载指令使用基于程序计数器的相对寻址来加载常量。


发现 FLOP 和 SLAP 的研究人员并不知道是否有其他 CPU 也可能受到影响,但他们不排除有这种可能性。


随着摩尔定律逐渐失效,出现了更多独特的微架构优化,我们相信 LAP 可能不是苹果独有的,现在或在未来也可能会在其他地方出现。‍


侧信道漏洞是一类源于算法实现方式的漏洞,利用时间信息、功耗、电磁泄露和其他类型的信息来泄露敏感数据。在过去的几年中,许多影响 CPU 并利用推测执行的重大侧信道漏洞引起了广泛关注,包括 Spectre 和 Meltdown。


查看英文原文


https://www.infoq.com/news/2025/02/apple-cpu-side-channel-slap-flop/

2025-03-14 17:159241

评论

发布
暂无评论

阿里架构组分布式架构技术使用心得:全在这一份文档里面了

三十而立

Java java面试

如何使用责任链默认优雅地进行参数校验?

JAVA旭阳

Java spring

机器学习算法(八):基于BP神经网络的乳腺癌的分类预测

汀丶人工智能

数据挖掘 机器学习 BP神经网络

Redis高频40问

程序员大彬

Java Redis redis 底层原理

软件工程高效学 | 软件工程基础

TiAmo

软件工程

扒站软件:SiteSucker汉化激活

真大的脸盆

Mac Mac 软件 网站下载 下载网站工具

滴滴 一面总结

Java你猿哥

Java 滴滴 java面试 面经

Dubbo + ZooKeeper丨如何解决线上故障排查链路长的难题

阿里巴巴云原生

阿里云 开源 云原生 dubbo Zookeepe

Three.js 进阶之旅:全景漫游-初阶移动相机版

dragonir

JavaScript 前端 three.js

AI大模型加速升级,数据和隐私何以为安?

博文视点Broadview

pulsar 报错源码排查:"Not enough non-faulty bookies available"

李code

源码 pulsar 故障恢复 参数调优 白话源码

OpenHarmony社区运营报告(2023年2月)

OpenHarmony开发者

OpenHarmony

微前端框架single-spa子应用加载解析

京东科技开发者

生命周期 微前端 VUE 3.0 源码 企业号 3 月 PK 榜 single-spa

用AI回忆起曾被忘却的语言

白洞计划

AI

又发现一个开源商城项目,谷粒商城外又多了个选择

马丁玩编程

对前端性能优化的一些小看法

Yestodorrow

30s 就可以掌握的 Nginx 片段

Java你猿哥

Java nginx ssm Java工程师 nginx 开源版

工信部数据库适配验证中心项目验收通过 柏睿数据参与共建

科技热闻

CNStack 虚拟化服务:实现虚拟机和容器资源的共池管理

阿里巴巴云原生

阿里云 云原生 虚拟化 CNStack

【共创共赢】AntDB数据库合作伙伴交流会(北京站)顺利举办

亚信AntDB数据库

数据库 AntDB AntDB数据库 企业号 3 月 PK 榜

全网最新架构实战文档:高并发+分布式+微服务+SpringBoot+Nginx

三十而立

Java 分布式 java面试

《云原生架构容器&微服务优秀案例集》惊喜来袭

阿里巴巴云原生

阿里云 容器 微服务 云原生

openEuler开源新项目,嵌入式实时虚拟机ZVM介绍

openEuler

Linux 操作系统 虚拟机 嵌入式 openEuler

博睿学院 | 本周四,博睿学院数据集成系列公开课正式开讲

博睿数据

数据中台 智能运维 博睿数据 博睿学院

记录丨阿里云校招生的成长经历

阿里巴巴云原生

阿里云 云原生 校招

Spring依赖注入Bean类型的8种情况,你学废了吗?

Java永远的神

spring 源码 程序员 后端 java面试

Spring竟然可以创建“重复”名称的bean?—一次项目中存在多个bean名称重复问题的排查

京东科技开发者

spring bean @Bean 企业号 3 月 PK 榜

聊聊前端性能指标那些事儿

京东科技开发者

性能优化 前端 性能 前端性能 企业号 3 月 PK 榜

cookie时效无限延长方案

京东科技开发者

自动化测试 Cookie 接口自动化 UI自动化 企业号 3 月 PK 榜

GPT-4 可以开始测试了

HoneyMoose

Z世代新母婴人群消费洞察2023

易观分析

母婴 新消费 Z世代 消费

针对苹果M和A系列CPU的新型侧信道攻击_芯片&算力_InfoQ精选文章