ATF(TF-A) SPMC威胁模型-安全检测与评估

安全之安全(security²)博客目录导读

ATF(TF-A) 威胁模型汇总

目录

一、简介

二、评估目标

1、数据流图

三、威胁分析

1、信任边界

2、资产

3、威胁代理

4、威胁类型

5、威胁评估

5.1 端点在直接请求/响应调用中模拟发送方或接收方FF-A ID

5.2 篡改端点和SPMC之间的共享内存

5.3 端点可以篡改自己的状态或另一个端点的状态

5.4 攻击者可能试图通过使用外部DRAM stress技术注入错误

5.5 保护SPMC不受SMMU上游DMA设备的影响

5.6 重放端点之间过去通信的片段

5.7 恶意端点可能试图通过使用无效或不正确的输入参数来提取数据或状态信息

5.8 恶意端点可能伪造直接消息请求,从而通过直接消息响应揭示另一个端点的内部状态

5.9 探测端点之间的FF-A通信

5.10 恶意代理可能会尝试使用基于软件的cache侧信道攻击技术来泄露SPMC状态或秘密

5.11 恶意端点可能会尝试向SPMC发送针对端点内某个服务的请求,从而拒绝另一个端点访问该服务

5.12 恶意端点可能会尝试通过FFA_NOTIFICATION_BITMAP_CREATE在SPMC中分配通知位图

5.13 恶意端点可能试图通过FFA_NOTIFICATION_BITMAP_DESTROY销毁SPMC中的通知位图

5.14 恶意端点可能会尝试使用FF-A调用FFA_NOTIFICATION_BIND向非预期发送方授予权限,以设置针对另一个接收方的通知

5.15 恶意分区端点可能会尝试设置未绑定到它的通知

5.16 恶意分区端点可能会尝试获取不针对发送到它的通知

5.17 恶意分区端点可能会尝试通过FFA_NOTIFICATION_INFO_GET调用获取关于挂起通知的信息

5.18 恶意分区端点可能会尝试向另一个分区端点发送通知,阻碍其操作

5.19 恶意端点可能滥用FFA_RUN调用来恢复或打开其他端点执行上下文,试图更改SPMC和sp的内部状态,从而可能导致非法状态转换和死锁

5.20 恶意端点可以通过使用FFA_INTERRUPT调用来执行拒绝服务攻击

5.21 恶意安全端点可能会deactivate(虚拟)安全中断,该中断并不是SPMC发出的信号,从而试图改变SPMC的状态,并可能导致系统崩溃

5.22 恶意的安全端点可能不会deactive SPMC向它发出的虚拟中断信号,而是执行安全中断信号完成。这种破坏SPMC内部状态的尝试可能导致未知状态,并进一步导致系统崩溃

5.23 恶意端点可以利用非安全中断抢占安全端点,从而试图使其无法处理针对它的安全虚拟中断

5.24 安全端点依赖于CPU周期的主调度器。恶意端点可能会延迟安全端点的调度。如果不及时处理安全中断,可能会危及SP和SPMC的状态,从而使系统无响应

5.25 恶意的FF-A端点可以使用内存共享调用来耗尽SPMC资源

5.26 如果由于致命错误而终止,而没有释放共享/出借的内存,则借用方可能会干扰出借方的操作

5.27 恶意的FF-A端点可能试图篡改共享/出借内存的内容,同时被其他FF-A端点访问

5.28 恶意的FF-A端点可能会尝试共享不在其翻译机制中的内存,或者尝试指定比它在给定时间拥有的属性更宽松的属性


一、简介

        本文提供了TF-ASecure Partition Manager(SPM)实现的威胁模型,或者更一般地说,是运行在实现了FEAT_SEL2(以前称为Armv8.4 Secure EL2)体系结构扩展的系统上的S-EL2参考固件。SPM的实现是基于Arm Firmware Framework for Arm A-profile规范。

        简而言之,广泛的FF-A规范和S-EL2固件实现提供:

        1)互不信任的软件组件或FF-A术语中的端点的隔离。

        2)安全世界中不同的沙箱称为安全分区。这允许从多个供应商隔离服务。

        3)在FF-A端点之间进行通信和内存共享的标准协议。

        4)正常世界和安全世界的相互隔离(例如,可信操作系统被阻止映射任意NS物理内存区域,如内核或Hypervisor)。

二、评估目标

        在该威胁模型中,评估的目标是S-EL2固件或Secure Partition Manager Core组件(SPMC)。EL3下的monitor和SPMD由通用TF-A威胁模型涵盖。

        这个威胁模型的范围是:

        1)S-EL2 SPMC的TF-A实现基于运行在TrustZone安全环境中的Hafnium hypervisor(在S-EL2异常级别)。该威胁模型与非安全世界的Hypervisor或VMs无关。不包括S-EL1和EL3 SPMC解决方案。

        2)该实现符合FF-A v1.0规范和FF-A v1.1规范的一些特性。

        3)安全分区是在引导时静态配置的。

        4)关注生命周期的运行时部分(没有特别强调引导时间、出厂固件配置、固件更新等)。

        5)不包括高级或侵入性物理攻击,如解封,FIB(聚焦离子束)等。

        6)假设启用了安全引导,特别是TF-A安全引导(TBBR或双CoT)。攻击者不能引导未经SiP或平台提供程序批准的任意镜像。

1、数据流图

        下图显示了SPM的高级数据流图,该数据流图分为位于EL3的SPMD组件和位于S-EL2的SPMC组件。SPMD主要充当非安全世界和安全世界之间的中继器/直通器。它被认为暴露了很小的攻击面。

        下表给出了每个图元素的描述。在图中,红色虚线表示信任边界。虚线之外的组件被认为是不可信的。

元素

描述

DF1

SP到SPMC通信。FF-A函数调用或实现定义的Hypervisor调用。

DF2

SPMC到SPMD的FF-A调用。

DF3

SPMD到NS转发。

DF4

SP到SP FF-A直接消息请求/响应。为了简化图表,请注意SP到SP的通信是通过SPMC进行的(SP1向SPMC执行直接的消息请求,目标是SP2。从SP2到SP1的直接消息响应也是如此)。

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)

        类似地,此威胁模型重用相同的威胁风险评级。风险分析是基于服务器或移动终端进行评估的。

5、威胁评估

        通过对数据流图的每个元素应用STRIDE威胁分析,可以识别出以下威胁。

5.1 端点在直接请求/响应调用中模拟发送方或接收方FF-A ID

序号

01

威胁

端点在直接请求/响应调用中模拟发送方或接收方FF-A ID

数据流

DF1, DF2, DF3, DF4

受影响的TF-A组件

SPMD, SPMC

资产

SP状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

欺骗

产品

类型

服务器

移动终端

影响

评分

严重(5)严重(5)

可能性评分

严重(5)严重(5)

综合风险评分

严重(25)严重(25)

缓解

措施

TF-A SPMC并没有减轻这种威胁。下面的指导留给系统集成商在必要时实现。SPMC必须在直接消息请求/响应接口中执行检查,以确保端点不能欺骗源和目的世界(例如,由NWd发起的直接发送到SWd的消息不能使用SWd ID作为发送方ID)。此外,可以添加驻留在SPMC中的软件组件,用于直接请求/响应过滤。它可以配置已知ID列表,以及在一个端点和另一个端点之间可以发生哪些交互(例如,哪个NWd端点ID向哪个SWd端点ID发送直接请求)。该组件检查发送方/接收方字段,以确保端点之间的合法通信。类似的组件可以存在于操作系统内核驱动程序或Hypervisor中,尽管它仍然不受SPMD/SPMC的信任。

5.2 篡改端点和SPMC之间的共享内存

序号

02

威胁

篡改端点和SPMC之间的共享内存。当SPMC处理RX/TX缓冲区时,恶意端点可能会试图篡改其RX/TX缓冲区内容(TOCTOU)。

数据流

DF1, DF3, DF4, DF7

受影响的TF-A组件

SPMC

资产

共享内存,信息交换

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

篡改

产品

类型

服务器

移动终端

影响

评分

高(4)

高(4)

可能性评分

高(4)高(4)

综合风险评分

高(16)高(16)

缓解

措施

在FF-A v1.0和v1.1的上下文中,这是共享RX/TX缓冲对以及在PARTITION_INFO_GET或mem共享原语中的使用情况。SPMC必须在处理TX缓冲区的内容之前将其内容复制到内部临时缓冲区。

SPMC必须对不受信任的端点通过TX缓冲区传输的数据实现强化的输入验证。TF-A SPMC通过强制检查通过RX/TX缓冲区传输的数据来减轻这种威胁。

5.3 端点可以篡改自己的状态或另一个端点的状态

序号

03

威胁

端点可以篡改自己的状态或另一个端点的状态。恶意端点可能试图通过使用不寻常的FF-A函数调用组合(或乱序)来破坏自己或其他SP状态。这也可以是一个端点向另一个端点发出FF-A函数调用,而后者还没有处于接收它的状态(例如,SP在正常世界尚未启动时向正常世界发送直接请求)。

通过在FF-A内存共享、直接请求和响应或处理中断中使用意外转换来改变SPMC状态本身。这可以通过随机刺激注入或fuzzing来实现。

数据流

DF1, DF2, DF3, DF4

受影响的TF-A组件

SPMD, SPMC

资产

SP状态, SPMC状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

篡改

产品

类型

服务器

移动终端

影响

评分

高(4)

高(4)

可能性评分

中(3)

中(3)

综合风险评分

高(12)

高(12)

缓解

措施

TF-A SPMC通过遵循FF-A v1.1 EAC0规范中描述的分区运行时模型指导来缓解此类威胁。SPMC在运行时执行大量检查,通过遵循分区运行时模型来防止非法状态转换。

5.4 攻击者可能试图通过使用外部DRAM stress技术注入错误

序号

04

威胁

攻击者可能试图通过使用外部DRAM stress技术注入错误。恶意代理可能会尝试在SPMC管理的页表中切换SP Stage-2 MMU描述符位。这可能发生在Rowhammer类型的攻击中。

数据流

DF7

受影响的TF-A组件

SPMC

资产

SP或SPMC状态

威胁

代理

硬件攻击

威胁

类型

篡改

产品

类型

服务器

移动终端

影响

评分

高(4)

高(4)

可能性评分

低(2)

中(3)

综合风险评分

中(8)

高(12)

缓解

措施

TF-A SPMC不提供针对此类攻击的缓解措施。它可以通过使用专用硬件电路或在芯片组或平台级别进行加固来解决,这留给集成商。

5.5 保护SPMC不受SMMU上游DMA设备的影响

序号

05

威胁

保护SPMC不受SMMU上游DMA设备的影响。设备可能试图篡改内部SPMC代码/数据段。

数据流

DF5

受影响的TF-A组件

SPMC

资产

SPMC或SP状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

篡改、特权提升

产品

类型

服务器

移动终端

影响

评分

高(4)

高(4)

可能性评分

中(3)

中(3)

综合风险评分

高(12)

高(12)

缓解

措施

平台可能更喜欢通过SMMU配置和页表分配引导时间、静态分配的内存区域。FF-A v1.1规范通过静态DMA隔离提供了这种功能。TF-A SPMC并没有减轻这种威胁。它将在未来的版本中采用静态DMA隔离方法。

5.6 重放端点之间过去通信的片段

序号

06

威胁

重放端点之间过去通信的片段。恶意端点可能会重放发生在两个合法端点之间的消息交换,从而触发故障或从接收端点提取秘密。特别是,端点和SPMC之间带有碎片消息的内存共享操作可能会被恶意代理重放,因为恶意代理可以访问或获得对不属于该代理的内存区域的权限。

数据流

DF2, DF3

受影响的TF-A组件

SPMC

资产

信息交换

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

抵赖

产品

类型

服务器

移动终端

影响

评分

中(3)

中(3)

可能性评分

高(4)

高(4)

综合风险评分

高(12)

高(12)

缓解

措施

TF-A SPMC并没有减轻这种威胁。

5.7 恶意端点可能试图通过使用无效或不正确的输入参数来提取数据或状态信息

序号

07

威胁

恶意端点可能试图通过使用无效或不正确的输入参数来提取数据或状态信息。缺乏输入参数验证或恶意伪造输入参数的副作用可能会影响SPMC。

数据流

DF1, DF2, DF3, DF4

受影响的TF-A组件

SPMD, SPMC

资产

SP/SPMC秘密,SP/SPMC状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

信息交换

产品

类型

服务器

移动终端

影响

评分

高(4)

高(4)

可能性评分

中(3)

中(3)

综合风险评分

高(12)

高(12)

缓解

措施

安全分区必须遵循安全标准和最佳实践,以减轻被常见漏洞利用的风险。使用软件(金丝雀)或硬件强化技术(XN、WXN、BTI、指针身份验证、MTE)有助于及早发现和阻止漏洞利用。TF-A SPMC通过实现栈保护、指针认证、BTI、XN、WXN和安全加固技术来减轻这种威胁。

5.8 恶意端点可能伪造直接消息请求,从而通过直接消息响应揭示另一个端点的内部状态

序号

08

威胁

恶意端点可能伪造直接消息请求,从而通过直接消息响应揭示另一个端点的内部状态。安全分区或SPMC通过直接消息响应来回复分区消息,其中包含可能揭示其内部状态的信息(例如超出允许范围的分区消息响应)。

数据流

DF1, DF2, DF3, DF4

受影响的TF-A组件

SPMC

资产

SPMC/SP状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

信息泄露

产品

类型

服务器

移动终端

影响

评分

中(3)

中(3)

可能性评分

低(2)

低(2)

综合风险评分

中(6)

中(6)

缓解

措施

对于针对SPMC的直接请求的特定情况,对后者进行加固,以防止通过直接消息响应透露其内部状态或SP的状态。此外,SPMC根据分区运行时模型建立的规则在运行时执行大量检查,以阻止端点对另一个端点的内部状态进行恶意提取。

5.9 探测端点之间的FF-A通信

序号

09

威胁

探测端点之间的FF-A通信。SPMC和sp通常加载到外部内存(由TrustZone内存控制器保护)。当共享缓冲区保存在外部内存中时,恶意代理可以使用非侵入性方法探测外部内存总线,并提取SP和SPMC之间的通信,或者SP之间的通信。

数据流

DF7

受影响的TF-A组件

SPMC

资产

SP/SPMC状态, SP/SPMC秘密

威胁

代理

硬件攻击

威胁

类型

信息泄露

产品

类型

服务器

移动终端

影响

评分

中(3)

中(3)

可能性评分

低(2)

中(3)

综合风险评分

中(6)

中(9)

缓解

措施

期望平台或芯片组提供保护DRAM内容的保障。TF-A SPMC不能减轻这类攻击,这是留给集成商的。

5.10 恶意代理可能会尝试使用基于软件的cache侧信道攻击技术来泄露SPMC状态或秘密

序号

10

威胁

恶意代理可能会尝试使用基于软件的cache侧信道攻击技术来泄露SPMC状态或秘密。

数据流

DF7

受影响的TF-A组件

SPMC

资产

SP或SPMC状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

信息泄露

产品

类型

服务器

移动终端

影响

评分

中(3)

中(3)

可能性评分

低(2)

低(2)

综合风险评分

中(6)

中(6)

缓解

措施

从集成的角度来看,假设在S-EL2中使用SPMC组件的平台(因此实现了Armv8.4 FEAT_SEL2架构扩展)实现了对Spectre, Meltdown或其他cache时间侧信道类型攻击的缓解。TF-A SPMC实现了一种缓解(防止在异常返回后进行投机的屏障指令)。SPMC可以通过软件缓解措施(例如投机屏障)进一步加强,以应对硬件中未涵盖的情况。使用加固的编译器和适当的选项,代码检查是减轻幽灵类型攻击的推荐方法。对于未硬化的内核,使用诸如内核页表隔离之类的技术可以帮助减轻Meltdown类型的攻击。

5.11 恶意端点可能会尝试向SPMC发送针对端点内某个服务的请求,从而拒绝另一个端点访问该服务

序号

11

威胁

恶意端点可能会尝试向SPMC发送针对端点内某个服务的请求,从而拒绝另一个端点访问该服务。类似地,恶意端点可能以端点内的服务为目标,使得后者无法从另一个端点请求服务。

数据流

DF1, DF2, DF3, DF4

受影响的TF-A组件

SPMC

资产

SPMC状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

拒绝服务

产品

类型

服务器

移动终端

影响

评分

中(3)

中(3)

可能性评分

中(3)

中(3)

综合风险评分

中(9)

中(9)

缓解

措施

TF-A SPMC并没有减轻这种威胁。限制操作完成的时间可以通过使用受信任的看门狗来实现。其他服务质量监控可以在SPMC中实现,例如在有限的时间范围内计算操作的数量。

5.12 恶意端点可能会尝试通过FFA_NOTIFICATION_BITMAP_CREATE在SPMC中分配通知位图

序号

12

威胁

恶意端点可能会尝试通过FFA_NOTIFICATION_BITMAP_CREATE在SPMC中分配通知位图。这可能是试图耗尽SPMC的内存,或者为不打算接收来自sp的通知的VM分配位图。从而创造了一个本来不应该存在的渠道的可能性。

数据流

DF1, DF2, DF3

受影响的TF-A组件

SPMC

资产

SPMC状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

拒绝服务,欺骗

产品

类型

服务器

移动终端

影响

评分

中(3)

中(3)

可能性评分

中(3)

中(3)

综合风险评分

中(9)

中(9)

缓解

措施

TF-A SPMC通过为位图分配定义一个固定大小的池来减轻这种威胁。它还限制了指定的从NWd端点使用的FF-A调用。在NWd中,管理程序应该限制对指定的FF-A调用的访问。

5.13 恶意端点可能试图通过FFA_NOTIFICATION_BITMAP_DESTROY销毁SPMC中的通知位图

序号

13

威胁

恶意端点可能试图通过FFA_NOTIFICATION_BITMAP_DESTROY销毁SPMC中的通知位图。这可能是试图篡改SPMC状态,使分区无法接收通知。

数据流

DF1, DF2, DF3

受影响的TF-A组件

SPMC

资产

SPMC状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

篡改

产品

类型

服务器

移动终端

影响

评分

低(2)

低(2)

可能性评分

低(2)

低(2)

综合风险评分

低(4)

低(4)

缓解

措施

TF-A SPMC通过限制NWd发出指定的FF-A调用来缓解这一问题。此外,如果存在待处理的通知,则不能销毁通知位图。在NWd中,管理程序必须限制可以发出指定调用的NS-Endpoint。

5.14 恶意端点可能会尝试使用FF-A调用FFA_NOTIFICATION_BIND向非预期发送方授予权限,以设置针对另一个接收方的通知

序号

14

威胁

恶意端点可能会尝试使用FF-A调用FFA_NOTIFICATION_BIND向非预期发送方授予权限,以设置针对另一个接收方的通知。这可能是试图篡改SPMC状态,从而建立一个意想不到的、可能是恶意的通信通道。

数据流

DF1, DF2, DF3

受影响的TF-A组件

SPMC

资产

SPMC状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

篡改、欺骗

产品

类型

服务器

移动终端

影响

评分

低(2)

低(2)

可能性评分

中(3)

中(3)

综合风险评分

中(6)

中(6)

缓解

措施

TF-A SPMC通过限制指定的FFA_NOTIFICATION_BIND调用只能由接收方发出来缓解这种情况。接收方负责将通知id分配给一个特定分区。此外,不打算接收通知的接收器必须在各自分区的清单中禁用通知接收。至于来自NWd的呼叫,如果NWd VM在初始化时分配了位图,TF-A SPMC不能保证不会发生这种威胁。Hypervisor必须在NWd中进行缓解,类似于SPMC在SWd中的调用。但是,如果Hypervisor已经被破坏,SPMC将无法缓解从NWd转发的呼叫。

5.15 恶意分区端点可能会尝试设置未绑定到它的通知

序号

15

威胁

恶意分区端点可能会尝试设置未绑定到它的通知

数据流

DF1, DF2, DF3

受影响的TF-A组件

SPMC

资产

SPMC状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

欺骗

产品

类型

服务器

移动终端

影响

评分

低(2)

低(2)

可能性评分

低(2)

低(2)

综合风险评分

低(4)

低(4)

缓解

措施

TF-A SPMC通过检查调用FFA_NOTIFICATION_SET的输入中提供的发送方ID来减轻这种情况。对于给定的接收方,SPMC跟踪哪些通知绑定到哪个发送方。如果发送方是SP,则提供的发送方ID必须与当前正在运行的分区的ID匹配。

5.16 恶意分区端点可能会尝试获取不针对发送到它的通知

序号

16

威胁

恶意分区端点可能会尝试获取不针对发送到它的通知。

数据流

DF1, DF2, DF3

受影响的TF-A组件

SPMC

资产

SPMC状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

欺骗

产品

类型

服务器

移动终端

影响

评分

提示(1)

提示(1)

可能性评分

低(2)

低(2)

综合风险评分

低(2)

低(2)

缓解

措施

TF-A SPMC通过检查调用FFA_NOTIFICATION_GET的输入中提供的接收方ID来减轻这种情况。SPMC跟踪每个接收方等待的通知。提供的接收方ID必须与当前正在运行的分区的ID匹配(如果它是SP)。对于从NWd转发的呼叫,如果接收者已经创建了它的位图,并且有挂起的通知,SPMC将返回挂起的通知。如果Hypervisor或OS内核受到威胁,SPMC将无法减轻来自恶意NWd端点的调用。

5.17 恶意分区端点可能会尝试通过FFA_NOTIFICATION_INFO_GET调用获取关于挂起通知的信息

序号

17

威胁

恶意分区端点可能会尝试通过FFA_NOTIFICATION_INFO_GET调用获取关于挂起通知的信息。这个调用意味着NWd FF-A驱动程序使用。

数据流

DF1, DF2, DF3

受影响的TF-A组件

SPMC

资产

SPMC状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

信息泄露

产品

类型

服务器

移动终端

影响

评分

低(2)

低(2)

可能性评分

中(3)

中(3)

综合风险评分

中(6)

中(6)

缓解

措施

TF-A SPMC通过将错误返回给sp对FFA_NOTIFICATION_INFO_GET的调用来减轻这种情况。如果Hypervisor或OS内核受到威胁,SPMC将无法减轻来自恶意NWd端点的调用。

5.18 恶意分区端点可能会尝试向另一个分区端点发送通知,阻碍其操作

序号

18

威胁

恶意分区端点可能会尝试向另一个分区端点发送通知,阻碍其操作。恶意端点的意图可能是干扰接收器和/或主端点的执行,因为它们都可以被NPI和SRI分别抢占。

数据流

DF1, DF2, DF3, DF4

受影响的TF-A组件

SPMC

资产

SPMC/SP状态,CPU周期

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

拒绝服务

产品

类型

服务器

移动终端

影响

评分

低(2)

低(2)

可能性评分

中(3)

中(3)

综合风险评分

中(6)

中(6)

缓解

措施

TF-A SPMC并没有减轻这种威胁。然而,由于架构的原因,影响是有限的:通知没有排队,已经发出信号的通知需要由接收方检索,直到它可以再次发送。

SRI和NPI在处理之前都不能挂起,这限制了虚假中断的数量。-在给定的执行上下文中,给定的接收者只能将最大数量的通知绑定到给定的发送者。

5.19 恶意端点可能滥用FFA_RUN调用来恢复或打开其他端点执行上下文,试图更改SPMC和sp的内部状态,从而可能导致非法状态转换和死锁

序号

19

威胁

恶意端点可能滥用FFA_RUN调用来恢复或打开其他端点执行上下文,试图更改SPMC和sp的内部状态,从而可能导致非法状态转换和死锁。端点可以使用FFA_MSG_SEND_DIRECT_REQ ABI调用到另一个端点执行上下文来创建调用链。恶意端点可能会滥用这一点,在调用链中形成循环,从而导致潜在的死锁。

数据流

DF1, DF2, DF4

受影响的TF-A组件

SPMC, SPMD

资产

SPMC/SP状态,调度周期

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

篡改、拒绝服务

产品

类型

服务器

移动终端

影响

评分

中(3)

中(3)

可能性评分

中(3)

中(3)

综合风险评分

中(9)

中(9)

缓解

措施

TF-A SPMC通过遵循FF-A v1.1 EAC0规范中描述的分区运行时模型指导来缓解此类威胁。SPMC在运行时执行大量检查,通过遵循分区运行时模型来防止非法状态转换。此外,如果接收端端点是当前调用链中当前端点的前身,SPMC将通过返回FFA_DENIED错误代码来拒绝任何形成循环的尝试。只有主调度器才允许打开其他分区的执行上下文,尽管SPMC没有能力检查其标识。安全分区基于运行时模型恢复其他分区的执行上下文的能力有限。这种企图不能损害SPMC的完整性。

5.20 恶意端点可以通过使用FFA_INTERRUPT调用来执行拒绝服务攻击

序号

20

威胁

恶意端点可以通过使用FFA_INTERRUPT调用来执行拒绝服务攻击,该调用可能试图导致系统崩溃或进入未知状态,因为没有物理中断可以挂起,以便在SPMC中处理。

数据流

DF1, DF2, DF5

受影响的TF-A组件

SPMC, SPMD

资产

SPMC/SP状态,调度周期

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

篡改,拒绝服务

产品

类型

服务器

移动终端

影响

评分

中(3)

中(3)

可能性评分

中(3)

中(3)

综合风险评分

中(9)

中(9)

缓解

措施

TF-A SPMC通过检测来自分区的调用和简单地返回FFA_ERROR状态接口来缓解这种攻击。SPMC只允许SPMD使用FFA_INTERRUPT ABI来与在非安全世界执行时触发的挂起的安全中断通信。

5.21 恶意安全端点可能会deactivate(虚拟)安全中断,该中断并不是SPMC发出的信号,从而试图改变SPMC的状态,并可能导致系统崩溃

序号

21

威胁

恶意安全端点可能会deactivate(虚拟)安全中断,该中断并不是SPMC发出的信号,从而试图改变SPMC的状态,并可能导致系统崩溃。SPMC将虚拟中断id映射到物理中断id,以保持虚拟中断驱动程序的简单实现。类似地,恶意安全端点可能会为安全中断多次调用deactivation ABI。此外,恶意安全端点可能会试图停用SPMC向另一个端点执行上下文发出的(虚拟)安全中断,甚至在处理安全中断之前。

数据流

DF1, DF5

受影响的TF-A组件

SPMC

资产

SPMC/SP状态

威胁

代理

S-Endpoint

威胁

类型

篡改

产品

类型

服务器

移动终端

影响

评分

中(3)

中(3)

可能性评分

中(3)

中(3)

综合风险评分

中(9)

中(9)

缓解

措施

在初始化时,TF-A SPMC解析分区清单,以找到负责处理各种安全物理中断的目标执行上下文。TF-A SPMC通过以下方式缓解上述威胁:

  • 跟踪发送给安全分区执行上下文的每个挂起的虚拟中断。

  • 如果没有挂起的物理中断映射到给定的虚拟中断,则拒绝来自SP的任何deactivation调用。

  • 如果虚拟中断尚未被发送到当前执行上下文,则拒绝来自SP的任何deactivation调用。

5.22 恶意的安全端点可能不会deactive SPMC向它发出的虚拟中断信号,而是执行安全中断信号完成。这种破坏SPMC内部状态的尝试可能导致未知状态,并进一步导致系统崩溃

序号

22

威胁

恶意的安全端点可能不会deactive SPMC向它发出的虚拟中断信号,而是执行安全中断信号完成。这种破坏SPMC内部状态的尝试可能导致未知状态,并进一步导致系统崩溃。类似地,恶意安全端点可能故意不执行中断停用或中断完成信号。由于SPMC一次只能处理一个安全中断,这可能会阻塞系统,因为所有中断都被无限期地屏蔽,这可能会导致系统崩溃或重新启动。

数据流

DF1, DF5

受影响的TF-A组件

SPMC

资产

SPMC/SP状态,调度周期

威胁

代理

S-Endpoint

威胁

类型

篡改、拒绝服务

产品

类型

服务器

移动终端

影响

评分

中(3)

中(3)

可能性评分

中(3)

中(3)

综合风险评分

中(9)

中(9)

缓解

措施

TF-A SPMC不能缓解这种威胁。这是当前SPMC实现的一个限制,需要在未来的版本中加以处理。

5.23 恶意端点可以利用非安全中断抢占安全端点,从而试图使其无法处理针对它的安全虚拟中断

序号

23

威胁

恶意端点可以利用非安全中断抢占安全端点,从而试图使其无法处理针对它的安全虚拟中断。这可能导致优先级反转,因为安全虚拟中断保持挂起,而非安全中断由非安全世界虚拟机处理。

数据流

DF1, DF2, DF3, DF5

受影响的TF-A组件

SPMC, SPMD

资产

SPMC/SP状态,调度周期

威胁

代理

NS-Endpoint

威胁

类型

拒绝服务

产品

类型

服务器

移动终端

影响

评分

中(3)

中(3)

可能性评分

中(3)

中(3)

综合风险评分

中(9)

中(9)

缓解

措施

TF-A SPMC本身并不能缓解此类威胁。系统集成商必须采取必要的高层设计决策,考虑中断优先级。SPMC执行其角色,使sp能够根据FF-A v1.1 EAC0规范中的指导,在分区清单的帮助下指定针对非安全中断的适当操作。

5.24 安全端点依赖于CPU周期的主调度器。恶意端点可能会延迟安全端点的调度。如果不及时处理安全中断,可能会危及SP和SPMC的状态,从而使系统无响应

序号

24

威胁

安全端点依赖于CPU周期的主调度器。恶意端点可能会延迟安全端点的调度。如果不及时处理安全中断,可能会危及SP和SPMC的状态,从而使系统无响应

数据流

DF1, DF2, DF3, DF5

受影响的TF-A组件

SPMC, SPMD

资产

SPMC/SP状态,调度周期

威胁

代理

NS-Endpoint

威胁

类型

拒绝服务

产品

类型

服务器

移动终端

影响

评分

中(3)

中(3)

可能性评分

中(3)

中(3)

综合风险评分

中(9)

中(9)

缓解

措施

TF-A SPMC不能完全缓解此类威胁。但是,根据FF-A v1.1 EAC0规范中提供的指导,SPMC规定了CPU周期,以便在SPMC调度模式下运行安全端点执行上下文,该模式不能被非安全中断抢占。这减少了周期分配对主调度器的依赖。此外,所有进一步的中断都被屏蔽,直到当前CPU上挂起的安全虚拟中断被处理。这允许SP执行上下文即使在被中断时也能继续处理。

5.25 恶意的FF-A端点可以使用内存共享调用来耗尽SPMC资源

序号

25

威胁

恶意的FF-A端点可以使用内存共享调用来耗尽SPMC资源。对于涉及SP的每个正在进行的操作,SPMC分配资源来跟踪其状态。如果操作从未结束,则资源永远不会释放。在最坏的情况下,永远不会结束的多个操作可能会耗尽SPMC资源,导致无法进行内存共享操作。这可能会影响其他无害的FF-A端点,使其无法合法地使用内存共享功能。其目的甚至可能是导致SPMC消耗过多的CPU周期,试图使其拒绝向NWd提供服务。

数据流

DF1, DF2

受影响的TF-A组件

SPMC, SPMD

资产

SPMC状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

拒绝服务

产品

类型

服务器

移动终端

影响

评分

高(4)

中(3)

可能性评分

高(4)

中3)

综合风险评分

高(16)

中(9)

缓解

措施

TF-A SPMC使用静态分配的内存池来跟踪正在进行的内存共享操作。在可能的攻击之后,这可能由于内存不足而失败,并向调用者返回错误。此时,任何其他需要使用内存共享进行操作的端点都可能使自己处于不可用状态。关于CPU周期耗尽威胁,SPMC没有提供任何缓解措施,因为虚拟FF-A实例上的任何FF-A端点都允许调用内存共享/出借/赠予。

5.26 如果由于致命错误而终止,而没有释放共享/出借的内存,则借用方可能会干扰出借方的操作

序号

26

威胁

如果由于致命错误而终止,而没有释放共享/出借的内存,则借用方可能会干扰出借方的操作。这种情况可能使出借方无法运作。

数据流

DF1, DF2

受影响的TF-A组件

SPMC

资产

SP状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

拒绝服务

产品

类型

服务器

移动终端

影响

评分

高(4)

高(2)

可能性评分

中(3)

中(3)

综合风险评分

高(12)

高(6)

缓解

措施

TF-A SPMC没有为这种情况提供缓解措施。在失败的情况下,FF-A端点必须尝试放弃共享/出借的内存。用于跟踪SPMC中操作的内存也将保持可用。

5.27 恶意的FF-A端点可能试图篡改共享/出借内存的内容,同时被其他FF-A端点访问

序号

27

威胁

恶意的FF-A端点可能试图篡改共享/出借内存的内容,同时被其他FF-A端点访问。它可能会尝试这样做:当通过各自的FF-A调用检索或放弃对内存的访问时,使用一个清除标志;或者直接访问内存,而不考虑所有相关端点之间的同步协议。

数据流

DF1, DF2

受影响的TF-A组件

SPMC, FF-A endpoint

资产

SP状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

拒绝服务、篡改

产品

类型

服务器

移动终端

影响

评分

低(2)

低(2)

可能性评分

中(3)

中(3)

综合风险评分

中(6)

中(6)

缓解

措施

对于威胁中定义的第一种情况,TF-A SPMC通过确保只有在涉及多个借用方的场景中,当所有借用方都放弃对内存的访问时才清除内存,从而减轻了威胁。此外,如果接收方被授予RO权限,则SPMC将通过向相应的FF-A调用返回错误,拒绝代表借用方清除内存的任何请求。威胁中定义的第二种情况不能由SPMC减轻。NS/S FF-A端点需要建立一个健壮的协议来使用共享内存。

5.28 恶意的FF-A端点可能会尝试共享不在其翻译机制中的内存,或者尝试指定比它在给定时间拥有的属性更宽松的属性

序号

28

威胁

恶意的FF-A端点可能会尝试共享不在其翻译机制中的内存,或者尝试指定比它在给定时间拥有的属性更宽松的属性。这两种方式都可能是试图提升其特权。

数据流

DF1, DF2

受影响的TF-A组件

SPMC, FF-A endpoint

资产

SP状态

威胁

代理

NS-Endpoint, S-Endpoint

威胁

类型

拒绝服务、篡改

产品

类型

服务器

移动终端

影响

评分

高(4)

低(2)

可能性评分

中(3)

低(2)

综合风险评分

高(12)

低(4)

缓解

措施

TF-A SPMC通过对提供的内存区域描述符执行完整性检查来减轻这种威胁。对于虚拟FF-A实例上的操作,一旦提供了完整的内存描述符,SPMC就会验证内存是否是调用者转换机制的一部分。SPMC还检查所提供的内存属性是否在所有者拥有的内存属性范围内(就权限而言)。如果指定了更宽松的属性,SPMC将返回错误FFA_INVALID_PARAMETERS。在任何共享/出借或赠予内存的调用以及检索请求中都强制执行许可规则。

参考: 11.2. SPMC Threat Model — Trusted Firmware-A 2.9.0 documentation

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/131149.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript中的Hoisting机制

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ JavaScript 中的 Hoisting 机制⭐ 变量提升⭐ 函数提升⭐ 注意事项⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xf…

第7章_freeRTOS入门与工程实践之模块使用说明与STM32CubeMX配置

本教程基于韦东山百问网出的 DShanMCU-F103开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id724601559592 配套资料获取:https://rtos.100ask.net/zh/freeRTOS/DShanMCU-F103 freeRTOS系列教程之freeRTOS入…

SOLIDWORKS Composer反转关键帧实现产品安装过程

SOLIDWORKS Composer 是一款被用来制作交互式产品说明书的工具,可以帮助我们对产品设定精确的机构动画,并能根据材质生成一定细节的渲染图像。 今天我们主要向大家讲解的是,利用SOLIDWORKS Composer关键帧反转实现产品动态的安装。 一般情况下…

cf 交互题

今天cf遇到了交互题,这个交互题的算法很很很简单,但是在交互上卡了,导致交上的代码都不算罚时。(更伤心了。 所以,现在写一下交互题的做法,印象深刻嘛。 交互题,就是跟机器进行交互。你代码运…

数据结构——排序算法——希尔排序

希尔排序本质上是对插入排序的一种优化,它利用了插入排序的简单,又克服了插入排序每次只交换相邻两个元素的缺点。它的基本思想是: 1.将待排序数组按照一定的间隔分为多个子数组,每组分别进行插入排序。这里按照间隔分组指的不是…

vscode搭建Django自带后台管理系统

文章目录 一、django自带的后台管理系统1. 建表2. 后台管理系统2.1 创建账号2.2 运行后台2.3 登录 二、模版渲染1. 直接将数据渲染到页面2. 数据传递给js 三、数据库1. 查看当前数据库2. 创建UserInfo数据表3. Django rest framework配置 四、vue前端搭建1. 在Django项目的根目…

k8s(Kubernetes)集群部署--使用 kubeadm方式部署

k8s集群部署--使用 kubeadm方式部署 一、测试所需环境(三台均要执行)二、配置准备(三台均要执行)1. 重命名hostname、添加hosts2. 关闭防火墙、selinux与swap3. 添加网桥过滤及内核转发配置文件4.同步时间5.安装ipset及ipvsadm 三…

yocto stm32mp1集成ros

yocto stm32mp1集成ros yocto集成ros下载meta-rosyocto集成rosrootfs验证 yocto集成ros 本章节介绍yocto如何集成ros系统用来作机器人开发。 下载meta-ros 第一步首先需要下载meta-ros layer,meta-ros的链接如下:https://github.com/ros/meta-ros/tre…

1-4 AUTOSAR方法论

总目录——AUTOSAR入门详解AUTOSAR入门详解目录汇总:待续中。。。https://xianfan.blog.csdn.net/article/details/132818463 目录 一、前言 二、方法论 三、单个ECU开发流程 一、前言 汽车生产供应链上有以下角色:OEM、TIER1、TIER2,其主…

《向量数据库指南》——哪些需求推动了如Milvus Cloud等的向量数据库的更新和迭代?

这个问题需要深入讨论大模型与向量数据库之间的关系。从去年 ChatGPT 推出时这个问题就开始引发我们的思考。在当时,我们敏锐地意识到这将是一个机遇。然而,在国内,这个概念的认知需要更长的时间。我个人在去年四五月份的美国之行中注意到,数据库在美国已经是一个非常热门的…

入门人工智能 ——使用 tensorflow 训练一个新闻分类模型(6)

入门人工智能 ——使用 tensorflow 训练一个新闻分类模型(6) 入门人工智能 ——使用 tensorflow 训练一个新闻分类模型使用 tensorflow 训练一个新闻分类模型1. 安装TensorFlow和所需的依赖项。2. 打开收集的新闻数据集构建模型模型训练模型评估保存模型…

西门子S7-1200F或1500F系列安全PLC的组态步骤和基础编程(一)

西门子S7-1200F或1500F系列安全PLC的组态步骤和基础编程(一) 第一部分:组态配置 具体步骤可参考以下内容: 如下图所示,新建一个项目后,添加一个安全型PLC,这里以1516F-3 PN/DP为例进行说明, 如下图所示,添加CPU完成后,可以看到左侧的项目树中比普通的PLC多了几个选项…

MySQL-DDL语句

MySQL-DDL语句 数据库操作语句增删数据库查看数据库列表创建数据库进入(使用)数据库/查看当前所在的数据库查看数据库的建库语句查看数据库的编码集和校验集删除数据库修改数据库的编码集查看数据库支持的编码集和校验集 数据库备份备份单个数据库恢复数…

rust编译出错:error: failed to run custom build command for `ring v0.16.20`

安装 Visual Studio,确保选择 —.NET 桌面开发、使用 C 的桌面开发和通用 Windows 平台开发。显示已安装的工具链rustup show。然后通过运行更改和设置工具链rustup default stable-x86_64-pc-windows-msvc。 另外是想用clion进行调试rust 需要你按下面配置即可解…

solidworks底部状态栏显示不出来

如下图所示,solidworks主界面下面的状态栏突然不见了。 怎么调出来? 第一步:点击视图菜单,用户界面,把状态栏前的勾勾上。 第二步:把视图下面的触摸模式关掉,这一点很容易被大家忽略。

Oracle(1):Oracle简介

1 什么是 ORACLE ORACLE 数据库系统是美国 ORACLE 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S 体系结构的数据库之一。 ORACLE 通常应用于大型系统的数据库产品。 ORACLE 数据…

全面详解Maven的配置文件pom.xml(含常用plugin)

系列文章目录 手把手教你maven的安装与配置(windows) 全面详解Maven的配置文件pom.xml(含常用plugin) 系列文章目录一、什么是pom.xml二、pom.xml的结构三、项目的基本信息1.modules2.parent3.scm4.properties 四、项目的依赖列表1.dependency2.reposit…

【服务器 | 测试】如何在centos 7上面安装jmeter

安装之前需要几个环境,以下是列出的几个环境 CentOS 7.7 64位JDK 1.8JMeter 5.2 1. 下载jmeter安装包 JMeter是开源的工具,安装 JMeter 要先安装好 JDK 的环境,安装JDK在前面的文章已经讲到 JMeter最新版下载地址:Apache JMeter…

X86_64函数调用汇编程序分(2)

X86_64函数调用汇编程序分(2) 1 X86_64寄存器使用标准2 leaveq和retq指令2.1 leaveq2.2 retq 3 执行leaveq和retq之后栈的结构3.1 执行leaveq之后栈的结构3.1.1 test_fun_b函数执行leaveq之前的栈结构示意图3.1.2 test_fun_b函数执行leaveq之后的栈结构示…

JSP SSM 成果展示系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 JSP SSM 冬奥建设成果展示系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的 源代码和数据库,系统主…