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

相关推荐
汤愈韬4 天前
防火墙双机热备HRP
网络协议·security·huawei
high20115 天前
【CVE-Fix】-- CVE-2025-66478 (React 2 Shell RCE) 漏洞修复指南
前端·react.js·前端框架·cve
汤愈韬9 天前
知识点4:Nat Server的Server-map 跟ASPF中的server map区别与联系
网络协议·网络安全·security·huawei
汤愈韬9 天前
知识点3:动态目的NAT的配置总结
网络·网络协议·网络安全·security·huawei
汤愈韬11 天前
知识点1:防火墙是如何方式IP欺骗的
网络协议·网络安全·security·huawei
汤愈韬15 天前
防火墙地址转换技术NAT
网络安全·security·huawei
龙智DevSecOps解决方案1 个月前
什么是CVE?如何通过SAST/静态分析工具Perforce QAC 和 Klocwork应对CVE?
静态分析·cve·sast·klocwork·cwe·perforce qac
安全二次方security²2 个月前
TF-A CMake构建系统
编译·cmake·atf·tf-a·arm安全架构·构建系统
猫耳君3 个月前
汽车网络安全 CyberSecurity ISO/SAE 21434 测试之四
安全·web安全·网络安全·汽车·测试·security·cybersecurity
鼠鼠我捏,要死了捏3 个月前
OAuth2会话模式与JWT令牌模式对比分析与安全性能优化实践指南
security·jwt·oauth2