什么是汽车IDS?
ISO/SAE 21434(道路车辆-网络安全工程)是车辆安全标准,定义了当攻击发生时如图所示的5个步骤。汽车制造商必须对车辆中出现的安全漏洞做出响应。但是,只有在这些漏洞已知的情况下,才能执行此操作。汽车IDS由车载IDS和后端组成。[1]
IDS检测针对ECU和网络的外部攻击,将其收集后发送到汽车制造商的后端-安全运营中心(SOC)。汽车制造商对数据进行评估并决定如何应对。[1]
分布式车载IDS架构主要由四部分组成:[2]
安全传感器
入侵检测系统管理器(IdsM)
安全事件存储
入侵检测系统报告器(IdsR)
安全传感器和安全事件
AUTOSAR的BSW,CDD和SWC模块都可以被指作为安全传感器,安全传感器将安全事件报告给IdsM。
AUTOSAR将可以由BSW报告的安全事件类型进行了标准化,可以在各BSW SWS文档中检索到,例如:
SWC和CDD也能报告这样的事件,不过它们的安全事件类型并未标准化,特定ECU报告的安全事件可以通过Security Extract定义,相关文档需要参考AUTOSAR_TPS_SecurityExtractTemplate。
入侵检测系统管理器
IdsM会将报告的安全事件缓存下来,然后将它们应用于一组连续的过滤条件,也称作为过滤链,如果某一安全事件通过了过滤链,那么此安全事件被视作为合格安全事件(QSEv)。
根据配置的不同,IdsM会将QSEv保存在安全事件存储这样的非易失性存储区域当中,或者同时将他们序列化之后发送给IdsR。
IdsM包含以下子模块:
事件接收
事件缓存
IdsM内部安全事件
合格事件
QSEv报告
事件存储
通过诊断接口进行事件的读和写
事件的报告提供两个api,IdsM_SetSecurityEvent和IdsM_SetSecurityEventWithContextData,后者额外包含事件发生时的上下文数据,此额外数据建议不超过1500字节,且IdsM不负责了解或者解析此数据。
对于一些“智能传感器”(Smart Sensors)来说,还可以在上报时附带时间戳和计数器信息,IdsM也需要有能力接收这些信息。
在IdsM模块中,每个安全事件都拥有IdsMExternalEventId,IdsMSensorInstanceId,IdsMInternalEventId,以及EventName.内部事件ID不需要手动计算,IdsM会内部做计算并作为内部使用。其他模块报告事件时不依赖于内部ID,仅需要使用事件对应的标识(SymbolicNameValue)。外部事件ID定义在SecXT中,某一类型的安全事件中ID唯一。由于可能多个模块报告同一个安全事件,所以有传感器ID识别是哪个模块。
当接收到安全事件报告时,IdsM首先将事件保存在Event Buffer当中,后续处理以及过滤将异步地在主函数中执行。如果事件附带额外数据,那么这个数据会保存在大小最匹配的Context Data Buffer中。
过滤链定义在SecXT中,每个过滤链可能包含的过滤器有:
BlockState Filter
Forward Every nth Filter
Event Aggregation Filter
Event THreshold Filter
Event Rate Limitation
Traffic Limitation
过滤顺序自上方列表从上而下进行。
入侵检测系统报告器
IdsR从各个ECU的IdsM实例接收发送而来的QSEv,通信协议由IdsM协议规定。IdsR一般还会在接收到数据后添加地理位置等信息。
基于OEM的需求,数据可以发送到SOC,进行更详细的安全事故事件分析。
AUTOSAR不对IdsR进行规范制定。