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类型和用例的不同而不同。缓解代码在默认情况下是启用的,但对于不受影响的平台或认为风险足够低的平台,可以在编译时禁用。

        怎么禁用呢?

ATF(TF-A)安全通告 TFV-7 (CVE-2018-3639)_第1张图片

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

你可能感兴趣的:(TF-A之安全,ATF,TF-A,CVE,安全通告,Security,Advisory,ARM安全)