当前位置: 首页 > news >正文

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调用。
注意:与LSP通信时,SP1会以LSP为目的向SPMC发起直连消息请求。

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、公有云部署场景对应的客户需求 四、为何重视数据共享&#xff08…...

Navicat历史版本下载及地址组成分析

下载地址组成 https://download3.navicat.com/download/navicat161_premium_cs_x64.exe 地址逻辑:前缀 版本 类型 语言 位数 前缀: http://download.navicat.com/download/navicat版本: 三位数,前两位是大版本,后一位是小版本&#xff…...

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模块&#xff…...

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....

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...