鉴源实验室丨汽车入侵检测系统介绍及测试

作者 | 张诏景 上海控安可信软件创新研究院工控网络安全组

来源 | 鉴源实验室

社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区”

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),是一种有效的攻击行为追溯,监控智能网联汽车安全状态手段。

02

AUTOSAR入侵检测系统架构

汽车开放系统架构(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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/675536.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习基础】batch、layer normalization区别

文章目录 1 normalization1.1 batch normalization1.1 motivation 2 layer normalizaiton2.1 motivation 3、面试题 2 pooling2.1 pooling的作用2.2 Pooling 层如何进行反向传播和梯度更新?Max Pooling和 Average Pooling的区别,使用场景分别是什么&…

使用quicker进行局域网文件互传

使用了动作:文件服务器 https://getquicker.net/Sharedaction?code7a49ca6b-d243-4478-1e87-08d9f1ba2358 在文件夹中打开打开这个动作就能使用。 配置 右键动作可以设置: 选择了最后一个之后,打开服务之后能在右下角有一个弹窗&#xff…

[一本Java+一本Java]5月7日简历指导直播

一、直播预告 每周二、四、六16:30简历指导直播,前美团项目负责人、校招VIP CEO-大拿老师在线讲简历优化 二、简历内容 三、简历核心问题 【简历1】一本- Java 1 虽然项目名称有一定的包装,两个项目的内容都是一眼能看出来的烂大街的项目&#xff0c…

【智能优化算法】野狗智能优化算法(Dingo Optimization Algorithm DOA)

野狗智能优化算法(Dingo Optimization Algorithm DOA)是期刊“MATHEMATICAL PROBLEMS IN ENGINEERING”的2021年智能优化算法 01.引言 野狗智能优化算法(Dingo Optimization Algorithm DOA)该算法的灵感来自野狗的狩猎策略,即迫害攻击,分组策略和清除行…

【论文阅读笔记】MAS-SAM: Segment Any Marine Animal with Aggregated Features

1.论文介绍 MAS-SAM: Segment Any Marine Animal with Aggregated Features MAS-SAM:利用聚合特征分割任何海洋动物 Paper Code(空的) 2.摘要 最近,分割任何模型(SAM)在生成高质量的对象掩模和实现零拍摄图像分割方面表现出卓越…

端侧AI从“芯”开发机会到来,MediaTek举办天玑开发者大会MDDC2024

MDDC2024速览: 发布芯片新品MediaTek天玑9300旗舰5G生成式AI移动芯片、生态发布天玑AI先锋计划、for开发者的生成式AI端侧“天玑AI开发套件”、发布《生成式AI手机产业白皮书》、for游戏的MediaTek星速引擎技术…… MediaTek 5月27日举办天玑开发者大会2024&#xf…

shell脚本编写-测试同一网段内主机是否在线

除了可以使用ansible自动化运维工具判断主机是否在线以外,还可以通过编写Shell脚本来实现。 1、编写脚本 #! /bin/bash #测试192.168.81.0/24网段中哪些主机处于开机状态,哪些主机处于关机状态# #方法一:使用for循环判断 # for i in {1..25…

PyRun_SimpleString(“import cv2“); 报错解决

#include <Python.h> #include <iostream>using namespace std;int main() {Py_Initialize();if (!Py_IsInitialized()){printf("初始化失败&#xff01;");return 0;}PyRun_SimpleString("import sys");PyRun_SimpleString("sys.path.ap…

苍穹外卖项目---------收获以及改进(3-4天)

①公共字段填充----mybatis 第一步&#xff1a;自定义注解 /*** 自定义注解用于标识某个方法需要进行功能字段的填充*/ Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) public interface AutoFill {//枚举&#xff1a;数据库操作类型&#xff1a; update ins…

Redis学习4——Redis应用之限流

引言 Redis作为一个内存数据库其读写速度非常快&#xff0c;并且支持原子操作&#xff0c;这使得它非常适合处理频繁的请求&#xff0c;一般情况下&#xff0c;我们会使用Redis作为缓存数据库&#xff0c;但处理做缓存数据库之外&#xff0c;Redis的应用还十分广泛&#xff0c…

STM32接入CH340芯片的初始化进入升级模式(死机)问题处理

目录 1. 问题描述2. 问题分析2.1 CH340G/K 的初始化波形2.2 第1种USB升级电路2.3 第2种USB升级电路2.4 第3种USB升级电路2.5 第4种USB升级电路 3. 总结 1. 问题描述 我所用的CH340G&#xff08;CH340K也用过&#xff09;接在MCU的电路中&#xff0c;在插入CH340G/K 的接插件&a…

java10基础(this super关键字 重写 final关键字 多态 抽象类)

目录 一. this和super关键字 1. this关键字 2. super关键字 二. 重写 三. final关键字 四. 多态 五. 抽象类 1. 抽象方法 2. 抽象类 3. 面向抽象设计 一. this和super关键字 1. this关键字 this 当前对象的引用 this.属性 this.方法名() this() -- 调用构造函数 …