AP AUTOSAR硬核技术(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-


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




汽车电子与软件
每天分享一篇技术文章!
 最新文章