汽车功能安全之内存保护机制总结

谈思实验室 2024-01-19 18:00

点击上方蓝字谈思实验室

获取更多汽车网络安全资讯

01

前言

功能安全(Functional Safety)是一项系统特性,由于基于功能安全的设计会影响到系统设计,所以从系统开发初始阶段就要进行考虑。

由于软件的复杂度会影响 到功能安全的设计,所以在AUTOSAR规范中,包含了部分与功能安全相关的需求,这些新技术和概念能够帮助降低功能安全相关组件的复杂度。

不过需要强调的是,AUTOSAR虽然通过提供安全措施和机制来支持基于功能安全产品开发,但这些独立的安全措施(Safety Measure)并不能形成整体的安全解决方案。

在功能安全标准(ISO 26262 2018, Part 6)中,提到了要避免软件相关元素之间干扰(Freedom from Interference between software elements)。

软件之间的相互干扰主要集中在软件的执行时间(Timing),软件间的死锁(Dead locks,Live locks),内存使用(Memory),信息交换(Information Exchange)。

本文主要介绍一下AUTOSAR规范中对于软件内存分区的保护措施。

01

失效模式

基于组件化设计的嵌入式系统中,通常会同时包含不同ASIL等级的功能安全相关组件(包括非功能安全相关的组件)。

低ASIL等级的软件组件有可能会以错误的方式读写高ASIL等级的软件组件。如果不同的软件组件能够在不同的内存分区中执行,则可以避免产生内存访问相关的影响。

这篇文章中介绍了AUTOSAR OS和RTE的部分功能,这些功能用于支持多个SWC在不同的内存分区中执行,用于避免内存异常访问。

根据ISO 26262 Part 6,内存相关的异常访问分类如下:

  • 内容的破坏(Corruption of Contents)

  • 读写其它组件的分配管理的内存空间

AUTOSAR中提供的内存分区(Memory Partitioning)机制通过限制访问内存及基于内存映射的硬件(如Flash,Register)等,支持内存使用的保护。

内存分区意味着把不同的OS-Application部署于不同的内存区域,这样,特别是代码执行时,一个分区内的代码无法修改另一个分区的内存数据。而且,内存分区还可以保护只读的区域(如代码段)。

AUTOSAR的内存分区和用户/特权机制相关的特性,可以支持软件组件之间的FFI,如SWC内存相关的错误不会扩散到其它的软件组件,同时,处于用户态的SWC也无法修改或重新配置CPU内部的寄存器。

02

内存分区机制介绍

内存分区是AUTOSAR OS和RTE的一个扩展机制,这在AUTOSAR相关的规范中有描述。在这篇文章中,会以在AUTOSAR方法论中提到的Runnable,Tasks,SWC和OS-Application之间上下文关系的形式介绍这个扩展机制。

2.1 应用程序(Application Software)

在AUTOSAR架构中,应用程序位于RTE之上的,并且包含一组内部存在信息交换的软件组件(SWC),这些软件组件实现一系列的原子功能(不可拆分),组合在一起实现应用程序的功能。

AUTOSAR的SWC与硬件无关,所以这些SWC可以集成在任何ECU的硬件上。为了实现ECU内(Inter-)和ECU间(Intra-)通信,AUTOSAR SWC仅通过RTE进行通信(Exclusively)。

AUTOSAR SWC包含一系列的功能实现和变量定义,通过这些提供内部的功能实现。这些功能实现和变量定义对于外部是不可见的,仅能通过公布的RTE接口使用。

AUTOSAR SWC也提供了函数接口,但只能在运行时调用。这些C语言的函数在AUTOSAR中被叫做Runnable。Runnable不能主动执行,而是通过配置的形式,分配到某个位于操作系统中的可执行的实体上,比如,作为一个OS-Task调用的代码段。

Runnable以周期性执行或者以外部触发的形式在OS-Task的上下文中执行。从分配的角度来看,一个SWC可以由多个Runnable构成,一个OS-Task可以触发多个Runnable(同一个SWC内的Runnable可以在不同的OS-Task上执行),一个OS-Application可以管理多个OS-Task,而OS-Application和内存分区(Partition)之间,是一对一的关系。

2.2 OS-Application

AUTOSAR的OS-Application是操作系统对象的集合体,其中包括任务 (Tasks),中断服务程序 (ISRs),调度表 (Schedule Tables),计数器 (Counters)和警报 (Alarms),这些对象构成一个内聚的功能单元。在一个OS-Application内的各个对象可以互相访问。

操作系统内的在同一个OS-Application内的对象,可以分属于不同的SWC。RTE实现了一段内存空间,为这些在同一个OS-Application内的对象相互访问,提供了不受限的通信支持。

OS-Application可以分为2类:

  • 受信任 (Trusted)的OS-Application可以不受那些运行时的监控 (Monitoring)或者保护 (Protection)特性的限制执行。这类应用可以不受限的访问内存和操作系统API。受信任的应用对于执行时间上也不受限制,同时也可以在任何支持的处理器上以特权模式执行。

  • 不受信任 (Non-trusted)的OS-Application不可以在运行时监控及保护机制关闭的时候执行。这类应用在访问内存、操作系统API时都有限制,同时也不允许以特权模式执行。

2.3 通信与代码共享

一个OS-Application可以包含多个SWC及相关的Runnable。Runnable只允许直接访问SWC内部的变量和函数。内部的函数调用及变量访问对于其它SWC来说是不可见的,主要原因是这些函数及变量在SWC相关的头文件中根本就没有声明。

这也说明,AUTOSAR标准并不期望从其它的SWC中直接通过变量访问及直接的执行另一个SWC内部的代码。AUTOSAR中,SWC之间,仅允许基于RTE进行组件间的通信。

2.4 应用 (Application Software)内的内存分区

基于AUTOSAR开发的ECU内部可以包含功能安全相关与功能安全无关的SWC。ISO 26262要求不同的ASIL等级的软件组件之间要避免相互干扰 (Freedom from interference)。

AUTOSAR操作系统通过将OS-Application放置于独立的内存区域内,实现避免内存相关的干扰。这个机制叫做内存分区 (Memory Partitioning)。一个OS-Application不能直接修改另一个OS-Application的内部数据,从而实现相互之间的保护。

应用软件可以包含不同等级的SWC,但这些SWC不能分配到同一个OS-Application内。内存分区无法对位于同一个OS-Application内部的SWC提供保护。

操作系统也只能阻止OS-Application间的非法访问,无法阻止一个有故障的SWC访问位于同一个OS-Application内的其它SWC的数据。

2.5 SWC内部的内存分区

可能会有一些SWC有在内部包含不同ASIL等级的Runnable的需求,这就要求避免相互干扰的机制要在这些SWC之间进行。但在Runnable的设计上来说,是属于SWC的属性,但一个SWC只能分配到一个OS-Application上,所以基于OS-Application的内存分区机制无法保障一个SWC内部的不同等级的Runnable之间相互干扰。

这个特性就需要AUTOSAR操作系统支持Task之间的内存分区,因为Runnable是在某个Task上调用执行的。(目前还不确定是否有AUTOSAR OS支持这个特性)。

2.6 实现内存分区

大量的系统及软件级的TSC (Technical Safety Concept)可以使用内存分区机制来实现。

通常BSW位于受信任 (Trusted)区域,部分SWC可以和BSW一样在受信任区域,以管理 (Supervisor)权限运行。其它的内存区域可以划分为多个内存分区,每个内存分区内可以有一个或多个SWC以用户态运行。

现代的安全相关的微处理器通常都在硬件级别上支持内存分区机制,这主要是通过内存保护单元 (Memory Protection Unit, MPU)来实现的。

在一个典型的MPU实现中,不受信的应用也可以配置为访问多个内存区域。访问的方式可以是读、写、执行及这些的组件。针对MPU的配置要用管理权限。

MPU的保护可以针对内存、Flash及外设进行。另外,使用内存分区的可能场景有如下几个:

SWC位于同一个内存分区中

  • 位于同一个内存分区中的SWC可以相互访问内部数据,进而可以造成内部数据破坏

  • 标准定义SWC不能直接访问外设,因为处理器的架构对于SWC来说不透明。如果强行使用SWC访问外设,这会导致系统严重的安全风险

SWC位于不同的内存分区中

  • 位于不同内存分区的的SWC不可以相互访问内部数据,也就不能破坏其它SWC的数据了

  • 标准定义SWC不能直接访问外设,因为处理器的架构对于SWC来说不透明。如果强行使用SWC访问外设,这会导致系统严重的安全风险

MCAL驱动程序

  • MCAL驱动是一系列函数集合,如读、写及初始化等。这类接口必须在BSW或CDD中执行

  • MCAL驱动可以访问外设空间,根据不同的处理器实现,可能会需要管理权限;

03

检测与响应

内存分区的安全机制通过限制访问内存及支持内存映射的外设的方法来实现保护。一块分区内的代码,无法修改另一个分区的数据。

内存分区也支持只读方式的访问,这个可以用来保护那些基于内存映射访问的硬件。SWC也可以被限定为禁止访问CPU的寄存器,如重新配置等。

在支持MPU或MMU的硬件上使用内存分区机制,操作系统要事先进行合理的配置来检测和阻止不正确的内存访问。

一旦出现了在非受信区域的内存访问或者执行了不合法的CPU指令,这些访问首先会被阻止,然后处理器硬件会产生一个异常 (Exception)。操作系统和RTE会处理这些异常,执行内存分区的关闭 (Shutdown),或重启分区内的所有SWC的动作。

04

限制条件

如果分区内的SWC都设置为相同的ASIL等级,则不需要按照ISO 26262中要求的FFI来设计安全机制。同时,对于OS-Application,可以包含多个SWC,但内存分区的关闭或重启机制是针对整个分区进行,所以即使状态正常的SWC也会受到影响。

内存分区机制不适用于受信任的OS-Application,受信区域中的代码执行不会被保护机制监控。Task级的内存保护不是AUTOSAR的强制标准,所以OS-Application内部的FFI可能。

内存分区会带来性能上的影响。由于增加了内存分区,会导致上下文的切换增多。

BSW的软件不支持内存分区,所以才会有Safe BSW的方案。

来源:希迈智能网联汽车

 精品活动推荐 

更多文章

关于涉嫌仿冒AutoSec会议品牌的律师声明

一文带你了解智能汽车车载网络通信安全架构

网络安全:TARA方法、工具与案例

汽车数据安全合规重点分析

浅析汽车芯片信息安全之安全启动

域集中式架构的汽车车载通信安全方案探究

系统安全架构之车辆网络安全架构

车联网中的隐私保护问题

智能网联汽车网络安全技术研究

AUTOSAR 信息安全框架和关键技术分析

AUTOSAR 信息安全机制有哪些?

信息安全的底层机制

汽车网络安全

Autosar硬件安全模块HSM的使用

首发!小米雷军两会上就汽车数据安全问题建言:关于构建完善汽车数据安全管理体系的建议

谈思实验室 深入专注智能汽车网络安全与数据安全技术,专属汽车网络安全圈的头部学习交流平台和社区。平台定期会通过线上线下等形式进行一手干货内容输出,并依托丰富产业及专家资源,深化上下游供需对接,逐步壮大我国汽车安全文化及产业生态圈。
评论
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 172浏览
  • 村田是目前全球量产硅电容的领先企业,其在2016年收购了法国IPDiA头部硅电容器公司,并于2023年6月宣布投资约100亿日元将硅电容产能提升两倍。以下内容主要来自村田官网信息整理,村田高密度硅电容器采用半导体MOS工艺开发,并使用3D结构来大幅增加电极表面,因此在给定的占位面积内增加了静电容量。村田的硅技术以嵌入非结晶基板的单片结构为基础(单层MIM和多层MIM—MIM是指金属 / 绝缘体/ 金属) 村田硅电容采用先进3D拓扑结构在100um内,使开发的有效静电容量面积相当于80个
    知白 2025-01-07 15:02 96浏览
  • 大模型的赋能是指利用大型机器学习模型(如深度学习模型)来增强或改进各种应用和服务。这种技术在许多领域都显示出了巨大的潜力,包括但不限于以下几个方面: 1. 企业服务:大模型可以用于构建智能客服系统、知识库问答系统等,提升企业的服务质量和运营效率。 2. 教育服务:在教育领域,大模型被应用于个性化学习、智能辅导、作业批改等,帮助教师减轻工作负担,提高教学质量。 3. 工业智能化:大模型有助于解决工业领域的复杂性和不确定性问题,尽管在认知能力方面尚未完全具备专家级的复杂决策能力。 4. 消费
    丙丁先生 2025-01-07 09:25 93浏览
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 138浏览
  • By Toradex 秦海1). 简介嵌入式平台设备基于Yocto Linux 在开发后期量产前期,为了安全以及提高启动速度等考虑,希望将 ARM 处理器平台的 Debug Console 输出关闭,本文就基于 NXP i.MX8MP ARM 处理器平台来演示相关流程。 本文所示例的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台。  2. 准备a). Verdin i.MX8MP ARM核心版配合Dahlia载板并
    hai.qin_651820742 2025-01-07 14:52 62浏览
  • 彼得·德鲁克被誉为“现代管理学之父”,他的管理思想影响了无数企业和管理者。然而,关于他的书籍分类,一种流行的说法令人感到困惑:德鲁克一生写了39本书,其中15本是关于管理的,而其中“专门写工商企业或为企业管理者写的”只有两本——《为成果而管理》和《创新与企业家精神》。这样的表述广为流传,但深入探讨后却发现并不完全准确。让我们一起重新审视这一说法,解析其中的矛盾与根源,进而重新认识德鲁克的管理思想及其著作的真正价值。从《创新与企业家精神》看德鲁克的视角《创新与企业家精神》通常被认为是一本专为企业管
    优思学院 2025-01-06 12:03 135浏览
  • 本文介绍编译Android13 ROOT权限固件的方法,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。关闭selinux修改此文件("+"号为修改内容)device/rockchip/common/BoardConfig.mkBOARD_BOOT_HEADER_VERSION ?= 2BOARD_MKBOOTIMG_ARGS :=BOARD_PREBUILT_DTB
    Industio_触觉智能 2025-01-08 00:06 42浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球无人机锂电池产值达到2457百万美元,2024-2030年期间年复合增长率CAGR为9.6%。 无人机锂电池是无人机动力系统中存储并释放能量的部分。无人机使用的动力电池,大多数是锂聚合物电池,相较其他电池,锂聚合物电池具有较高的能量密度,较长寿命,同时也具有良好的放电特性和安全性。 全球无人机锂电池核心厂商有宁德新能源科技、欣旺达、鹏辉能源、深圳格瑞普和EaglePicher等,前五大厂商占有全球
    GIRtina 2025-01-07 11:02 95浏览
  • 根据Global Info Research项目团队最新调研,预计2030年全球封闭式电机产值达到1425百万美元,2024-2030年期间年复合增长率CAGR为3.4%。 封闭式电机是一种电动机,其外壳设计为密闭结构,通常用于要求较高的防护等级的应用场合。封闭式电机可以有效防止外部灰尘、水分和其他污染物进入内部,从而保护电机的内部组件,延长其使用寿命。 环洋市场咨询机构出版的调研分析报告【全球封闭式电机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球封闭式电机总体规
    GIRtina 2025-01-06 11:10 112浏览
  •     为控制片内设备并且查询其工作状态,MCU内部总是有一组特殊功能寄存器(SFR,Special Function Register)。    使用Eclipse环境调试MCU程序时,可以利用 Peripheral Registers Viewer来查看SFR。这个小工具是怎样知道某个型号的MCU有怎样的寄存器定义呢?它使用一种描述性的文本文件——SVD文件。这个文件存储在下面红色字体的路径下。    例:南京沁恒  &n
    电子知识打边炉 2025-01-04 20:04 101浏览
  • 本文介绍Linux系统更换开机logo方法教程,通用RK3566、RK3568、RK3588、RK3576等开发板,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。制作图片开机logo图片制作注意事项(1)图片必须为bmp格式;(2)图片大小不能大于4MB;(3)BMP位深最大是32,建议设置为8;(4)图片名称为logo.bmp和logo_kernel.bmp;开机
    Industio_触觉智能 2025-01-06 10:43 87浏览
  • PLC组态方式主要有三种,每种都有其独特的特点和适用场景。下面来简单说说: 1. 硬件组态   定义:硬件组态指的是选择适合的PLC型号、I/O模块、通信模块等硬件组件,并按照实际需求进行连接和配置。    灵活性:这种方式允许用户根据项目需求自由搭配硬件组件,具有较高的灵活性。    成本:可能需要额外的硬件购买成本,适用于对系统性能和扩展性有较高要求的场合。 2. 软件组态   定义:软件组态主要是通过PLC
    丙丁先生 2025-01-06 09:23 88浏览
  • 随着市场需求不断的变化,各行各业对CPU的要求越来越高,特别是近几年流行的 AIOT,为了有更好的用户体验,CPU的算力就要求更高了。今天为大家推荐由米尔基于瑞芯微RK3576处理器推出的MYC-LR3576核心板及开发板。关于RK3576处理器国产CPU,是这些年的骄傲,华为手机全国产化,国人一片呼声,再也不用卡脖子了。RK3576处理器,就是一款由国产是厂商瑞芯微,今年第二季推出的全新通用型的高性能SOC芯片,这款CPU到底有多么的高性能,下面看看它的几个特性:8核心6 TOPS超强算力双千
    米尔电子嵌入式 2025-01-03 17:04 55浏览
  • 自动化已成为现代制造业的基石,而驱动隔离器作为关键组件,在提升效率、精度和可靠性方面起到了不可或缺的作用。随着工业技术不断革新,驱动隔离器正助力自动化生产设备适应新兴趋势,并推动行业未来的发展。本文将探讨自动化的核心趋势及驱动隔离器在其中的重要角色。自动化领域的新兴趋势智能工厂的崛起智能工厂已成为自动化生产的新标杆。通过结合物联网(IoT)、人工智能(AI)和机器学习(ML),智能工厂实现了实时监控和动态决策。驱动隔离器在其中至关重要,它确保了传感器、执行器和控制单元之间的信号完整性,同时提供高
    腾恩科技-彭工 2025-01-03 16:28 170浏览
  • 这篇内容主要讨论三个基本问题,硅电容是什么,为什么要使用硅电容,如何正确使用硅电容?1.  硅电容是什么首先我们需要了解电容是什么?物理学上电容的概念指的是给定电位差下自由电荷的储藏量,记为C,单位是F,指的是容纳电荷的能力,C=εS/d=ε0εrS/4πkd(真空)=Q/U。百度百科上电容器的概念指的是两个相互靠近的导体,中间夹一层不导电的绝缘介质。通过观察电容本身的定义公式中可以看到,在各个变量中比较能够改变的就是εr,S和d,也就是介质的介电常数,金属板有效相对面积以及距离。当前
    知白 2025-01-06 12:04 188浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦