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

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

目录

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

[二、静态缓解(Static mitigation)](#二、静态缓解(Static mitigation))

[三、动态缓解(Dynamic 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 #1392Pull Request #1397中实现了以下两种缓解方法。这两种方法都对系统性能有影响,这种影响因CPU类型和用例的不同而不同。缓解代码在默认情况下是启用的,但对于不受影响的平台或认为风险足够低的平台,可以在编译时禁用。

怎么禁用呢?

下面小节中未提到的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

相关推荐
CyberSecurity_zhang3 天前
Armv8的安全启动
安全·arm·tf-a·tf-m·安全启动
小小工匠1 个月前
Arch - 架构安全性_传输(Transport Security)
架构·security·传输安全·transport
粥粥粥少女的拧发条鸟2 个月前
【论文分享精炼版】 sNPU: Trusted Execution Environments on Integrated NPUs
security·tee·npu
小春学渗透2 个月前
CVE-2024-37032-Ollama漏洞
安全·web安全·网络安全·cve·安全服务
阿呆不呆@qq2 个月前
springblade-JWT认证缺陷漏洞CVE-2021-44910
cve·漏洞复现
dingdingfish2 个月前
Oracle 网络安全产品安全认证检索
oracle·database·security·backup·zdlra
粥粥粥少女的拧发条鸟2 个月前
【论文分享】Graviton: Trusted Execution Environments on GPUs 2018’OSDI
security·gpu
神仙约架3 个月前
【xilinx】MPSoC/RFSoC 设计ARM Cortex A 处理器 (TF-A) 可信固件中可能出现缓冲区溢出问题
arm开发·tf-a·可信固件·mpsoc
Atopos`3 个月前
Spring框架漏洞(附修复方法)
java·服务器·后端·安全·spring·web安全·cve
代码改变世界ctw3 个月前
Armv8/Armv9的Pstate寄存器介绍
汇编·arm开发·trustzone·atf·tee·寄存器·secure