ATF(TF-A) EL3 SPMC威胁模型-安全检测与评估
安全之安全(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
相关文章:
ATF(TF-A) EL3 SPMC威胁模型-安全检测与评估
安全之安全(security)博客目录导读 ATF(TF-A) 威胁模型汇总 目录 一、简介 二、评估目标 1、数据流图 三、威胁分析 1、信任边界 2、资产 3、威胁代理 4、威胁类型 5、威胁评估 5.1 端点在直接请求/响应调用中模拟发送方FF-A ID 5.2 端点在直接请求/响应调用中模拟…...
AI绘画Stable Diffusion原理之扩散模型DDPM
前言 传送门: stable diffusion:Git|论文 stable-diffusion-webui:Git Google Colab Notebook部署stable-diffusion-webui:Git kaggle Notebook部署stable-diffusion-webui:Git AI绘画,输入一段…...
NSS [西湖论剑 2022]real_ez_node
NSS [西湖论剑 2022]real_ez_node 考点:ejs原型链污染、NodeJS 中 Unicode 字符损坏导致的 HTTP 拆分攻击。 开题。 附件start.sh。flag位置在根目录下/flag.txt app.js(这个没多大用) var createError require(http-errors); var express require(express); v…...
MySQL常用函数集锦 --- 字符串|数值|日期|流程函数总结
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】🎈 本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌 目录 一、字符…...
GaussDB(DWS)云原生数仓技术解析:湖仓一体,体验与大数据互联互通
文章目录 前言一、关于数据仓库需求场景分类二、数据仓库线下部署场景2.1、线下部署场景介绍及优劣势说明2.2、线下部署场景对应的客户需求 三、数据仓库公有云部署场景3.1、公有云部署场景介绍及优劣势说明3.2、公有云部署场景对应的客户需求 四、为何重视数据共享(…...
Navicat历史版本下载及地址组成分析
下载地址组成 https://download3.navicat.com/download/navicat161_premium_cs_x64.exe 地址逻辑:前缀 版本 类型 语言 位数 前缀: http://download.navicat.com/download/navicat版本: 三位数,前两位是大版本,后一位是小版本ÿ…...
avue之动态切换表格样式问题
动态切换 a\b 两个表格 ,a表格高度变成b的高度等问题, 解决方案:...
彻底解决ruoyi分页后总数错误的问题
问题描述 最近时不时的发现用户列表出来的数据只有24条,但是总记录数却有58条,很奇怪。各种百度查询,都是什么修改查询分页改代码,尝试后发现还是没有效果,经过各种验证发现就是SQL语句错误。 如果非要说是SQL语句没…...
SpringMVC学习笔记——1
SpringMVC学习笔记——1 一、SpringMVC简介1.1、SpringMVC概述1.2、SpringMVC快速入门1.3、Controller中访问容器中的Bean1.4、SpringMVC关键组件的浅析 二、SpringMVC的请求处理2.1、请求映射路径配置2.2、请求数据的接收2.2.1、键值对方式接收数据2.2.2、封装JavaBean数据2.2…...
20230908_python练习_selenium模块爬取网页小说练习
霍比特人小说爬取,使用 selenium 模块调用谷歌浏览器,无界面模式爬取小说网站信息,将数据按照每次2000字符在mysql中保存。 # https://www.shukuai9.com/b/324694/ # 导入需要的库 from selenium import webdriver # 导入Keys模块ÿ…...
Python:安装Flask web框架hello world示例
安装easy_install pip install distribute 安装pip easy_install pip 安装 virtualenv pip install virtualenv 激活Flask pip install Flask 创建web页面demo.py from flask import Flask app Flask(__name__)app.route(/) def hello_world():return Hello World! 2023if _…...
深度解析NLP文本摘要技术:定义、应用与PyTorch实战
目录 1. 概述1.1 什么是文本摘要?1.2 为什么需要文本摘要? 2. 发展历程2.1 早期技术2.2 统计方法的崛起2.3 深度学习的应用2.4 文本摘要的演变趋势 3. 主要任务3.1 单文档摘要3.2 多文档摘要3.3 信息性摘要 vs. 背景摘要3.4 实时摘要 4. 主要类型4.1 抽取…...
zabbix监控多实例redis
Zabbix监控多实例Redis 软件名称软件版本Zabbix Server6.0.17Zabbix Agent5.4.1Redis6.2.10 Zabbix客户端配置 编辑自动发现脚本 vim /usr/local/zabbix/scripts/redis_discovery.sh #!/bin/bash #Fucation:redis low-level discovery #Script_name redis_discovery.sh red…...
win11将visual studio 2022的调试控制台改为windows terminal
一、前言 默认的调试控制台太丑了,字体也没有好看的,还是更喜欢windows terminal 二、修改 2.1 修改之前 2.2 修改步骤 打开windows terminal点这个向下的标志 选择settings按照下图1, 2, 3步骤依次操作即可 2.3 修改之后 总结 漂亮很多了...
社区问答精选——长安链开发知多少?(8月)
本文是根据社群内开发者较为关注的问题进行整理,希望可以帮助开发者解决所遇到的问题。有更多问答在社区issue中描述更为细致,开发者提问前可以先按照关键词进行搜索。欢迎各位开发者按照问答template提交issue,也欢迎有意愿的开发者参与到社…...
神经网络-Unet网络
文章目录 前言1.seq2seq 编码后解码2. 网络结构3.特征融合4. 前言 Unet用来做小目标语义分割。 优点:网络结构非常简单。 大纲目录 2016年特别火,在细胞领域做分割特别好。 1.seq2seq 编码后解码 2. 网络结构 几个卷积层,越来越扁&#x…...
Java | 多线程综合练习
不爱生姜不吃醋⭐️ 如果本文有什么错误的话欢迎在评论区中指正 与其明天开始,不如现在行动! 文章目录 🌴前言🌴一、卖电影票1.题目2.分析3.代码 🌴二、送礼物1. 题目2. 分析3.代码 🌴三.打印奇数1. 题目2.…...
Kotlin变量与控制条件的基本用法
一、变量与控制条件 1、var与val var:可修改变量 val:只读变量,只读变量并非绝对只读。 编译时常量只能在函数之外定义,因为函数内常量是在运行时赋值,编译时常量要在变量赋值前存在。并且值是无法修改的。 const…...
第18章_瑞萨MCU零基础入门系列教程之GPT
本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id728461040949 配套资料获取:https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总: ht…...
openssl websockets
1. HTTPS通信的C实现 - 知乎 GitHub - Bwar/Nebula: Nebula is a powerful framwork for building highly concurrent, distributed, and resilient message-driven applications for C....
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
