01入侵检测系统背景
智能网联汽车不再是一个孤立的嵌入式系统了,信息安全问题越来越被重视。国内外发布了多项标准法规,来规范汽车网络安全的发展。其中有不少法规对车辆网络安全检测提出要求,如表1。
表1 车辆网络安全监控法规要求
入侵检测系统(IDS)是按照一定的安全策略对网络、系统及其运行状态进行监控,并试图发现各种攻击企图、攻击行为或攻击结果,以保证网络系统的机密性、完整性和可用性。当存在恶意活动的软件或车载网络被篡改、注入时,汽车入侵检测系统可以通过分析车内流量或系统状态进行攻击识别,并发出安全警报。
在汽车上,根据检测的对象,可以将入侵检测系统分成两类,包括网络入侵检测系统和主机入侵检测系统。
网络入侵检测系统可以对包括CAN总线、车载以太网、WIFI、蓝牙数据等车载网络进行检测。目前已有很多基于规则的和基于AI方法的研究。如【1】设计了规则和AI混合的多层SOME/IP入侵检测方法,基于规则的模块用于检测SOME/IP报头、SOME/IP-SD消息、消息间隔和通信过程,利用AI检测SOME/IP的有效负载。考虑到实际部署成本,在车载控制器中往往部署基于规则的入侵检测系统,利用专家知识、车载网络数据库等建立规则库,进行检测。
基于主机的入侵检测系统则对控制器的操作系统进行安全监控。随着汽车智能网联化,车载控制器不再仅由MCU组成,Linux、Android、QNX频繁地在各类域控制器中出现。SOC在给汽车带来强大功能的同时,也成为对汽车的一条重要攻击路径。主机入侵检测系统可对操作系统进行资源监控、文件监控、病毒扫描等。
在检测识别到车内的异常攻击行为后,通过生成安全日志,并将安全日志上传到汽车安全运营平台(VSOC),是一种有效的攻击行为追溯,监控智能网联汽车安全状态手段。
02AUTOSAR入侵检测系统架构
汽车开放系统架构(AUTomotive Open System Architecture)是一家致力于制定汽车电子软件标准的联盟。AUTOSAR是由全球汽车制造商、部件供应商及其他电子、半导体和软件系统公司联合建立,各成员保持开发合作伙伴关系。自2003年起,各伙伴公司携手合作,致力于为汽车工业开发一个开放的、标准化的软件架构。AUTOSAR这个架构有利于车辆电子系统软件的交换与更新,并为高效管理愈来愈复杂的车辆电子、软件系统提供了一个基础。此外,AUTOSAR在确保产品及服务质量的同时,提高了成本效率。
AUTOSAR对汽车入侵检测系统的架构,如图1。整个车载入侵检测系统主要包括了安全探针、管理模块(IdsM)、安全事件存储(Sem)、报告模块(IdsR)。
图1 分布式车载IDS架构【2】
(1)安全探针
安全探针是检测网络流量、系统事件中潜在网络威胁的模块。当检测到异常后向管理模块发送安全事件(Security Events,SEv)。常见安全探针包括CAN入侵检测系统、以太网入侵检测系统、主机入侵检测系统等。
(2)管理系统
当管理模块接收到SEv后,如图2,依次经过拦截过滤器(Blockers)、采样过滤器(Sampling)、聚合过滤器(Aggregation)以及速率限制过滤器(Rate Limitation),生成合格的安全事件(Qualified Security Events, QSEv)。管理模块将 QSEv 发送到入侵检测报告模块,并将其存储在安全事件存储器“SEM”中。
图2 管理模块过滤链【2】
拦截过滤器根据上传模式及当前状态对事件进行过滤;采样过滤器允许每个事件的第N条通过;聚合过滤器将配置时间内的所有SEv聚合成一个,并对聚合后的事件数量进行阈值过滤;速率限制过滤器根据配置时间间隔内的SEv数量及字节数进行过滤。
(3)报告模块
IdsR将QSEv发送给VSOC。IdsR与IdsM之间的安全事件报文如图3。它的最小长度为 8 个字节(对于事件帧),包括了协议版本、协议头、IdsM实例ID、探针实例ID、事件ID、事件数量、保留字段。此外,报文包括3个可选字段:时间戳、上下文数据及签名。
图3 安全事件报文【3】
03入侵检测系统测试方法
对于入侵检测系统的测试,可分为两个阶段:
· 入侵检测系统功能测试,即根据需求对开发的软件进行功能测试,检验软件是否根据输入返回预期结果。
· 渗透测试,模拟常见的网络攻击,来验证入侵检测系统对网络攻击的检测能力。
在渗透测试阶段,让测试人员进行人工测试是困难的,首先渗透测试对测试人员的网络安全知识有着一定的门槛,其次渗透测试过程涉及的攻击数据生成、测试结果判断等步骤十分繁琐复杂。为了提高测试效率,在测试过程中需要利用渗透测试工具搭建自动化入侵检测系统测试环境,来提高入侵检测功能的测试。因此,针对网络入侵检测系统的渗透测试,设计测试流程,如图4:
(1)生成攻击报文。
(2)向入侵检测系统被测件发送攻击报文,并监听是否收到QSEv。
(3)入侵检测系统对攻击行为进行实时检测,若检测到异常,则向测试设备发送QSEv。
(4)若渗透测试工具收到了正确的QSEv,则测试通过,否则测试失败。
图4 入侵检测系统测试流程
在测试流程中,攻击数据包的生成是其中至关重要的部分。【4】中总结了一部分数据包生成工具,如图5,但是这些工具几乎没有汽车方面的支持,例如缺少SOME/IP,UDS,DoIP协议的测试功能,因此不能满足车载入侵检测系统的测试需求。
图5 数据包生成工具及能力【4】
BlitzFuzz(点击查看详情)作为一款专门针对工控网络协议的渗透模糊测试工具,支持CAN、CAN、UDS、SOME/IP、DoIP等汽车常用协议的报文仿真、解析功能,提供相关协议的渗透测试用例包、合规测试用例包以及模糊测试功能。同时提供了用户自定义编写测试用例,能够更加灵活地满足不同的渗透测试需求。为入侵检测系统功能的自动化测试提供了便利,如图6。
图6 BlitzFuzz渗透测试界面
如图7,利用BlitzFuzz对以太网入侵检测被测件进行测试。首先将将被测件通过网线连接BlitzFuzz工具。测试人员在BlitzFuzz前端界面编写入侵检测功能的自定义测试用例,包括调用工具提供的TCP端口扫描攻击API发送端口扫描报文,编写以太网接收回调函数,用于判断被测件发送的QSEv情况。编写完成后选择测试用例并运行,运行结束后即可在界面查看测试报告。
图7 BlitzFuzz入侵检测测试示意图
主要参考文献:
[1] Luo, F.; Yang, Z.; Zhang, Z.; Wang, Z.; Wang, B.; Wu, M. A Multi-Layer Intrusion Detection System for SOME/IP-Based In-Vehicle Network. Sensors 2023, 23, 4376.
https://doi.org/10.3390/s23094376
[2] Requirements on Intrusion Detection System AUTOSAR FO R23-11.
[3] Specification of Intrusion Detection System Protocol AUTOSAR FO R23-11.
[4] Corbett C, Basic T, Lukaseder T, et al. A testing framework architecture for automotive intrusion detection systems[J]. 2017.
作者 | 张诏景 上海控安可信软件创新研究院工控网络安全组