​ATF(TF-A)安全通告 TFV-7 (CVE-2018-3639)​

ATF(TF-A)安全通告汇总

目录

一、ATF(TF-A)安全通告 TFV-7 (CVE-2018-3639)

二、静态缓解(Static mitigation)

三、动态缓解(Dynamic mitigation)


一、ATF(TF-A)安全通告 TFV-7 (CVE-2018-3639)

Title

TF-A披露基于cache前瞻执行漏洞变种4

CVE ID

CVE-2018-3639

Date

21 May 2018 (Updated 7 June 2018)

Versions Affected

All, up to and including v1.5

Configurations Affected

All

Impact

泄露安全世界的数据到非安全世界

Fix Version

Pull Request #1392, Pull Request #1397

Credit

Google

        本安全通告描述了当前对TF-A披露的基于cache前瞻执行漏洞变种4的理解,该漏洞是由Google Project Zero团队发现的。要了解Arm系统上这些漏洞的背景和更广泛的影响,请参阅Arm处理器安全更新(Arm Processor Security Update)。

        在写这篇文章的时候,还没有发现TF-A项目中一个变体4的漏洞被用来攻击TF-A。针对TF-A的当前标准配置实现攻击可能非常困难,因为使用攻击者控制的输入进入安全世界的接口有限。然而,随着复杂的新固件接口的引入,这变得越来越难以保证,例如软件委托异常接口(Software Delegated Exception Interface (SDEI))。此外,TF-A项目并不具有对所有供应商提供的接口的可见性。因此,TF-A项目采取保守的方法,在安全世界执行期间尽可能缓解变体4。通过设置实现定义的控制位来防止store和load指令的re-order,从而启用缓解。

        对于每种受影响的CPU类型,TF-A在Pull Request #1392和Pull Request #1397中实现了以下两种缓解方法。这两种方法都对系统性能有影响,这种影响因CPU类型和用例的不同而不同。缓解代码在默认情况下是启用的,但对于不受影响的平台或认为风险足够低的平台,可以在编译时禁用。

        怎么禁用呢?

1e4a63840b0e4643b311b3010453cdd3.png

 

        下面小节中未提到的Arm cpu不受影响。

二、静态缓解(Static mitigation)

        对于受影响的cpu,这种方法允许在每次PE复位之后,EL3初始化期间使能缓解。没有提供在运行时禁用缓解的机制。

        这种方法永久性地减轻了整个软件堆栈的负担,并且在其他软件组件中不需要额外的缓解代码。

        TF-A为以下受影响的cpu实现了这种方法:

        1)Cortex-A57和Cortex-A72,通过设置CPUACTLR_EL1 (S3_1_C15_C2_0)的第55位(禁用load pass store)。
        2)Cortex-A73,通过设置S3_0_C15_C0_0的第3位(未在技术参考手册(TRM)中记录)。

     3)Cortex-A75,通过设置CPUACTLR_EL1 (S3_0_C15_C1_0)的第35位(TRM中是reserved)。

三、动态缓解(Dynamic mitigation)

        对于受影响的cpu,这种方法还允许在每次PE复位后,EL3初始化期间使能缓解。此外,该方法在Arm架构范围内实现了SMCCC_ARCH_WORKAROUND_2,以允许处于较低异常级别的调用者在其执行上下文中临时禁用缓解,因为在这种情况下,风险被认为足够低。此方法允许在进入EL3时进行缓解,并在退出EL3时恢复较低异常级别的缓解状态。有关此方法的更多信息,请参考Firmware interfaces for mitigating cache speculation vulnerabilities。

        这种方法可以通过其他软件组件中的附加缓解代码加以补充,例如调用SMCCC_ARCH_WORKAROUND_2的代码。然而,即使在其他软件组件中没有任何缓解代码,这种方法也将有效地永久缓解整个软件堆栈,因为固件管理执行上下文的默认缓解状态是使能的。

        由于这种方法的期望是在禁用缓解的情况下执行更多的软件,因此对于某些系统或用例来说,这可能会比静态方法产生更好的系统性能。但是,对于其他系统或用例,这种性能节省可能被SMCCC_ARCH_WORKAROUND_2调用和TF-A异常处理的额外开销所抵消。

        TF-A为以下受影响的CPU实现了这种方法:

        Cortex-A76,通过设置和清除CPUACTLR2_EL1 (S3_0_C15_C1_1)的第16位(TRM中是保留的)。

参考:

9.7. Advisory TFV-7 (CVE-2018-3639) — Trusted Firmware-A 2.9.0 documentation

 

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

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

相关文章

92. 反转链表 II

92. 反转链表 II 题目-中等难度示例1. 获取头 反转中间 获取尾 -> 拼接2. 链表转换列表 -> 计算 -> 转换回链表 题目-中等难度 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点…

请求转发和请求重定向

目录 1. 定义层面 2. 请求方层面 3. 数据共享层面 4. 最终 url 层面 5. 代码实现层面 请求转发 请求重定向 在Java中&#xff0c;跳转网页的方式有两种&#xff0c;一种是请求转发&#xff0c;另一种是请求重定向&#xff0c;而实际上&#xff0c;这两种方式是有着明显…

JavaScript数据结构【进阶】

注&#xff1a;最后有面试挑战&#xff0c;看看自己掌握了吗 文章目录 使用 splice() 添加元素使用 slice() 复制数组元素使用展开运算符复制数组使用展开运算符合并数组使用 indexOf() 检查元素是否存在使用 for 循环遍历数组中的全部元素创建复杂的多维数组将键值对添加到对象…

APP外包开发的H5开发框架

跨平台移动应用开发框架允许开发者使用一套代码在多个操作系统上构建应用程序&#xff0c;从而节省时间和资源。以下是一些常见的跨平台移动应用开发框架以及它们的特点&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0…

从源码层面深度剖析Spring循环依赖 | 京东云技术团队

以下举例皆针对单例模式讨论 图解参考 https://www.processon.com/view/link/60e3b0ae0e3e74200e2478ce 1、Spring 如何创建Bean&#xff1f; 对于单例Bean来说&#xff0c;在Spring容器整个生命周期内&#xff0c;有且只有一个对象。 Spring 在创建 Bean 过程中&#xff0…

Vue在页面输出JSON对象,测试接口可复制使用

效果图&#xff1a; 数据处理前&#xff1a; 数据处理后&#xff1a; 代码实现&#xff1a; HTML: <el-table height"600" :data"tableData" border style"width: 100%" tooltip-effect"dark" size"mini"><el-…

前后端分离------后端创建笔记(上)

本文章转载于【SpringBootVue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客 仅用于学习和讨论&#xff0c;如有侵权请联系 源码&#xff1a;https://gitee.com/green_vegetables/x-admin-project.git 素材&#xff1a;https://pan.baidu.com/s/…

如何使用 ESP-01S 模块

如何使用 ESP-01S 模块 原始PDF文档 参考&#xff1a; 将 ESP-01 用作 WiFi shield的更好方法 (e-tinkers.com) How do I use ESP8266 ESP-01S WiFi Module with ESP-01S Adapter - Using Arduino / Programming Questions - Arduino Forum ESP-01S WiFi 模块 – 配置布线 -…

服务管理和计划任务

文章目录 服务管理计划任务 服务管理 systemctl 命令字 服务名 //配置服务与systemctl有关的命令字&#xff1a; 计划任务 一次性计划 at 时间 at now 5 min //当前时间五分钟后执行 at -l //列出计划任务 atrm 任务号 //删除计划任务执行完命令后Ctrld生效 周期性计…

Oracle数据迁移

问题描述&#xff1a; oracle数据库的所有表结构、数据、索引等需要需从测试库迁移到正式库。 解决步骤&#xff1a; oracle数据库迁移&#xff0c;主要通过expdp从测试库所在的源服务器将指定的数据表或数据源导出为一个或多个数据文件&#xff08;.dmp文件&#xff09;&…

添加SQLCipher 到项目中

文章目录 一、克隆下载SQLCipher二、手动导入1. 生成sqlite3.c2. 在项目中添加命令3. 添加 Security.framework 三、CocoaPods导入 SQLCipher官方地址 一、克隆下载SQLCipher $ cd ~/Documents/code $ git clone https://github.com/sqlcipher/sqlcipher.git二、手动导入 1.…

电商系统架构设计系列(八):订单数据越来越多,数据库越来越慢该怎么办?

上篇文章中&#xff0c;我给你留了一个思考题&#xff1a;订单数据越来越多&#xff0c;数据库越来越慢该怎么办&#xff1f; 今天这篇文章&#xff0c;我们来聊一下如何应对数据的持续增长&#xff0c;特别是像订单数据这种会随着时间一直累积的数据。 引言 为什么数据量越大…

【idea】点击idea启动没反应

RT 点击idea启动的时候没反应&#xff0c;接着百度报错&#xff0c;基本跟他们的也不一样。 首先我是做版本升级。其次&#xff0c;我之前是破解的。如果你也是跟我一样的话&#xff0c;那问题可能就处在破解上了 解决方式 首先&#xff0c;是跟大部分解决思路一样。先找到项…

分清性能测试,负载测试,压力测试这三个的区别

做测试一年多来&#xff0c;虽然平时的工作都能很好的完成&#xff0c;但最近突然发现自己在关于测试的整体知识体系上面的了解很是欠缺&#xff0c;所以&#xff0c;在工作之余也做了一些测试方面的知识的补充。不足之处&#xff0c;还请大家多多交流&#xff0c;互相学习。 …

C++笔记之单例模式

C笔记之单例模式 参考笔记&#xff1a;C笔记之call_once和once_flag code review 文章目录 C笔记之单例模式1.返回实例引用2.返回实例指针3.单例和智能指针share_ptr结合4.单例和std::call_once结合5.单例和std::call_once、unique_ptr结合 1.返回实例引用 代码 #include <…

ubuntu 如何命令行打开系统设置(Wifi,网络,应用程序...)

关于GNOME GNOME 是一个自由、开放源代码的桌面环境&#xff0c;它运行在 Linux 和其他类 UNIX 操作系统上。它是 GNU 项目的一部分&#xff0c;旨在为 Linux 操作系统提供一个现代化、易于使用的用户界面。 GNOME 桌面环境包括许多应用程序&#xff0c;例如文件管理器、文本编…

侯捷 C++ part2 兼谈对象模型笔记——5 三个C++11新特性

5 三个C11新特性 5.1 variadic templates 模板参数可变化&#xff0c;其语法为 ... (加在哪看情况) // 当参数pack里没有东西了就调用这个基本函数结束输出 void print() { }// 用于打印多个参数的可变参数模板函数 template <typename T, typename... Args> void pri…

SQL Developer中的Data Redaction

SQL Developer中的Data Redaction用起来比命令行方便多了。可以选定表或视图&#xff0c;右键点击“遮盖保护”菜单。 但赋权方面有需要注意的地方。 假设Redact Admin是SYS&#xff0c;Redact User是HR。虽然SYS具备所有权限&#xff0c;但还是报以下错误。其实这个错误是针…

湖南科技学院图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》

湖南科技学院图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》

Chrome浏览器导出插件并安装到其他电脑浏览器上的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…