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

news/2024/5/18 13:32:02 标签: ATF, TF-A, CVE, 安全通告, Security, Advisory, ARM安全

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.niftyadmin.cn/n/4931896.html

相关文章

k8s、docker添加daemon.json添加“exec-opts“: [“native.cgroupdriver=systemd“]后无法启动的问题

考虑k8s下docker下载镜像太慢,修改了daemon.json,按照手册抄,添加 {"exec-opts": ["native.cgroupdriversystemd"],"registry-mirrors": ["https://kn0t2bca.mirror.aliyuncs.com"] }结果发现k8s起…

【C++基础(十)】C++泛型编程--模板初阶

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 模板 1. 前言2. 函数模板3. 函数模板原理4. 函数…

【瑞吉外卖】Linux学习

Linux常用命令 Linux命令初体验 Linux的命令都是由一个或几个单词的缩写构成的 命令对应英文作用lslist查看当前目录下的内容pwdprint work directory查看当前所在目录cd [目录名]change directory切换目录touch [文件名]touch如果文件不存在,新建文件mkdir [目录…

现代无人机技术

目录 1.发展 2.应用领域 3.对战争的影响 4.给人类带来的福利 5.给人类带来的坏处 1.发展 无人机的发展可以分为以下几个关键步骤: 1. 早期试验和研究:20世纪初,飞行器的概念开始出现,并进行了一些早期的试飞和实验。这些尝试包…

软件外包开发的VUE开发框架

Vue.js(通常简称为Vue)是一个流行的渐进式JavaScript框架,用于构建用户界面。它的核心库专注于视图层,但也可以结合其他库和工具来构建完整的单页面应用(SPA)。以下分享Vue.js的开发框架和特点,…

Scheming Furry 2023牛客暑期多校训练营8 K

题目大意:给出一个n*m的排列矩阵,A先手,B后手,A每次操作要交换两行的数,B每次操作要交换两列的数,问谁能在自己最后一次操作后使整个矩阵变成递增的,如果某人知道自己赢不了,他也不会…

【刷题笔记8.11】LeetCode题目:二叉树中序遍历、前序遍历、后序遍历

LeetCode题目:二叉树中序遍历、前序遍历、后序遍历 题目1:二叉树中序遍历 (一)题目描述 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 (二)分析 二叉树中序遍历,遍历…

uniapp 自定义写底部导航栏

项目的需求是根据用户的权限判断,当前显示哪些菜单。 项目使用uniapp vue3.0 1 根据前端写的项目目录来判断当前返回的路由是否有相同的,因为是数组所以做了封装函数来判断当前的路由数组。 //函数封装 function resArr(arr1, arr2) {const appTabs …