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

来源 | 鉴源实验室

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

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

01 CAN-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 内出现的概率。

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

02 Ethernet-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.

鉴源论坛 · 观辙丨基于规则的车载网络入侵检测技术相关推荐

  1. 鉴源论坛 · 观模丨µC/OS内核的形式化验证技术

    作者 | 郭建 上海控安可信软件创新研究院特聘专家          丁继政 上海控安研发中心研究员 版块 | 鉴源论坛 · 观模 操作系统作为软件系统的核心,其安全性与可靠性是构造高可信软件最为关键 ...

  2. 鉴源论坛 · 观辙丨汽车CAN总线渗透测试

    作者 | 肖博阳 上海控安可信软件创新研究院研发工程师 来源 | 鉴源实验室 01  CAN总线 1.1 CAN总线是什么? CAN是控制器局域网络(Controller Area Network, ...

  3. 基于时间序列特征提取的车载网络系统入侵检测技术

    目录 一.介绍 二.车载网络 三.针对的攻击 四.基于递归神经网络的入侵检测技术 五.总结 一.介绍 随着对物联网(IoT)需求的增长,通过网络提供并控制了诸如电力,天然气,水,铁路,飞机,汽车等各种 ...

  4. 鉴源论坛 · 观模丨AUTOSAR调度表可调度性的形式化分析

    作者 | 郭建 上海控安可信软件创新研究院特聘专家 版块 | 鉴源论坛 · 观模 汽车上大量软件和电子控制单元(ECU,Electronic Control Unit)的使用导致了汽车电子架构变得更为 ...

  5. 鉴源论坛 · 观擎丨民机机载软件中的开发和验证工具

    作者 |蔡喁 上海控安可信软件创新研究院副院长 版块 | 鉴源论坛 · 观擎 01  工具鉴定 现代软件工程中,工具已经出现在软件研制过程中的各个环节中.在常见的软件研制环节中,使用工具包括软件需求工 ...

  6. 鉴源论坛 ·观擎丨民机机载软件的开发与验证

    作者 | 蔡喁 上海控安可信软件创新研究院副院长 版块 | 鉴源论坛 · 观擎 01 机载软件过程保证的目的和背景 民机机载软件研制过程一直是行业内公认的要求最为严苛.开发验证难度最大的软件开发实例之 ...

  7. 入侵检测系统_GIDS:基于GAN的车载网络入侵检测系统

    车辆中的控制器局域网(CAN)总线是一种高效的标准总线,支持所有电子控制单元(ECU)之间的通信. 但是,由于缺乏安全功能,CAN总线不足以保护自身.为了有效地检测可疑网络连接,需要入侵检测系统(ID ...

  8. 轩辕实验室 | 车载网络入侵检测DCNN算法设计

    本文来轩辕实验室张振超的研究成果和学习笔记

  9. 鉴源论坛丨民用飞机机载软件是如何表明适航符合性的

    作者 | 蔡喁 上海控安可信软件创新研究院副院长 版块 | 鉴源论坛 · 观擎 01 机载软件的基本特征 机载计算机在现代飞机各组成部分中占有举足轻重的位置,是现代航空电子系统的基础和核心,其研制.生 ...

最新文章

  1. 海思3559A上编译FFmpeg源码操作步骤
  2. iOS开发-简单解析JSON数据
  3. 从根因入手,更有效率,效果也更好
  4. django之BBS需求分析和orm设计-71
  5. iptables实现字符串匹配
  6. python作者龟叔_龟叔和他的Python
  7. 中的多行卡片如何居中_编程中如何让图片垂直居中?两种方案分享给大家
  8. 初始化HashMap的默认值——阿里巴巴编码规范系列
  9. 后退返回命令数量_Redis | Redis 有序集合相关命令
  10. 把字符串变为变量_python学习第10课--列表和字符串的可变性
  11. JAVA轻量级ORM框架JOOQ体验
  12. windows时间服务器搭建
  13. Keil5窗口的背景保护色设置
  14. 服务器双系统怎么选择启动不了,Win7/Win10双系统开机时不显示系统选择菜单怎么办...
  15. 在win7下面安装ubuntu 16.04.4双系统
  16. 操作系统:基本磁盘和动态磁盘
  17. ERP中英文缩写汇总
  18. [AGC004E] Salvage Robots (DP)
  19. linux - realpath_ex
  20. css引入样式-行内样式、内嵌样式和外链样式

热门文章

  1. Java实现 LeetCode 738 单调递增的数字(暴力)
  2. liunx启动jar包
  3. python 股票库_GitHub - zxyxz/stock: stock,股票系统。使用python进行开发。
  4. 爬虫学习记录1:通讯协议、网络模型、爬虫分类及常见概念
  5. 百度网盘转存阿里云盘最好的机会(阿里云盘15天20TB超级会员兑换截至8月31日),附软件和教程
  6. 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是: A) n=(n*100+0.5)/100.0 B)m=n*100+0.5
  7. 元旦主题HTML,2018年元旦主题活动策划方案
  8. python中的del
  9. 除夕拿起落灰的html,把灰尘吹拂,助力朋友表白心声~
  10. 阿里巴巴首面之面试题