APAUTOSAR硬核技术(10):IDSM入侵检测系统详解

原创 汽车电子与软件 2024-12-23 08:04

全文约12,200字,建议收藏阅读


作者:刘向
出品:汽车电子与软件

    


#01

入侵检测系统管理器(IDSM)


1.1 什么是入侵检测系统管理器  


入侵检测系统Intrusion Detection System(IDS)是一种用于检测和处理安全事件的安全控制措施。

入侵检测系统管理器Intrusion Detection System Manager(IdsM)是自适应平台架构中的一个关键功能集群,专门用于处理由安全传感器报告的安全事件(SEv)。它提供了生成、报告和处理安全事件的功能。

  • IdsM 包含一个库:向应用程序提供标准化的 C++ API,用于报告安全事件。让应用程序能够一致地生成和报告安全事件。

  • IdsM 还包括一个运行时进程守护程序(idsm_daemon):支持接收、存储、过滤和传输安全事件。这个守护程序确保安全事件能够被有效地管理和处理。

   
图1 安全事件的检测与响应

1.2 入侵检测系统概述  


IdsM 是入侵检测系统 (IDS) 的一部分,它负责接收、过滤、聚合、限制和传播来自各种传感器的安全事件。IdsM 还提供了一些 API 和服务接口,用于与其他功能集群和诊断服务进行交互。 

1.2.1 术语简介   


缩略语

描述

过滤链Filter Chain

应用于安全事件的一组连续过滤器

入侵检测系统Intrusion Detection System

检测和处理安全事件的安全控制

入侵检测系统管理器

Intrusion Detection System Manager

处理由安全传感器报告的安全事件

入侵检测系统报告器

Intrusion Detection System Reporter

处理从IdsM实例接收的合格安全事件

安全提取

Security Extract

指定由IdsM实例处理的安全事件及其配置参数(如事件、过滤条件、实例等)的格式。

安全事件类型

Security Event Type

通过其安全事件类型ID识别的安全事件类型。安全事件类型的实例称为安全事件,并共享相同的安全事件类型ID

安全事件

Security Events

由BSW或SWC报告给IdsM的安全事件类型的实例

安全事件内存

Security Event Memory

独立于主要诊断事件内存的用户定义诊断事件内存

安全传感器

Security Sensors

向IdsM报告安全事件的BSW或SWC

合格安全事件

Qualified Security Events

通过其过滤链的安全事件被视为合格安全事件

安全事件和事件管理

Security Incident and Event Management

处理确认的安全事件的过程

DID

根据统一诊断服务的数据标识符

DTC

诊断故障代码

FC

功能集群

IDS

入侵检测系统

IdsM

入侵检测系统管理器

IdsR

入侵检测系统报告器

Security Event (SEv)

安全事件

Qualified Security Event (QSEv)

合格的安全事件

Security Event Memory (Sem)

安全事件内存

Security information and Event Management (SIEM)

安全事件和事件管理


术语表包括仅与入侵检测系统管理器相关的缩略语和缩写。 
 

1.2.2 安全传感器(Security Sensor)  


安全传感器(Security Sensor)在入侵检测系统中扮演着至关重要的角色,主要负责以下几个方面:

  • 监控系统活动:安全传感器负责持续监控车载系统中的各种活动和数据流。它们可以检测到潜在的安全威胁或异常行为,例如未授权的访问、数据篡改或异常通信模式。

  • 检测安全事件:当安全传感器检测到潜在的安全威胁或异常行为时,它会生成一个安全事件(SEv)。这些事件可以包括各种类型的安全问题,例如入侵尝试、恶意软件活动或系统故障。

  • 报告安全事件:一旦生成安全事件,安全传感器会将这些事件报告给入侵检测系统管理器 (IdsM)。报告的内容通常包括事件的详细信息,例如事件类型、发生时间、影响范围等。

  • 多样化的传感器类型:安全传感器可以是多种类型的组件,包括 AUTOSAR BSW 模块、CDD(复杂设备驱动程序)和 SWC(软件组件)。这些传感器可以根据不同的需求和应用场景进行配置,以确保全面的安全监控。

  • 实时响应:安全传感器能够实时响应检测到的安全威胁,确保系统能够迅速采取措施来应对潜在的风险。这有助于提高系统的整体安全性和可靠性。   

通过以上功能,安全传感器在入侵检测系统中起到了前线防御的作用,确保系统能够及时检测和响应各种安全威胁。

网络安全传感器是一段能够报告网络安全事件的代码,可能是一个基础的SWC软件模块,也可能是一个应用程序。

网络安全事件被汇报给一个新的AUTOSAR模块,即入侵检测管理器(IdsM)。IdsM对网络安全事件进行过滤,抛弃无关的事件。过滤后剩余的事件被称为认证网络安全事件。
         

 

1.2.3 安全事件内存 (SEM)  


安全事件内存Security Event Memory(SEM) 在入侵检测系统中起着重要的作用,主要负责以下几个方面:

  • 存储安全事件:SEM 是一个专门用于存储安全事件的内存区域。它独立于主诊断事件内存,确保安全事件能够被单独管理和存储。

  • 管理安全事件:SEM 负责对存储的安全事件进行管理,包括检索、更新和删除等操作。它确保安全事件能够被有效地组织和访问。

  • 事件分类和优先级:SEM 可以根据事件的类型、严重性和优先级对安全事件进行分类和排序。这有助于快速识别和处理最重要的安全威胁。   

  • 数据完整性和安全性:SEM 确保存储的安全事件数据的完整性和安全性。它采用各种安全措施来防止数据篡改和未授权访问。

  • 与 IdsM 的交互:SEM 与入侵检测系统管理器 (IdsM) 紧密合作。IdsM 负责将处理后的安全事件存储到 SEM 中,并在需要时从 SEM 中检索事件数据。

  • 支持审计和分析:SEM 提供了一个可靠的数据存储基础,支持后续的审计和分析。安全团队可以使用存储在 SEM 中的数据来进行深入的安全分析和事件追踪。

通过以上功能,安全事件内存 (SEM) 确保了安全事件的有效存储和管理,为入侵检测系统提供了坚实的基础。
         

 

1.2.4 入侵检测系统管理器(IdsM)  


入侵检测系统管理器 (IdsM) 在入侵检测系统中扮演着核心角色,主要负责以下几个方面:

  • 接收安全事件:IdsM 从安全传感器接收安全事件(SEv)。这些事件是由系统中的各种安全传感器检测到的潜在威胁或异常行为。

  • 处理安全事件:IdsM 对接收到的安全事件进行处理,包括存储、过滤和分类。它会根据预定义的规则和策略对事件进行评估,以确定其严重性和优先级。

  • 存储安全事件:IdsM 将处理后的安全事件存储在安全事件内存 (SEM) 中。SEM 是一个专门用于存储和管理安全事件的内存区域,独立于主诊断事件内存。  
 
  • 传输安全事件:IdsM 负责将处理后的安全事件传输到入侵检测系统报告员 (IdsR)。IdsR 会从不同 ECU 的 IdsM 实例接收这些事件,并生成综合报告。

  • 提供API 接口:IdsM FCs提供一个 C++ API 库,供应用程序使用。这个 API 实现在 AUTOSAR 标准命名空间 ara::idsm 中,使应用程序能够报告安全事件并与 IdsM 进行交互。

  • 运行时进程守护程序:IdsM 包括一个运行时进程守护程序,支持接收、存储、过滤和传输安全事件。这个守护程序确保 IdsM 能够在系统运行时持续监控和处理安全事件。

通过以上功能,入侵检测系统管理器 (IdsM) 在整个入侵检测系统中起到了关键的中枢作用,确保安全事件能够被及时检测、处理和管理,从而提高系统的整体安全性。
         

 

1.2.5 Intrusion Detection System Reporter (IdsR)  


入侵检测系统报告员(IdsR) 在入侵检测系统中扮演着关键角色,主要负责以下几个方面:

  • 接收处理过的安全事件:IdsR 从不同的 ECU(电子控制单元)中的 IdsM 实例接收已经处理过的安全事件。这些事件已经经过初步的筛选和分类,包含了重要的安全信息。

  • 汇总安全事件:IdsR 将来自多个 IdsM 实例的安全事件进行汇总和整合。这一步骤有助于形成一个全面的安全事件视图,便于进一步分析和决策。

  • 生成报告:IdsR 根据汇总的安全事件生成综合报告。这些报告可以包含事件的详细信息、发生频率、严重程度等,有助于安全团队了解系统的安全状况。 
 
  • 传输和存储:IdsR 负责将生成的报告传输到指定的存储位置或安全管理系统中,以便后续的审查和分析。

  • 支持决策:通过提供详细的安全事件报告,IdsR 帮助安全团队做出更明智的决策,采取适当的措施来应对潜在的安全威胁。

总的来说,IdsR 在入侵检测系统中起到了桥梁作用,将分散的安全事件信息汇总并转化为有价值的报告,为系统的安全管理提供了重要支持。
         

 

1.3 IdsM架构图  


安全事件可以由其他功能集群和自适应应用程序中的安全传感器报告,并且可以附带上下文数据,如事件类型和可疑数据,这些数据对于后端的安全取证非常有用。

IdsM不仅收集这些事件,还根据可配置的规则对其进行资格认证。它通过过滤和转换,将报告的SEv转化为合格的车载安全事件(QSEv)。这些QSEv可以被IdsM存储或转发。根据整体安全策略,QSEv可以在ECU上本地持久化,或者传输到入侵检测系统报告模块(IdsR),后者可能将QSEv数据传递到后端的安全操作中心(SOC)。

IdsM的架构如图2所示:  
 

图2 IdsM Architecture

AA进程中的安全传感器检测潜在的安全威胁或异常行为,并将其通过EventRepoter接口上报给IdsM。

IdsM守护进程在ECU中收集、存储和处理安全事件,并将QSEv发送到 IdsR。

AA和Diag功能集群FCs都可以向 IdsM 报告安全事件。

IdsM守护进程收集的安全事件可以选择性地存储在ECU内的 SEM 中。

车辆中的所有IdsM 实例使用 IDS 传输协议将安全事件SEv 报告到单个 IdsR 端点 ECU。

自适应应用程序简称AA。

1.4 什么是安全事件  


安全事件Security Event,简称SEv)是指对后续取证分析至关重要的安全相关事件。通过分析来自多辆车辆的安全事件记录,可以有效识别潜在的攻击路径并提升整体网络安全性。每个安全事件都有一个唯一的标识符(ID),用于明确分类和识别不同类型的网络安全事件。网络安全事件的范畴广泛,涉及多个方面,尤其在汽车网络安全状态的分析中具有重要价值。   

1.4.1 安全事件的定义  


安全事件的定义包括事件类型、名称、描述等基本要素,同时可以附加上下文数据,以提供事件发生时的额外信息。


图3 安全事件和被认证(处理过的)安全事件

经过入侵检测系统管理器(IdsM)认证的网络安全事件具有以下特点:

  • Event Type ID:唯一标识事件类型的ID,用于标识网络安全事件的名称和信息。

  • Description:安全事件的信息。

  • IdsM Instance ID:标明哪个ECU汇报了网络安全事件。

  • 认证账号:描述该网络安全事件在被IdsM认证之前发生的频次。

此外,每个认证网络安全事件还可以包含以下可选内容:

  • 时间戳:记录事件发生的确切时间,以便追踪和分析事件的时间顺序。

  • 认证时的上下文数据:Context Data与事件相关的附加信息,例如网络流量数据、用户操作记录等,帮助更全面地理解事件背景。   

  • E2E签名:确保事件数据的完整性和真实性。

这些属性共同构成了一个完整的安全事件记录,为安全分析和响应提供了重要的信息基础。
         

 

1.5 IdsM的工作流程  



图4 IDS Overview

1.5.1 IdsM的工作流程 

 

从安全传感器 (Security Sensor) 到入侵检测系统管理器 (IdsM),再到安全事件内存 (SEM),最后到入侵检测系统报告员 (IdsR) 的详细过程:

1.安全传感器 (Security Sensor):

  • 检测安全事件:安全传感器可以是 AUTOSAR BSW 模块、CDD 或 SWC。它们负责监控系统中的各种活动,并检测潜在的安全威胁或异常行为。  
 
  • 报告安全事件:一旦检测到安全事件,安全传感器会生成一个安全事件(SEv)并将其报告给入侵检测系统管理器 (IdsM)。IdsM本身也可以用作安全事件传感器,报告内部安全事件。

2.入侵检测系统管理器 (IdsM):

  • 接收安全事件:IdsM 接收来自安全传感器的安全事件(SEv)。

  • 处理安全事件:IdsM 对接收到的安全事件进行处理,包括存储、过滤和分类。它还可以根据预定义的规则和策略对事件进行评估,以确定其严重性和优先级。

  • 传输安全事件:处理后的安全事件会被传输到安全事件内存 (SEM) 进行进一步存储和管理。

3.安全事件内存 (SEM):

  • 存储安全事件:SEM 是一个独立于主诊断事件内存的用户定义的诊断事件内存。它专门用于存储和管理安全事件。

  • 管理安全事件:SEM 负责对存储的安全事件进行管理,包括检索、更新和删除等操作。

4.入侵检测系统报告员 (IdsR):

  • 接收处理过的安全事件:IdsR 从不同 ECU 的 IdsM 实例接收处理过的安全事件。

  • 汇总和报告:IdsR 汇总来自多个 IdsM 实例的安全事件,并生成综合报告。这些报告可以用于进一步的分析和决策,以提高系统的安全性。

  • 注:通过以上过程,入侵检测系统能够有效地检测、处理和管理安全事件,从而提高车载系统的整体安全性。   

注意:IDSR和SOC并不是AUTOSAR标准化工作的一部分。IdsR 的实现是 OEM基于项目需求特定的,不在 AUTOSAR 的范围内。SEM将在未来的版本中与经典平台的IDSM一起发布。

1.5.2 IDSM如何处理安全事件? 


IdsM(入侵检测系统管理器)处理安全事件的方式涉及多个步骤,包括事件的接收、缓冲、过滤、合格认定以及传播。


图5 安全事件的处理流程

从安全传感器捕捉到事件开始,到事件被过滤、存储、报告,整个流程都需要精确无误。以下是优化后的安全事件处理流程描述:

  1. 安全事件捕获:安全传感器(如车辆的软件组件或硬件设备)检测到安全事件(SEv),并将其发送到入侵检测系统管理器(IdsM)。   


  2. 事件缓冲:IdsM接收到事件后,首先将其存储在缓冲区中,以便按照预设的策略进行后续处理。


  3. 事件过滤:IdsM应用一系列过滤器(如阻止器、采样器、聚合器和速率限制器)对事件进行筛选,确保只有重要且有效的事件被保留下来,即合格的安全事件(QSEv)。


  4. 事件存储:合格的安全事件被传输到安全事件内存(SEM)进行存储,以便后续检索和分析。


  5. 事件报告:IdsR从SEM中检索存储的事件,并生成相应的报告,以供安全团队进行进一步的分析和响应。


  6. 诊断与访问控制:IdsM提供诊断服务,允许安全团队访问持久化的事件,并可以重新配置报告模式。同时,IdsM还实施访问控制,确保只有授权的进程可以生成、修改或访问事件数据。

安全传感器检测到事件后,将其发送到IdsM。IdsM首先将事件存储在缓冲区中,然后应用过滤器链进行筛选,得到合格的安全事件。这些合格的事件被存储到SEM中,并由IdsR生成报告。整个流程中,IdsM还负责提供诊断服务和访问控制功能。



#02

IDSM的配置与集成


2.1 配置安全事件的流程  


2.1.1 配置安全提取(SecXT)  


什么是安全提取(Security Extract)    

AUTOSAR定义了一种新的文件格式用于描述IDS属性,即Security Extract(SECXT)它是一个配置文件,用于指定由入侵检测系统管理器(IdsM)实例处理的安全事件(SEv)及其相关配置参数。配置 SecXT 的主要原因如下:

  1. 定义安全事件:SecXT 允许用户定义哪些安全事件需要被监控和处理。这有助于确保系统能够识别和响应特定的安全威胁。


  2. 配置参数:SecXT 包含每个安全事件的详细配置参数,如事件的优先级、处理方式等。这些参数帮助 IdsM 更有效地管理和处理安全事件。


  3. 系统集成:通过配置 SecXT,可以确保安全事件的报告和处理与系统的其他部分(如安全传感器、自适应应用程序等)无缝集成。这有助于提高系统的整体安全性和响应能力。

配置 SecXT 是确保入侵检测系统管理器(IdsM)能够有效监控、报告和处理安全事件的关键步骤。SecXT负责指定IdsM实例需要处理的安全事件(SEv)及其相关配置参数。

此外,IdsM的正常运行还需要依赖其他配置信息,如组件、端口以及进程或SEv的设置。

特别地,负责报告SecEvent的应用程序必须是一个具备适当软件组件类型的自适应应用程序,并且需要在IdsM守护程序之后启动,以确保信息的准确传递和处理。

2.1.2 配置安全事件的报告模式  


IdsM 利用 SecXT 模型的参数 SecurityEventContextProps.defaultReportingMode 来为每一个安全事件(SEv)配置默认的报告方式。这一关键参数定义了系统在接收、处理和报告安全事件时的标准操作流程,旨在确保所有事件都能按照既定的策略得到妥善管理和及时响应。 
 
IdsM 提供了多样化的报告模式选项:

报告模式级别

相关行为

OFF

IdsM应丢弃SEv而不进行进一步处理。

BRIEF

如果SEv已报告包括上下文数据,IdsM应丢弃上下文数据而不进行进一步处理、传输和存储。

DETAILED

如果SEv已报告包括上下文数据,IdsM应保留上下文数据以便潜在的传输或持久化QSEv。

BRIEF_BYPASSING_FILTERS

IdsM应报告或持久化SEv而不包括上下文数据,并且不进一步应用任何过滤链。

DETAILED_BYPASSING_FILTERS

IdsM应报告或持久化SEv并包括上下文数据(如果传感器提供)而不进一步应用任何过滤链。

   

 

2.1.3 创建IdsM Module Instantiation  


在配置SecXT之前,首先需要为IdsM模块创建一个实例化对象。这个实例化对象将为机器提供IdsM所需的配置信息。

配置过程包括设置平台模块以太网端点,并为其配置IPv4地址和TCP端口。这些设置是QSev(可能是某种安全事件或数据)发送至IdsM模块所必需的。

完成IdsM模块实例化后,需要将其添加到软件集群(SoftwareCluster)中。在ARXML(可能是某种配置文件或数据模型)中,软件集群是一个关键的部署实体。

根据AUTOSAR的要求,每个应用程序或功能集群都必须被添加到软件集群中,否则它们将被视为未部署的实体,无法正常工作。   

2.1.4 配置安全事件的过滤链  


在创建IdsM模块实例化之后,可以进一步配置IdsM实例。这一步骤包括设置一个IdsmProperties元素,该元素代表了一组SEv过滤器。

通过配置工具,可以添加不同类型的过滤器,如速率限制过滤器和流量限制过滤器。这些过滤器的设置将帮助IdsM更有效地管理和处理接收到的安全事件,确保系统的安全性和稳定性。

  • Idsm Filter chains这是一系列过滤器,用于确定哪些安全事件应该被报告和处理。过滤链可以包括状态过滤器、采样过滤器、聚合过滤器和阈值过滤器等,它们共同工作以确保只有符合特定标准的事件才会被传递到IdsM实例进行进一步处理。


  • IdsmRateLimitation:这是一个限制机制,用于控制IdsM实例报告安全事件的频率。这有助于防止系统过载,并确保IdsM能够有效地处理事件。


  • IdsmTrafficLimitation:用于控制通过网络传输的安全事件的数据量。这有助于维护网络性能并防止拥塞。


IdsM使用过滤链来处理安全事件,AUTOSAR规范中过滤链包括以下过滤器:


  • 机器状态过滤器:根据机器状态丢弃安全事件。

  • 采样过滤器:每n次转发一个安全事件。

  • 聚合过滤器:在配置的时间间隔内聚合安全事件。

  • 阈值过滤器:根据阈值丢弃或转发安全事件。
         

 

2.1.5 创建IdsM Instance    


IdsM Instance,即入侵检测系统管理器(IdsM)的一个实例化对象。它主要负责保存并管理可报告给ECU(电子控制单元)/机器的安全事件(SEv)过滤器的配置。通过专门的配置工具,用户可以轻松创建IdsM实例,并在IDSM配置页面中进一步细化设置。

每个IdsM实例都具备处理特定安全事件的能力,且可根据实际需求配置为处理来自车辆不同部位的事件。在创建IdsM实例后,用户可在IDSM配置页面添加新的子元素,如IdsM速率限制引用条件和IdsM流量限制引用条件,以便更精确地配置IdsM过滤器引用。

2.1.6 创建组件与端口以报告安全事件(Component and Port)  


为了构建一个自适应应用程序,该应用程序需能够向IdsM(入侵检测系统管理器)报告安全事件,我们通过SecurityEventReportInterface接口来实现这一功能。以下是具体步骤:

1. 创建应用程序软件组件类型:

  • 首先,我们需要创建一个名为AraIdsMSecEvent_AdaptiveApplicationSwComponentType的应用程序软件组件类型。

2. 添加RPort(接收端口):

  • 在此组件类型中,我们需要添加一个RPort(接收端口),并为其分配SecurityEventReportInterface作为所需的接口。这个RPort将用于接收和报告安全事件。

3. 分配可执行文件:

  • 使用执行管理编辑器,将软件组件原型分配给对应的可执行文件,确保应用程序能够正确运行。   
         

 

2.1.7 配置安全事件与映射  


在IdsM成功配置后,用户可以定义并管理系统中的安全事件,具体步骤如下:

1. 建立安全事件过滤链:

  • 创建一个安全事件过滤链,该链包括安全事件聚合过滤器(用于汇总多个事件)、每N次出现的事件过滤器(控制事件触发的频率)和安全事件阈值过滤器(设置事件触发的条件)。

2. 创建软件组件:

  • 为后续步骤创建必要的软件组件。

3. 指派安全事件到进程:

  • 将定义的安全事件指派到相应的进程中,确保事件的管理与进程相关联。

4. 建立端口映射:

  • 将安全事件映射到报告端口原型,以便在事件发生时进行报告。

5. 设置安全上下文事件映射:

  • 在xAAP编辑器中,为基本软件(BSW)模块设置安全上下文事件映射,并创建新的AR(抽象表示)元素。

6. 配置IdsM选项卡:

  • 在IdsM配置选项卡中,创建上下文映射,并添加以下条件:

  • 安全事件过滤链引用条件

  • IdsM实例引用条件    

  • 安全事件定义引用条件(作为SecurityEventContextProps的一部分)

7. 选择并配置元素:

  • 在配置这些元素时,选择之前生成的相应元素作为安全事件过滤链引用条件、IdsM实例引用条件和安全事件定义引用条件。同时,根据需要对SecurityEventContextProps进行调整。

8. 添加可报告的安全事件:

  • 将可报告的安全事件添加到IdsM模块实例中,以便进行有效管理。

9. 设置RPort In组合实例引用:

  • 在定义映射中,添加RPort In组合实例引用,并使用先前生成的元素设置可配置参数,确保映射的准确性。

10. 分配安全事件到进程:

  • 最后,确保将安全事件准确地分配到定义的进程中,形成从事件定义到事件报告和管理的完整链条。

通过上述步骤,用户可以系统地定义、配置和管理安全事件,确保系统的安全性和稳定性。
         

 

2.1.8 IdsM 的内部安全事件报告机制  


IdsM(入侵检测与安全管理模块)内置了一套内部安全事件报告机制。该机制允许集成商在IdsM的配置界面中,根据实际需求和安全策略,自定义配置各类安全事件的触发条件和报告方式。  
 
这些内部安全事件严格遵循AUTOSAR标准,涵盖了广泛的安全告警和异常检测场景。具体如下:

名称

描述

ID

IDSM_INTERNAL_EVENT_NO_EVENT_BUFFER_AVAILABLE

因为没有更多的事件缓冲区可用来处理事件,所以无法处理 安全事件SEv

46

IDSM_INTERNAL_EVENT_NO_ CONTEXT_DATA_BUFFER_AVAILABLE

因为没有更多的上下文数据缓冲区可用来存储传入事件的上下文数据,所以无法存储

47

IDSM_INTERNAL_EVENT_TRAFFIC_LIMITATION_EXCEEDED

当前流量超过了配置的流量限制

48

IDSM_INTERNAL_EVENT_ COMMUNICATION_ERROR

发送 QSEv 时发生错误

49

         

 

2.1.9 注册时间戳回调机制  


在自适应AUTOSAR标准中,SEv(安全事件)可以附带时间戳,以精确记录事件发生的时间点。为了获取这些时间戳,IdsM(入侵检测与安全管理模块)提供了一种注册回调的方法,即通过API RegisterTimestampProvider 来实现。

此API应在IdsM守护进程(idsm_daemon)初始化完成后,但在向rb-exmd报告进程状态为kRunning之前调用。值得注意的是,如果用户尝试多次注册回调,系统将仅采用首次注册的回调。

IdsM能够以多种方式提供时间戳,包括:

  • 通过事件报告接口:直接在报告安全事件时附加时间戳。

  • 通过应用软件:由应用软件在生成事件时提供时间戳。  
 
  • 由堆栈提供:由IdsM内部的时间管理堆栈自动生成时间戳。

然而,在以下情况下,SEv将不会被分配时间戳:

  • 在用户回调注册之前请求时间戳。

  • 用户回调被注册为nullptr(空指针)。

  • 用户回调处理未在规定的100毫秒内完成,此时TimestampProvider功能将被禁用。

2.1.10 安全事件生成流程  


SWCL(软件组件)和FC(功能集群)可以利用IdsM API来创建新的安全事件。所有可由SWCL生成的事件类型都需在配置清单中预先定义,并与SWCL的PortPrototype相关联。

生成新事件的流程包含以下三个关键步骤:

  • 构造InstanceSpecifier对象:利用引用事件类型的PortPrototype的shortName路径。

  • 创建EventReporter对象:通过传递InstanceSpecifier来构造。

  • 报告事件:在EventReporter对象上调用ReportEvent函数。

在调用ReportEvent函数时,应用程序可以选择性地附加时间戳、计数器值和/或上下文数据。

2.1.11 使用EventReporter报告安全事件   


当自适应应用程序(即安全传感器)检测到安全事件时,应通过IdsM的ReportEvent API进行报告。为了生成并报告SEv(安全事件),需要构造一个EventReporter对象,并在构造时传入实现安全事件报告接口的端口原型的InstanceSpecifier作为参数。

以下是一个简化的代码示例,展示了如何使用EventReporter API来报告安全事件:


此代码片段展示了如何创建一个EventReporter对象,并利用其ReportEvent方法来报告检测到的安全事件。

2.1.12 API 介绍与生命周期管理  


API 介绍

EventReporter 类的 ReportEvent 方法

EventReporter 类提供了多种 ReportEvent 方法,用于报告安全事件。这些方法允许安全传感器根据检测到的安全事件的不同属性进行报告。   

1.基本事件报告

  • 方法签名:void EventReporter::ReportEvent(const CountType countType = 1U)

  • 描述:该方法用于报告安全事件,countType 参数是可选的,表示安全传感器记录该事件的次数。如果不提供 countType,则默认为 1。

2.带时间戳的事件报告

  • 方法签名:void EventReporter::ReportEvent(const TimestampType timestamp, const CountType countType = 1U)

  • 描述:该方法不仅报告安全事件,还附带一个时间戳。timestamp 参数允许使用安全传感器记录的事件发生时间进行报告,countType 参数同样是可选的,表示记录次数。

3.带上下文数据的事件报告

  • 方法签名:void EventReporter::ReportEvent(const ContextDataType &contextData, const CountType countType = 1U)

  • 描述:该方法报告安全事件时,还包含上下文数据。contextData 参数允许使用安全传感器提供的与事件相关的额外信息进行报告,countType 参数表示记录次数,也是可选的。

生命周期管理   

IdsM(入侵检测与安全管理模块)的生命周期管理涉及初始化和去初始化两个关键阶段,确保IdsM在系统运行期间的正确启动和关闭。

  • 初始化

  • 方法:通过调用 ara::core::Initialize 函数来初始化IdsM。

  • 描述:在IdsM开始运行之前,必须执行初始化步骤。这包括加载配置、分配资源以及准备IdsM所需的所有组件。

  • 去初始化

  • 方法:通过调用 ara::core::Deinitialize 函数来去初始化IdsM。

  • 描述:在系统关闭或IdsM不再需要时,应进行去初始化步骤。这包括释放资源、保存状态(如果需要)以及确保IdsM的组件被正确关闭。

通过严格管理IdsM的生命周期,可以确保其在系统中的稳定运行,同时避免资源泄漏和潜在的安全问题。



#03

跨功能集群依赖


入侵检测系统管理器(IdsM)是一个高度集成的组件,它依赖于多种外部库和功能集群来执行其任务。为了报告系统的当前执行状态,IdsM利用执行客户端API;而为了获取机器的实时状态信息,它则依赖于状态管理器。此外,IdsM还集成了加密功能,使用加密API对经过筛选的合格安全事件(QSEv)进行数字签名,以确保数据的完整性和真实性。为了长期保存这些重要的安全事件,IdsM采用持久性文件存储API,将QSEv以文件的形式存储在磁盘上。  
 

3.1 提供的接口Provided Interfaces  

         

 

IdsM(入侵检测系统管理器)为AUTOSAR自适应平台内的其他功能集群提供了一系列接口,以便它们能够报告和访问安全事件。图5.1直观地展示了这些接口:


表5.1则详细列出了这些接口及其对应的功能集群和目的:

接口

功能集群

目的

EventReporter

通信管理

通信管理可以使用此接口报告安全事件

诊断管理

诊断管理使用此接口报告标准化的安全事件

防火墙

防火墙使用此接口报告标准化的安全事件


此外,IdsM还支持通过诊断访问接口读取持久化的安全事件,并允许重新配置报告模式,以满足不同的安全需求。

3.2 Required Interfaces  


为了正常运作,IdsM需要从AUTOSAR自适应平台内的其他功能集群获取一些关键接口。图5.2展示了这些所需的接口    


表5.2则提供了更详细的列表和描述:

功能集群

接口

目的

加密

CryptoStack

IdsM利用此接口对安全事件进行签名,以确保事件的完整性和真实性

日志和跟踪

Logger

IdsM通过此接口记录标准化的消息,包括安全事件的详细信息、系统状态和错误日志等

时间同步

SynchronizedTimeBaseConsumer

IdsM使用此接口来确定安全事件的时间戳,从而确保事件的时间准确性


表5.2提供了所需接口的完整列表

IdsM还支持生成日志消息和违规消息,并记录生产过程中遇到的错误。为了存储QSEv(处理过的安全事件),IdsM使用了持久性接口QsevFileStorageInterface,并配置了名为“PRPortQsevStorage”的所需端口。通过这些接口,IdsM能够与AUTOSAR自适应平台内的其他功能集群紧密协作。   

3.3 状态管理与IdsM的集成  


IdsM(入侵检测系统管理器)不仅依赖于其他功能集群的接口,还需要与状态管理器(STM)进行交互,以获取当前的系统或机器状态。这种集成对于IdsM来说至关重要,因为它可以根据不同的状态来触发相应的安全响应。

IdsM与STM的通信

IdsM通过STM提供的TriggerOut_StateMachine接口来获取机器状态。这种通信是通过显式IPC(进程间通信)机制实现的,它要求IdsM和STM之间建立稳定的连接。为了确保这种连接的建立,需要进行适当的ARXML配置。

ARXML配置

在配置IdsM与STM之间的通信时,需要注意以下几点:

  • IdsM守护进程的可执行文件:应配置为idsm。

  • RootSwComponentPrototype:应设置为idsmRootSwComponent,这是IdsM在软件组件层次结构中的根节点。

  • SwComponentPrototype:应配置为SwComponentPrototype_TOSM,这表示IdsM与STM之间的通信组件。   

  • PortPrototype:应设置为RPIDSMStateMachineState,这是IdsM用于接收STM状态的端口。

需要注意的是,SwComponentPrototypeTOSM是SwComposition(软件组合)的一部分,它定义了IdsM与STM通信所需的软件组件和接口。

此外,所需的接口定义应存在于SDK文件夹中的stm-aap-state-manager-provided-port-triggeroutstatemachine.arxml文件中。这个文件包含了STM提供的TriggerOut_StateMachine接口的定义。

IdsM守护进程的配置

在配置IdsM守护进程时,可以参考AraIDSMExample中的示例,该示例位于machineconfig_arxml/IdsManager文件夹中。这个示例提供了IdsM守护进程配置的详细指导。

连接STM服务

在配置IdsM守护进程后,需要执行以下步骤来连接STM服务:

  1. 创建IPC客户端:IdsM需要创建一个新的IPC客户端,以便与STM进行通信。


  2. 映射端口:在IPC客户端创建后,需要将RPIDSMStateMachineState端口映射到STM提供的相应端口上,以确保IdsM能够正确接收STM的状态信息。   

通过这些步骤,IdsM能够与STM建立稳定的通信连接,并根据STM提供的状态信息来触发相应的安全响应。
         

 



#04

小  结


4.1 IDSM(IdsM)配置与集成小结  


IDSM,即入侵检测系统管理器(IdsM),在AUTOSAR架构中扮演着至关重要的角色,它负责监控、报告和处理安全事件。以下是IDSM配置与集成的详细小结:

一、配置安全事件的流程

1. 配置安全提取(SecXT)

  • 定义需要被监控和处理的安全事件。

  • 配置每个安全事件的详细参数,如优先级和处理方式。

  • 确保安全事件的报告和处理与系统的其他部分无缝集成。

2. 配置安全事件的报告模式

  • 利用SecXT模型的参数为每个安全事件配置默认的报告方式。

  • 报告模式包括OFF、BRIEF、DETAILED等,以满足不同的安全需求。

3. 创建IdsM Module Instantiation

  • 为IdsM模块创建一个实例化对象,提供必要的配置信息。

  • 设置平台模块以太网端点,配置IPv4地址和TCP端口。  
 
  • 将IdsM模块实例化对象添加到软件集群中。

4. 配置安全事件的过滤链

  • 设置IdsmProperties元素,代表一组SEv过滤器。

  • 添加不同类型的过滤器,如速率限制过滤器和流量限制过滤器。

  • 过滤链包括状态过滤器、采样过滤器、聚合过滤器和阈值过滤器等。

5. 创建IdsM Instance

  • 创建IdsM实例,保存并管理可报告给ECU/机器的安全事件过滤器的配置。

  • 在IDSM配置页面添加IdsM速率限制和流量限制引用条件。

6. 创建组件与端口以报告安全事件

  • 创建应用程序软件组件类型,并添加RPort用于接收和报告安全事件。

  • 分配可执行文件,确保应用程序能够正确运行。

7. 配置安全事件与映射

  • 建立安全事件过滤链,包括聚合过滤器、事件过滤器和阈值过滤器等。

  • 创建软件组件,指派安全事件到进程。

  • 建立端口映射,设置安全上下文事件映射。

  • 在IdsM配置选项卡中创建上下文映射,并添加相关条件。

  • 添加可报告的安全事件,设置RPort In组合实例引用。

  • 分配安全事件到进程,形成完整的事件定义到事件报告和管理的链条。

二、IdsM的内部机制与API

1. IdsM的内部安全事件报告机制    
 
  • 允许集成商自定义配置各类安全事件的触发条件和报告方式。

  • 涵盖广泛的安全告警和异常检测场景,如事件缓冲区不可用、流量限制超出等。

2. 注册时间戳回调机制

  • 提供注册回调的方法,通过API RegisterTimestampProvider来实现。

  • SEv可以附带时间戳,精确记录事件发生的时间点。

  • 时间戳可以由事件报告接口、应用软件或IdsM内部的时间管理堆栈提供。

3. 安全事件生成流程

  • SWCL和FC可以利用IdsM API创建新的安全事件。

  • 构造InstanceSpecifier对象,创建EventReporter对象,并调用ReportEvent函数报告事件。

4. 使用EventReporter报告安全事件

  • 当自适应应用程序检测到安全事件时,通过IdsM的ReportEvent API进行报告。

  • 构造EventReporter对象,并调用其ReportEvent方法来报告检测到的安全事件。

5. API介绍与生命周期管理

  • EventReporter类提供了多种ReportEvent方法,用于报告安全事件。   

  • 生命周期管理涉及IdsM的初始化和去初始化阶段,确保IdsM在系统运行期间的正确启动和关闭。

IDSM(IdsM)的配置与集成涉及多个关键步骤和组件,包括安全提取的配置、报告模式的设置、IdsM模块实例化和过滤链的配置等。通过严格管理IdsM的生命周期和正确使用其API,可以确保系统在面临安全威胁时能够及时响应并采取有效的措施。

4.2 IDS的构成组件  


依据AUTOSAR标准,入侵检测系统(IDS)的核心组成部分包括以下几个关键元素:

  1. 安全传感器(Security Sensor):这一组件主要由AUTOSAR基础软件(BSW)模块、复杂驱动描述(CDD)以及软件组件(SWC)构成。它们负责监测系统的安全状态,并在检测到潜在威胁时,向入侵检测系统管理器(IdsM)报告安全事件(SEv)。


  2. 入侵检测系统管理器(IdsM):IdsM是IDS的中枢,负责接收并处理来自安全传感器的安全事件。它通过分析这些事件来评估系统的安全状况。


  3. 安全事件存储器(SEM):这是一个独立的诊断事件存储器,用于存储用户定义的安全事件。它与主要的诊断事件存储器相分离,确保安全事件的记录与常规诊断事件相区分。


  4. 入侵检测系统报告器(IdsR):IdsR负责从各个ECU的IdsM实例中收集并处理已处理的安全事件。它能够将这些信息整合起来,为系统管理员或安全团队提供全面的安全状况概览。   

4.3 IdsM的核心功能  


IdsM在IDS中扮演着至关重要的角色,其主要功能包括:

  1. 事件生成:通过IdsM的API,软件组件(SWCL)和功能组件(FC)能够生成新的安全事件,以便对潜在威胁进行记录和分析。


  2. 事件报告:IdsM支持多种报告模式和过滤链,以便对安全事件进行灵活处理。这有助于确保只有最相关和最关键的安全信息被传递给相关方。


  3. 上下文数据修改:IdsM允许对安全事件的上下文数据进行修改,以提供更准确和完整的威胁分析。


  4. 时间戳添加:为每个安全事件添加时间戳,有助于追踪威胁发生的时间线,为事件分析提供关键的时间信息。


  5. 访问控制:IdsM实施严格的访问控制策略,确保只有授权的进程能够生成、修改和报告安全事件。


  6. 诊断访问:IdsM支持读取持久化存储的安全事件,并允许重新配置报告模式,以满足不同的安全需求和诊断要求。

4.4 IdsM的访问控制策略  


IdsM的访问控制功能是其安全性的重要组成部分,它能够对以下操作进行精细化的权限管理:

  1. 事件生成:限制哪些进程具有生成安全事件的权限,以防止未经授权的实体创建虚假的安全事件。


  2. 上下文数据修改:对能够修改安全事件上下文数据的进程进行限制,确保数据的准确性和完整性。   


  3. 时间戳提供:控制哪些进程能够为安全事件提供时间戳,以防止时间戳被恶意篡改。


  4. 报告模式修改:限制哪些进程能够修改和查询报告模式,以确保报告策略的一致性和安全性。


  5. 合格事件接收:对能够接收并处理合格安全事件的进程进行限制,确保这些信息只能被授权实体访问和利用。
         

 

         

 

参考文献:

[1] AUTOSAR_AP_SWS_IntrusionDetectionSystemManager.pdf
[2] ETAS RTA-VRTE UserGuide.pdf
[3] AUTOSAR_AP_EXP_SWArchitecture.pdf
[4] AUTOSAR_AP_EXP_PlatformDesign.pdf
[5] AUTOSAR_AP_EXP_InterfacesGuidelines.pdf
[6] https://blog.csdn.net/usstmiracle/article/details/136185873  


-end-


本专栏是由汽车电子与软件打造的中立性技术科普专栏,将系统地阐述软件定义汽车下的关键挑战和工程实践。欢迎订阅本专栏!




汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论
  •                                                窗        外       年底将近,空气变得格外寒冷,估计这会儿北方已经是千里
    广州铁金刚 2024-12-23 11:49 18浏览
  • //```c #include "..\..\comm\AI8051U.h"  // 包含头文件,定义了硬件寄存器和常量 #include "stdio.h"              // 标准输入输出库 #include "intrins.h"         &n
    丙丁先生 2024-12-20 10:18 89浏览
  •         不卖关子先说感受,真本书真是相见恨晚啊。字面意思,见到太晚了,我刚毕业或者刚做电子行业就应该接触到这本书的。我自己跌跌撞撞那么多年走了多少弯路,掉过多少坑,都是血泪史啊,要是提前能看到这本书很多弯路很多坑都是可以避免的,可惜这本书是今年出的,羡慕现在的年轻人能有这么丰富完善的资料可以学习,想当年我纯靠百度和论坛搜索、求助啊,连个正经师傅都没有,从软件安装到一步一布操作纯靠自己瞎摸索,然后就是搜索各种教程视频,说出来都是泪啊。  &
    DrouSherry 2024-12-19 20:00 117浏览
  • 随着工业自动化和智能化的发展,电机控制系统正向更高精度、更快响应和更高稳定性的方向发展。高速光耦作为一种电气隔离与信号传输的核心器件,在现代电机控制中扮演着至关重要的角色。本文将详细介绍高速光耦在电机控制中的应用优势及其在实际工控系统中的重要性。高速光耦的基本原理及优势高速光耦是一种光电耦合器件,通过光信号传递电信号,实现输入输出端的电气隔离。这种隔离可以有效保护电路免受高压、电流浪涌等干扰。相比传统的光耦,高速光耦具备更快的响应速度,通常可以达到几百纳秒到几微秒级别的传输延迟。电气隔离:高速光
    晶台光耦 2024-12-20 10:18 160浏览
  • 汽车驾驶员监控系统又称DMS,是一种集中在车辆中的技术,用于实时跟踪和评估驾驶员状态及驾驶行为。随着汽车产业智能化转型,整合AI技术的DMS逐渐成为主流,AI模型通过大量数据进行持续训练,使得驾驶监控更加高效和精准。 驾驶员监测系统主要通过传感器、摄像头收集驾驶员的面部图像,定位头部姿势、人脸特征及行为特征,并通过各种异常驾驶行为检测模型运算来识别驾驶员的当前状态。如果出现任何异常驾驶行为(如疲劳,分心,抽烟,接打电话,无安全带等),将发出声音及视觉警报。此外,驾驶员的行为数据会被记录
    启扬ARM嵌入式 2024-12-20 09:14 102浏览
  • Supernode与艾迈斯欧司朗携手,通过Belago红外LED实现精准扫地机器人避障;得益于Belago出色的红外补光功能,使扫地机器人能够大大提升其识别物体的能力,实现精准避障;Belago点阵照明器采用迷你封装,兼容标准无铅回流工艺,适用于各种3D传感平台,包括移动设备、物联网设备和机器人。全球领先的光学解决方案供应商艾迈斯欧司朗(瑞士证券交易所股票代码:AMS)近日宣布,与国内领先的多行业三维视觉方案提供商超节点创新科技(Supernode)双方联合推出采用艾迈斯欧司朗先进Belago红
    艾迈斯欧司朗 2024-12-20 18:55 107浏览
  • 光耦合器,也称为光隔离器,是用于电气隔离和信号传输的多功能组件。其应用之一是测量电路中的电压。本文介绍了如何利用光耦合器进行电压测量,阐明了其操作和实际用途。使用光耦合器进行电压测量的工作原理使用光耦合器进行电压测量依赖于其在通过光传输信号的同时隔离输入和输出电路的能力。该过程包括:连接到电压源光耦合器连接在电压源上。输入电压施加到光耦合器的LED,LED发出的光与施加的电压成比例。光电二极管响应LED发出的光由输出侧的光电二极管或光电晶体管检测。随着LED亮度的变化,光电二极管的电阻相应减小,
    腾恩科技-彭工 2024-12-20 16:31 102浏览
  • 国产数字隔离器已成为现代电子产品中的关键部件,以增强的性能和可靠性取代了传统的光耦合器。这些隔离器广泛应用于医疗设备、汽车电子、工业自动化和其他需要强大信号隔离的领域。准确测试这些设备是确保其质量和性能的基本步骤。如何测试数字隔离器测试数字隔离器需要精度和正确的工具集来评估其在各种条件下的功能和性能。以下设备对于这项任务至关重要:示波器:用于可视化信号波形并测量时序特性,如传播延迟、上升时间和下降时间。允许验证输入输出信号的完整性。频谱分析仪:测量电磁干扰(EMI)和其他频域特性。有助于识别信号
    克里雅半导体科技 2024-12-20 16:35 85浏览
  • 光耦固态继电器(SSR)作为现代电子控制系统中不可或缺的关键组件,正逐步取代传统机械继电器。通过利用光耦合技术,SSR不仅能够提供更高的可靠性,还能适应更加复杂和严苛的应用环境。在本文中,我们将深入探讨光耦固态继电器的工作原理、优势、挑战以及未来发展趋势。光耦固态继电器:如何工作并打破传统继电器的局限?光耦固态继电器通过光电隔离技术,实现输入信号与负载之间的电气隔离。其工作原理包括三个关键步骤:光激活:LED接收输入电流并发出与其成比例的光信号。光传输:光电传感器(如光电二极管或光电晶体管)接收
    腾恩科技-彭工 2024-12-20 16:30 78浏览
  • ALINX 正式发布 AMD Virtex UltraScale+ 系列 FPGA PCIe 3.0 综合开发平台 AXVU13P!这款搭载 AMD 16nm 工艺 XCVU13P 芯片的高性能开发验证平台,凭借卓越的计算能力和灵活的扩展性,专为应对复杂应用场景和高带宽需求而设计,助力技术开发者加速产品创新与部署。随着 5G、人工智能和高性能计算等领域的迅猛发展,各行业对计算能力、灵活性和高速数据传输的需求持续攀升。FPGA 凭借其高度可编程性和实时并行处理能力,已成为解决行业痛点的关
    ALINX 2024-12-20 17:44 104浏览
  • 耳机虽看似一个简单的设备,但不仅只是听音乐功能,它已经成为日常生活和专业领域中不可或缺的一部分。从个人娱乐到专业录音,再到公共和私人通讯,耳机的使用无处不在。使用高质量的耳机不仅可以提供优良的声音体验,还能在长时间使用中保护使用者听力健康。耳机产品的质量,除了验证产品是否符合法规标准,也能透过全面性的测试和认证过程,确保耳机在各方面:从音质到耐用性,再到用户舒适度,都能达到或超越行业标准。这不仅保护了消费者的投资,也提升了该公司在整个行业的产品质量和信誉!客户面临到的各种困难一家耳机制造商想要透
    百佳泰测试实验室 2024-12-20 10:37 189浏览
  • 汽车行业的变革正愈演愈烈,由交通工具到“第三生活空间”。业内逐渐凝聚共识:汽车的下半场在于智能化。而智能化的核心在于集成先进的传感器,以实现高等级的智能驾驶乃至自动驾驶,以及更个性、舒适、交互体验更优的智能座舱。毕马威中国《聚焦电动化下半场 智能座舱白皮书》数据指出,2026年中国智能座舱市场规模将达到2127亿元,5年复合增长率超过17%。2022年到2026年,智能座舱渗透率将从59%上升至82%。近日,在SENSOR CHINA与琻捷电子联合举办的“汽车传感系列交流会-智能传感专场”上,艾
    艾迈斯欧司朗 2024-12-20 19:45 153浏览
  • 百佳泰特为您整理2024年12月各大Logo的最新规格信息。——————————USB▶ 百佳泰获授权进行 USB Active Cable 认证。▶ 所有符合 USB PD 3.2 标准的产品都有资格获得USB-IF 认证——————————Bluetooth®▶ Remote UPF Testing针对所有低功耗音频(LE Audio)和网格(Mesh)规范的远程互操作性测试已开放,蓝牙会员可使用该测试,这是随时测试产品的又一绝佳途径。——————————PCI Express▶ 2025年
    百佳泰测试实验室 2024-12-20 10:33 133浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦