基于规则的车载网络入侵检测技术

描述

作者 |柳泽上海控安可信软件创新研究院研发工程师

来源 |鉴源实验室

在过去的几十年中,CAN总线是最广泛被应用的车载网络现场总线。但随着汽车电子产品的功能逐渐丰富,以及新一代的智能辅助驾驶系统的接入,传统CAN总线无论是传输效率还是网络容量都已无法满足需求,所以车载以太网凭借其高带宽、低成本、低延时的优势被引入车载通讯系统[1]。因此,车载网络的网络入侵检测系统 (N-IDS,Network Intrusion Detection System,)可以根据网络载体的差异分为CAN-IDS以及以太网IDS。

N-IDS系统部署在远程通信终端(T-Box,Telematics Box)、网关以及车载娱乐信息系统(IVI,In-Vehicle Infotainment)上,通过对CAN总线以及车载以太网上的流量数据的监控、数据载荷的解析和字段匹配来识别网络中出现的异常流量和潜在攻击行为。

01CAN-IDS

CAN-IDS会对采集到的CAN流量,从报文、场景、网络三方面,分别根据既定规则库的规则进行匹配,从而识别出攻击/异常报文。

1.1 DBC检测

DBC检测是根据DBC文件制定的规则库对单帧报文进行检测的检测方法。车厂的DBC文件会对车内报文内容,如CAN ID、DLC、周期报文的周期、信号起始位、信号长度、最大值、保留位等做了定义。常见的车载网络注入攻击、重放攻击、模糊攻击等,往往会改变这些内容,通过将采集到的报文与DBC进行对比,检测出与定义内容不相符的报文,即为攻击/异常报文。

整体流程如图1所示:

检测

图1 CAN-Based IDS系统架构图

基于DBC的报文检测,首先加载内置的规则库。检测时,采集CAN总线数据并进行CAN报文的预处理,然后根据规则库中的检测规则,对选定的报文字段进行检测。最终输出检测结果。

1.2 场景规则检测

定义正常场景和攻击场景,正常场景包括报文序列关系、信号关系等,攻击场景包括UDS探测等。对网络中的报文与定义的场景规则进行匹配。目前针对的主要场景是UDS诊断服务。

基于专家领域知识,根据UDS诊断响应中的NRC进行安全事件告警。安全事件有:UDS拒绝服务、UDS探测、UDS非法请求、非法获取权限、数据安全等。

1.3 网络检测

网络检测是对整个车载网络上的负载率和信息熵进行检测。当实际值偏离了规则库中定义的阈值,则说明网络异常或被攻击。泛洪攻击、模糊攻击、重放攻击等都会使网络的负载率和信息熵发生变化。

CAN总线负载率是指在CAN总线上单位时间内实际传送的位数和可以传送的位数之比。负载率检测能够监视网络的流量情况。信息熵用来衡量系统的不确定性,被广泛应用于计算机网络的异常检测。车载CAN网络在某一工况下,以一定的规律发送,是低随机性、相对静态的。正常情况下,车载网络的负载率和信息熵较为稳定。对车载网络进行泛洪攻击、注入攻击等,则会使相应指标超过正常值。

检测

其中 ai 为第 i 类报文在时间 T 内出现的概率。

网络检测首先选择合适的时间窗口,计算正常车辆的负载率和信息熵,确定其阈值并添加到规则库中。然后,在实车运行过程中,计算当前负载率和信息熵,与规则库中的值进行比较,判断网络是否异常或被攻击。

02Ethernet-IDS

Ethernet-IDS通过对要检测的网段的所有流量包进行抓包,对抓包数据进行特征字段的提取,利用提取的网络特征来识别其中的异常/攻击报文[1]。Snort是一款轻量化的开源的以太网入侵检测系统,它能够进行实时流量分析、网络数据包的记录、异常流量的监测和响应。最初Snort仅支持IP、TCP、UDP等下层协议的检测,但其预处理器机制可被用来拓展兼容不同的上层应用层协议。SOME/IP、DoIP等车载以太网协议是为了应对汽车的电子电器架构由分布式逐渐走向中央集中化的演化,而设计出来的应用层协议。于彤[3]从SOME/IP和DoIP协议的数据完整性、规范程度和潜在漏洞等方面分析了两种协议可能存在的风险,并针对此将SOME/IP、DoIP预处理器引入Snort中。ZIHAN Zhou等[4]通过改进了Snort的规则匹配模式并设计了一种二进制的规则格式,使其完全适配AUTOSAR的规范,能够被引入嵌入式的系统。

Snort的原理架构图如图2所示,其中包括了配置模块、数据获取模块、检测模块以及输出模块。通过修改配置模块的配置文件,可以定义数据获取的配置、预处理的方式、检测的规则以及输出日志的格式。数据获取模块负责检测、解析网卡中的流量并将其送入检测模块。检测模块根据配置信息,对指定的异常行为进行检测和处理,并且会将检测结果送入输出模块,由其实现输出日志的解析、处理、封装和转发等功能。

检测

图2 snort原理架构图

2.1 配置模块

配置模块负责以太网N-IDS所有模块的配置选项设置,在IDS启动的时候即对各个模块进行初始化配置。配置内容如表1所示:

检测

表1 Snort 检测功能配置

2.2 数据获取模块

数据获取模块拥有数据包记录功能,可以直接记录原始数据报文,以及对本地记录的数据包进行重放。数据获取模块抓取网卡中流量数据包,根据配置文件进行相应的解码和预处理。数据获取模块对数据包标准化预处理,使得检测模块能够直接进行特征字段的匹配。

2.3 检测模块

检测模块从两个方面对以太网中的异常流量和行为进行检测:网络流量检测和网络数据包检测。

(1)网络流量检测对以太网的流量情况,包括带宽利用率和信息熵进行监测分析,当超出正常阈值时发出警告。

(2)网络数据包检测定义了正常场景和攻击场景,其中正常场景包括报文序列关系、信号关系等,而攻击场景包括ICMP flood、TCP port scan等。通过对网络数据包中的报文特征字段与定义的场景规则进行匹配,来识别隐藏在报文内的异常攻击行为。

Snort是一个完全基于规则的以太网IDS系统,它的规则编写简单而又灵活,可支持本地编写规则的导入。Snort的规则是由文本构成,主要由规则头和规则选项两部分构成。一条Snort规则编写如图3所示:

检测

图3 Snort规则编写示例

(1)规则头:定义了数据包的发送端地址和端口、接收端的地址和端口、协议类型,以及规则匹配成功后应执行的操作。

(2)规则选项:定义了规则匹配的数据包特征,是Snort入侵检测引擎的核心,也是将Snort易用性与强大功能和灵活性结合起来的关键。所有Snort规则选项都使用分号( ; )字符彼此分隔。规则选项关键字与参数之间用冒号( : )分隔。通过规则选项的设置, Snort可以对报文的任意字段进行正则匹配。

2.4 输出模块

输出模块负责对检测模块的检测结果进行进一步的处理与输出。检测模块根据配置文件定义的输出格式将检测结果封装成日志的形式。输出模块还可以通过配置相关参数以及设置事件过滤规则来修改日志输出的频率。

03小结

规则检测的方法以其稳定性好、检测准确率高、可解释性强等优点成为车载网络入侵检测系统的重要支柱。但汽车电子电气架构的演变、车载网络数据的增加以及车载通讯协议的扩充,都对基于规则的车载网络入侵检测系统提出了更高的要求。性能、可扩展性、兼容能力将是下一代车载网络入侵检测系统开发中重要的考量指标。

参考文献:

[1]李嘉铭. 车载以太网的高效率网络安全技术研究[D].延边大学,2022.DOI:10.27439/d.cnki.gybdu.2022.000462.

[2]刘春颂,杨寿保,杜滨[J].计算机应用.基于网络的入侵检测系统及其实现.2003,2:29-31.

[3]于彤. SOME/IP与DoIP异常检测系统设计[D].华中科技大学,2021.DOI:10.27157/d.cnki.ghzku.2021.005242.

[4]Zihan, Z., Lirong, C., Haitao, Z. and Fan, Z., 2021, December. Research on Intrusion Detection Technology Based on Embedded Ethernet. In 2021 18th International Computer Conference on Wavelet Active Media Technology and Information Processing (ICCWAMTIP) (pp. 587-600). IEEE.

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分