AUTOSAR图解==>AUTOSAR_SWS_IntrusionDetectionSystemManager
AUTOSAR 入侵检测系统管理器 (IdsM) 详解
1. 概述
AUTOSAR 入侵检测系统管理器(Intrusion Detection System Manager, IdsM)是AUTOSAR标准中安全防护框架的关键组成部分,专门负责处理车载安全事件。IdsM模块提供了一套完整的机制,用于收集、处理、过滤和转发在车辆运行过程中检测到的安全事件。
IdsM的主要功能包括:
- 接收来自基础软件模块(BSW)和应用软件组件(SW-C)的安全事件报告
- 根据配置规则对安全事件进行过滤和合格化
- 为安全事件添加时间戳等元数据
- 将合格安全事件转发到配置的接收器(IdsR,Dem/Sem)
- 提供多种过滤器以优化事件处理和存储
- 支持安全事件的本地存储和远程转发
作为AUTOSAR分布式入侵检测系统的核心组件,IdsM通过标准化接口接收、处理和转发安全事件,有效地支持了车辆安全运行和事件监控。
2. 系统架构
2.1 IdsM架构概览
以下架构图展示了IdsM在AUTOSAR系统中的位置以及与其他模块的关系:
2.1.1 架构组成部分
IdsM架构主要由以下几个层次组成:
-
应用层:包含安全传感器软件组件和智能传感器,负责检测安全事件并报告给IdsM。
- 常规传感器组件通过标准API报告基本安全事件
- 智能传感器能够提供带有时间戳和计数的高级安全事件信息
-
系统服务层:包含核心系统服务模块,其中IdsM是处理安全事件的中心组件
- IdsM:负责接收、处理和转发安全事件
- IdsR:入侵检测系统报告器,将合格安全事件传输到后端安全运行中心
- StbM:同步时基管理器,提供系统时间戳
- NvM:非易失性存储管理器,保存报告级别配置
- Csm:密码服务管理器,用于事件签名生成
- Det:默认错误追踪器,处理开发错误报告
- PduR:PDU路由器,负责安全事件数据的传输
-
安全服务层:提供安全和诊断相关服务
- Dem:诊断事件管理器,用于存储安全事件
- Sem:安全事件内存,本地持久化存储安全事件
- Dcm:诊断通信管理器,允许修改事件报告级别
-
后端系统:
- SOC:安全运行中心,接收和分析合格安全事件
2.1.2 数据流向
架构图中的箭头表示数据流向:
-
安全事件的检测与报告:
- 应用层安全传感器 → IdsM:报告安全事件(SEv)
- 智能传感器 → IdsM:报告带有时间戳和计数的安全事件
-
事件处理与存储:
- IdsM → Dem/Sem:存储合格安全事件
- IdsM → Csm:生成事件签名
- IdsM → NvM:保存报告级别配置
-
事件转发:
- IdsM → IdsR:转发合格安全事件(QSEv)
- IdsR → SOC:将事件传输到安全运行中心
-
配置与时间同步:
- Dcm → IdsM:修改事件报告级别
- StbM → IdsM:提供时间戳
2.2 IdsM内部结构
以下图表展示了IdsM的内部组件结构和数据流:
2.2.1 核心组件
-
事件接收接口:
- 提供多种API接口接收来自不同类型传感器的安全事件
- 支持带/不带上下文数据、计数和时间戳的事件接收
-
缓冲区管理:
- 事件缓冲区:临时存储接收到的安全事件
- 上下文数据缓冲区:存储与安全事件相关的附加信息
-
过滤链:IdsM的核心处理机制,包含多种类型的过滤器:
-
阻止型过滤器:
- 报告模式过滤器:根据配置的报告模式决定是否处理事件
- 状态阻止过滤器:根据系统状态决定是否处理事件
-
采样过滤器:
- 每N个转发过滤器:只转发第N个事件,减少事件数量
-
聚合过滤器:
- 事件聚合过滤器:将多个相似事件合并为单个事件
- 事件阈值过滤器:只有当事件计数达到阈值时才处理
-
速率限制过滤器:
- 事件速率限制:限制特定事件类型的处理频率
- 流量限制:限制总体事件处理量
-
-
时间戳管理:
- 支持多种时间戳来源:StbM、自定义时间戳、传感器提供的时间戳
-
签名生成:
- 为安全事件生成加密签名,确保事件真实性
-
事件输出:
- IdsR接口:将事件转发到IdsR模块
- Dem/Sem接口:将事件存储到本地存储
-
配置管理:
- 管理各过滤器的配置参数
- 支持通过诊断接口更新配置
-
主函数:
- 周期性执行,处理缓冲区中的事件
2.2.2 数据处理流程
IdsM内部数据处理遵循以下流程:
- 安全事件通过事件接收接口进入系统
- 事件被缓存在事件缓冲区中,上下文数据存储在上下文数据缓冲区
- 主函数从缓冲区读取事件并启动过滤链处理
- 事件依次通过各类过滤器,不符合条件的事件被丢弃
- 通过过滤的事件被添加时间戳,必要时生成签名
- 最终合格的安全事件被转发到配置的目标接收器
3. 安全事件处理流程
以下活动图详细展示了IdsM处理安全事件的完整流程:
3.1 事件接收与初始处理
-
事件检测与报告:
- 安全传感器检测到潜在安全威胁
- 传感器通过IdsM提供的API调用报告安全事件
-
事件缓存:
- IdsM接收安全事件并存储在事件缓冲区
- 如果事件包含上下文数据,则存储在上下文数据缓冲区
- 如配置了上下文数据修改器,则调用此函数处理上下文数据
-
主函数处理:
- IdsM主函数(
IdsM_MainFunction
)周期性执行 - 从缓冲区读取待处理事件并启动过滤链处理
- IdsM主函数(
3.2 过滤链处理
安全事件依次通过多个过滤器,每个过滤器都可能导致事件被丢弃或修改:
-
报告模式过滤器:
- 检查事件的报告模式配置
- 如报告模式不允许,则丢弃事件
-
状态阻止过滤器:
- 根据当前系统状态决定是否处理事件
- 某些事件可能只在特定系统状态下才处理
-
采样过滤器:
- 每N个转发过滤器只允许第N个事件通过
- 用于减少重复事件数量
-
聚合过滤器:
- 事件聚合过滤器将多个相似事件合并为一个
- 事件阈值过滤器要求事件计数达到阈值才处理
-
速率限制过滤器:
- 事件速率限制防止特定类型事件过于频繁报告
- 流量限制控制总体事件处理量,避免系统过载
3.3 时间戳与转发
通过全部过滤链的事件成为合格安全事件(QSEv),然后进行以下处理:
-
添加时间戳:
- 根据配置使用StbM、自定义时间戳或保留传感器提供的时间戳
-
计算签名:
- 如配置了签名生成,则计算事件签名以确保真实性
-
事件转发:
- 如配置了IdsR接收器,则将事件转发到IdsR,由IdsR传输到SOC
- 如配置了Dem/Sem接收器,则将事件存储在本地内存中
4. API接口与数据类型
IdsM提供丰富的API接口用于报告、处理和转发安全事件:
4.1 模块管理API
-
IdsM_Init:
- 功能:初始化IdsM模块
- 参数:
IdsM_ConfigType
类型配置指针 - 说明:在使用其他函数前必须先调用此函数
-
IdsM_GetVersionInfo:
- 功能:获取模块版本信息
- 参数:
Std_VersionInfoType
类型版本信息指针 - 说明:提供模块的版本信息,用于兼容性检查
-
IdsM_MainFunction:
- 功能:处理报告的安全事件的主函数
- 说明:由调度器周期性调用,处理缓冲区中的事件
4.2 安全事件报告API
4.2.1 标准API
-
IdsM_SetSecurityEvent:
- 功能:报告基本安全事件
- 参数:安全事件ID
- 说明:最简单的事件上报函数,仅包含事件ID
-
IdsM_SetSecurityEventWithContextData:
- 功能:报告带有上下文数据的安全事件
- 参数:安全事件ID,上下文数据指针
- 说明:带有附加信息的事件上报
4.2.2 计数API
-
IdsM_SetSecurityEventWithCount:
- 功能:报告带有计数的安全事件
- 参数:安全事件ID,计数值
- 说明:用于上报已聚合的事件
-
IdsM_SetSecurityEventWithCountContextData:
- 功能:报告带有计数和上下文数据的安全事件
- 参数:安全事件ID,计数值,上下文数据指针
- 说明:综合计数与上下文数据的事件上报
4.2.3 智能传感器API
-
IdsM_SetSecurityEventWithTimestampCount:
- 功能:报告带有时间戳和计数的安全事件
- 参数:安全事件ID,时间戳,计数值
- 说明:用于智能传感器直接提供时间和计数信息
-
IdsM_SetSecurityEventWithTimestampCountContextData:
- 功能:报告带有时间戳、计数和上下文数据的安全事件
- 参数:安全事件ID,时间戳,计数值,上下文数据指针
- 说明:最完整的事件上报函数,包含所有可能信息
4.3 回调通知与诊断接口
-
回调通知:
IdsM_BswM_StateChanged
:通知BswM模块状态变化IdsM_TpTxConfirmation
:TP传输安全事件确认回调IdsM_TxConfirmation
:传输安全事件确认回调
-
诊断接口:
IdsM_Dcm_GetReportingMode_RequestResults
:获取安全事件报告模式结果IdsM_Dcm_GetReportingMode_Start
:启动获取安全事件报告模式IdsM_Dcm_SetReportingMode_Start
:启动设置安全事件报告模式
4.4 服务接口
- IdsM_IdsMService:标准服务接口,提供事件报告功能
- IdsM_SmartSensorService:智能传感器服务接口,支持时间戳和计数
- IdsM_CustomTimestamp:自定义时间戳提供接口
4.5 关键数据类型
- IdsM_SecurityEventIdType:安全事件ID类型
- IdsM_ContextDataType:上下文数据类型,包含数据指针和长度
- IdsM_TimestampType:时间戳类型,包含秒和纳秒部分
- IdsM_ConfigType:模块配置类型
- IdsM_Filters_BlockStateType:阻止状态过滤器状态类型
- IdsM_Filters_ReportingModeType:报告模式类型
5. 时间戳处理机制
IdsM支持多种时间戳来源,以满足不同应用场景的需求:
5.1 时间戳获取场景
5.1.1 使用StbM时间戳
当配置IdsM使用StbM作为时间戳源时:
- 安全传感器报告基本安全事件(不含时间戳)
- IdsM缓存并过滤事件
- 对通过过滤的事件,IdsM调用
StbM_GetCurrentTime
获取同步时间戳 - 将获取的时间戳添加到事件中
- 转发带有时间戳的合格事件
5.1.2 使用自定义时间戳
当配置IdsM使用自定义时间戳时:
- 安全传感器报告基本安全事件(不含时间戳)
- IdsM缓存并过滤事件
- 对通过过滤的事件,IdsM调用
Rte_Call_CustomTimestamp_Get
获取自定义时间戳 - 将获取的时间戳添加到事件中
- 转发带有时间戳的合格事件
5.1.3 智能传感器提供时间戳
当智能传感器直接提供时间戳时:
- 智能传感器通过带时间戳的API报告安全事件
- IdsM缓存带有时间戳的事件
- 事件经过过滤链处理
- IdsM不需要再添加时间戳(因已由传感器提供)
- 直接转发事件
5.2 时间戳的意义
时间戳在安全事件处理中具有重要意义:
- 提供事件发生的准确时间,帮助分析安全事件的时序关系
- 支持后端SOC进行事件关联和模式识别
- 提供事件发生的历史记录,用于安全审计
- 可能作为事件签名生成的输入,增强事件真实性验证
6. 总结
AUTOSAR入侵检测系统管理器(IdsM)作为车载安全框架的核心组件,提供了完整的安全事件处理流程和丰富的API接口,支持事件接收、过滤、处理和转发。IdsM的灵活架构确保了:
- 标准化:提供统一接口接收来自不同来源的安全事件
- 可配置性:通过多种过滤器实现灵活的事件处理策略
- 可扩展性:支持不同类型的事件接收器和时间戳来源
- 可靠性:通过事件签名和完整的时间戳支持确保事件的真实性
- 资源优化:通过过滤和聚合机制减少处理和存储负载
IdsM与其他AUTOSAR安全模块(如IdsR、Csm等)协同工作,构建了完整的车载入侵检测系统,为车辆安全提供了强有力的保障。通过合理配置和使用IdsM,开发者可以实现高效、安全的车载安全监控系统。