安全之安全(security²)博客目录导读
ATF(TF-A) 威胁模型汇总
目录
一、简介
二、评估目标
1、数据流图
三、威胁分析
1、信任边界
2、资产
3、威胁代理
4、威胁类型
5、威胁评估
5.1 端点在直接请求/响应调用中模拟发送方FF-A ID
5.2 端点在直接请求/响应调用中模拟接收方FF-A ID
5.3 篡改端点和SPMC之间共享的内存
5.4 端点可以篡改自己的状态或另一个端点的状态
5.5 重放端点之间过去通信的片段
5.6 恶意端点可能试图通过使用无效或不正确的输入参数来提取数据或状态信息
5.7 恶意端点可能伪造直接消息请求,从而通过直接消息响应揭示另一个端点的内部状态
5.8 探测端点之间的FF-A通信
5.9 恶意代理可能会尝试使用基于软件的cache侧信道攻击技术来泄露SPMC状态或秘钥
5.10 恶意端点可能会尝试向SPMC发送针对端点内某个服务的请求,从而拒绝另一个端点访问该服务
5.11 如果借用方端点遇到致命异常,则拒绝出借方端点进行进一步处理。如果接收方遇到致命异常,则拒绝新的发送方端点进行进一步处理
5.12 恶意端点可能会尝试赠予、共享、出借、放弃或回收未经授权的内存区域
一、简介
本文档提供了TF-A EL3 Secure Partition Manager(EL3 SPM)实现的威胁模型。EL3 SPM的实现是基于Arm A-profile规范的Arm固件框架。
二、评估目标
在这个威胁模型中,评估的目标是EL3固件中的Secure Partition Manager核心组件(SPMC)。EL3的monitor和SPMD由通用TF-A威胁模型涵盖。
这个威胁模型的范围是:
1)EL3 SPMC的TF-A实现
2)该实现符合FF-A v1.1规范。
3)安全分区是在引导时静态配置的。
4)关注生命周期的运行时部分(没有特别强调引导时间、出厂固件配置、固件更新等)。
5)不包括高级或侵入性物理攻击,如解封,FIB(聚焦离子束)等。
1、数据流图
下图显示了SPM在EL3上分为SPMD和SPMC组件的高级数据流图。SPMD主要充当非安全世界和安全世界之间的中继,它被认为暴露了很小的攻击面。
下表给出了每个元素的描述。在图中,红色虚线表示信任边界。虚线之外的组件被认为是不可信的。
元素 | 描述 |
---|---|
DF1 | SP到SPMC通信。FF-A函数调用或实现定义的Hypervisor调用。 |
DF2 | SPMC到SPMD通信。 |
DF3 | SPMD到NS转发。 |
DF4 | SPMC到LSP通信。NWd到LSP的通信是通过SPMC进行的。LSP可以通过SPMC发送直接响应SP1或NWd。 |
DF5 | 硬件控制 |
DF6 | Bootloader镜像加载 |
DF7 | 外部内存访问 |
三、威胁分析
此威胁模型遵循与通用TF-A威胁模型类似的方法。以下部分定义:
1)信任边界
2)资产
3)威胁代理
4)威胁类型
1、信任边界
1)非安全世界是不可信的。
2)安全世界和非安全世界是不同的信任边界。
3)EL3监视器、SPMD和SPMC是可信的。
4)引导加载程序(如果使用TF-A,特别是BL1/BL2)和运行时BL31通过使用可信引导被隐式信任。
5)EL3 monitor,SPMD, SPMC不信任SP(Secure Partitions)。
2、资产
确定以下资产:
1)SPMC状态。
2)SP的状态。
3)endpoints之间的信息交换(partition消息)。
4)SPMC secrets(例如启用时的指针身份验证密钥)。
5)SP secrets(例如应用程序密钥)。
6)调度周期。
7)共享内存。
3、威胁代理
确定以下威胁代理:
1)非安全端点(稍后称为NS-Endpoint):NS-EL2 (Hypervisor)或NS-EL1 (VM或OS内核)上的非安全世界客户端。
2)安全端点(以后称为S-Endpoint):通常是一个安全分区。
3)硬件攻击(非侵入性)需要对设备进行物理访问,例如总线探测或DRAM压力测试。
4、威胁类型
在通用TF-A威胁模型中暴露的以下威胁类别被重用(re-used):
1)欺骗(Spoofing)
2)篡改(Tampering)
3)抵赖(Repudiation)
4)信息泄露(Information disclosure)
5)拒绝服务(Denial of service)
6)特权提升(Elevation of privilege)
类似地,此威胁模型重用相同的威胁风险评级。风险分析是基于服务器或移动环境进行评估的。物联网不被评估,因为EL3 SPMC主要用于客户端。
5、威胁评估
通过对数据流图的每个元素应用STRIDE威胁分析,可以识别出以下威胁。
5.1 端点在直接请求/响应调用中模拟发送方FF-A ID
5.2 端点在直接请求/响应调用中模拟接收方FF-A ID
5.3 篡改端点和SPMC之间共享的内存
5.4 端点可以篡改自己的状态或另一个端点的状态
5.5 重放端点之间过去通信的片段
5.6 恶意端点可能试图通过使用无效或不正确的输入参数来提取数据或状态信息
5.7 恶意端点可能伪造直接消息请求,从而通过直接消息响应揭示另一个端点的内部状态
5.8 探测端点之间的FF-A通信
5.9 恶意代理可能会尝试使用基于软件的cache侧信道攻击技术来泄露SPMC状态或秘钥
5.10 恶意端点可能会尝试向SPMC发送针对端点内某个服务的请求,从而拒绝另一个端点访问该服务
5.11 如果借用方端点遇到致命异常,则拒绝出借方端点进行进一步处理。如果接收方遇到致命异常,则拒绝新的发送方端点进行进一步处理
5.12 恶意端点可能会尝试赠予、共享、出借、放弃或回收未经授权的内存区域
参考:11.3. EL3 SPMC Threat Model — Trusted Firmware-A 2.9.0 documentation