一种基于车载MCU的以太网入侵检测方法与流程

文档序号:25033241发布日期:2021-05-11 17:04阅读:455来源:国知局
一种基于车载MCU的以太网入侵检测方法与流程
本发明属于智能网联汽车安全
技术领域
,更为具体地讲,涉及一种基于车载mcu的以太网入侵检测方法。
背景技术
:网联化的发展使得越来越多的汽车接入互联网络,网络安全攻击对汽车的影响越来越大,网络安全防护对于现在的汽车来说尤为重要。新一代的智能网联汽车将会用车载以太网代替老式的can总线结构,那么针对车载以太网的网络安全防护也日益重要。图1是现有的针对车载以太网的网络安全防护体系架构图。如图1所示,现有技术中,针对车载以太网的网络安全防护主要有三种技术手段:1)隔离和过滤:隔离和过滤位于osi7层模型中的l2-l4层,涉及到的网络安全技术为vlan和firewall。2)检测和防御:检测和防御位于osi7层模型中的l3-l7层,涉及到的网络安全技术为ids、ips、dpi。3)认证和加密:认证和加密位于osi7层模型中的l2-l3、l5-l7层,涉及到的网络安全技术为macsec、ipsec、ssl/tls/dtls、secoc。其中隔离与访问控制、认证和加密技术在车载以太网中已较为成熟,在车载以太网中已规模应用部署。检测和防御技术深度依赖于linux、qnx、android系统,所以目前主要在车载mpu(microcontrolleruni,为微控制单元)系统中实现,在mcu系统中,受限于操作系统和系统ram、rom、cpu资源,还没有出现一种能够支持车载mcu的入侵检测格式和以太网入侵检测方法。技术实现要素:本发明的目的在于克服现有技术的不足,提供一种基于车载mcu的以太网入侵检测方法,设计了一种入侵检测规则格式,对捕获的车载以太网数据报文进行解析并将解析后的报文与入侵检测规则进行匹配,以较小的资源消耗,实现对车载以太网中网络畸形报文和攻击报文的有效检测。为实现上述发明目的,本发明基于车载mcu的以太网入侵检测方法包括以下步骤:s1:根据需要设置若干条入侵检测规则,入侵检测规则中的每个字段均采用二进制格式,具体包括以下字段:规则号、协议号、源ip地址、源端口、目的ip地址、目的端口、阈值、动作、关键字数量、每个关键字以及该条入侵检测规则的crc校验,其中:协议号表示该条入侵检测规则所适应的协议编号;阈值表示符合该条入侵检测规则的报文数量达到该阈值时即发生以太网入侵;关键字即为对应协议中的头部关键字,每个关键字字段包含关键字id、匹配关系、匹配使用数据,匹配关系用于判断报文中该关键字所对应内容是否与该条入侵检测规则对该关键字的设置匹配,当匹配关系为判断报文中该关键字所对应内容是否位于某个范围时,匹配使用数据包括2个数据,分别为该范围的上限和下限,其他情况匹配使用数据只包含1个数据;s2:将步骤s1确定的入侵检测规则采用数组形式在车载mcu的flash或后台服务器中进行存储;s3:在车载mcu中设置一个入侵检测模块,用于进行入侵检测;s4:在需要执行入侵检测任务时,入侵检测模块首先从车载mcu的flash或后台服务器获取所需使用的规则,然后按照入侵检测规则格式解析规则,并存储在预先建立的数据模块;该数据模块将规则按照协议进行划分,将各个协议存储在动态分配的数组中,单个协议下的多条规则通过链表进行存储;s5:在智能网联汽车通信过程中,入侵检测模块对数据报文进行采集并进行解析,提取出用于入侵检测规则匹配数据报文信息,包括源ip地址、源端口、目的ip地址、目的端口以及关键字信息;s6:将步骤s5解析得到的数据报文信息,依次与每条入侵检测规则进行匹配,当匹配成功,则将该数据报文作为威胁数据包,在安全事件日志中记录并上报。本发明基于车载mcu的以太网入侵检测方法,定义了一种新的入侵检测规则格式,采用二进制格式,以数据形式进行存储,在车载mcu中设置一个入侵检测模块,在需要执行入侵检测任务时,入侵检测模块获取所需使用的规则并解析,存储在数据模块中,并对数据报文进行采集和解析,依次与每条入侵检测规则进行匹配,当匹配成功,则将该数据报文作为威胁数据包,在安全事件日志中记录并上报。本发明针对车载mcu设计了一种入侵检测规则格式,对捕获的车载以太网数据报文进行解析并将解析后的报文与规则集进行匹配,以较小的资源消耗,实现对车载以太网中网络畸形报文和攻击报文的有效检测。附图说明图1是现有的针对车载以太网的网络安全防护体系架构图;图2是本发明基于车载mcu的以太网入侵检测方法的具体实施方式流程图;图3是本实施例中udp协议和tcp协议的检测函数链表示例图。具体实施方式下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。实施例图2是本发明基于车载mcu的以太网入侵检测方法的具体实施方式流程图。如图2所示,本发明基于车载mcu的以太网入侵检测方法包括以下步骤:s201:设置入侵检测规则:首先根据需要设置若干条入侵检测规则。为了减少车载mcu的资源消耗,本发明设计了一种新的入侵检测规则形式,用于对入侵检测规则进行表示和保存。入侵检测规则中的每个字段均采用二进制格式,具体包括以下字段:规则号、协议号、源ip地址、源端口、目的ip地址、目的端口、阈值、动作、关键字数量、每个关键字以及该条入侵检测规则的crc校验,其中:协议号表示该条入侵检测规则所适应的协议编号,阈值表示符合该条入侵检测规则的报文数量达到该阈值时即发生以太网入侵,关键字即为对应协议中的头部关键字,每个关键字字段包含关键字id、匹配关系、匹配使用数据,匹配关系用于判断报文中该关键字所对应内容是否与该条入侵检测规则对该关键字的设置匹配,当匹配关系为判断报文中该关键字所对应内容是否位于某个范围时,匹配使用数据包括2个数据,分别为该范围的上限和下限,其他情况匹配使用数据只包含1个数据。表1是本实施例中入侵检测规则的格式列表。表1表2是本实施例中关键字的格式列表。表2对于不同协议,其关键字的设置也不相同,以下是几个典型协议的关键字设置:·ip协议:标志、段偏移、ttl、协议;·tcp协议:标志位(urg/ack/psh/rst/syn/fin)、窗口大小;·icmp协议:itype、icode、icmp_id、icmp_seq等;·someip协议:messageid、length、requestid、messagetype、returncode;·doip协议:datatype、datalength;在实际应用中,由于入侵检测规则数量较大,如果要人工逐条设置费时费力,可以通过现有的入侵检测规则集转换为本发明所设计的入侵检测规则格式,以便快捷设置入侵检测规则。本实施例中,采用snort/suricata规则集中的入侵检测规则转换得到本发明定义的入侵检测规则。以snort规则为例,其由规则头、规则选项组成,其中规则头由规则动作、协议、源信息、方向操作符、目的信息组成,规则选项则由各个关键字组成,详情如下:规则头:·规则动作:alert、drop等;·协议:ip、tcp、udp等;·源信息:源ip、源端口;·方向符:src->dst和src<>dst两种格式;·目的信息:目的ip、目的端口;规则选项:·ip关键字选项:ttl、tos、id、fragbits、ip_proto等;·tcp关键字选项:flags、seq、ack、window等;·icmp关键字选项:itype、icode、icmp_id、icmp_seq等;·其他关键字:sid、gid、threshold等;表3是snort/suricata规则格式与本发明规则格式的对应关系表。表3如表3所示,在将snort/suricata规则集中的入侵检测规则转换得到本发明定义的入侵检测规则时,将snort/suricata规则中的“关键字:sid”作为规则号,从snort/suricata规则中的“规则头”中提取出协议号、源ip地址、源端口、目的ip地址、目的端口,将snort/suricata规则中的“关键字:threshold”作为阈值,将snort/suricata规则中的“关键字:动作”作为动作,统计snort/suricata规则中的规则选项关键字数量作为关键字数量,将每个规则选项关键字作为关键字,并新定义该条入侵检测规则的crc校验,得到本发明定义的入侵检测规则。由于snort/suricata规则是以字符形式存储的,所占资源较多,无法直接在车载mcu中存储应用。通过这种转换,就可以将snort/suricata规则转换成本发明所定义的以二进制形式表示的入侵检测规则,从而节约车载mcu的资源。以下为实际使用的snort/suricata规则与本发明中的规则转换实例:实例一snor/suricata规则:passtcpany60000->anyany(msg:"passrule";sid:100;)本发明规则:规则说明:0x6表示tcp协议,该规则设置了一个白名单,允许通过60000端口发送数据。实例二snor/suricata规则:passtcp128.11.3.3160000->anyany(msg:"passrule";sid:100;)本发明规则:规则说明:该规则设置一个黑名单,禁止ip为128.11.3.31,端口为60000的tcp报文发送到车载mcu。实例三snor/suricata规则:dorpicmpanyany->anyany(msg:"pingofdeathdetected";itype:8;icode:0;sid:101;)本发明规则:规则说明:0x1表示icmp协议,该规则用于禁用ping报文数据。s202:入侵检测规则存储:将步骤s201确定的入侵检测规则采用数组形式在车载mcu的flash或后台服务器中进行存储。表4是本发明中入侵检测规则存储格式表。名称类型描述规则版本uint8规则版本号rulenumuint16标识了规则的总条数rule_lenuint16标识该条规则存储长度ruleids_ethrule_st单条规则内容,.........rule_lenuint16标识该条规则存储长度ruleids_ethrule_st单条规则内容rulecrcuint32所有规则的crc校验表4如表4所示,本发明入侵检测规则在存储时,所存储数据包括规则版本号、规则总条数、每条规则存储长度、每条规则内容以及所有规则的crc校验。s203:入侵检测模块设置:在车载mcu中设置一个入侵检测模块,用于进行入侵检测。入侵检测模块可以集成至mcu固件中,跟随mcu固件启动,启动过程中,会首先进行配置加载,包括运行模式配置、内存管理配置、网络配置、协议裁剪配置等,然后对系统需要使用的内存进行分配,并建立数据采集的环形缓存区,则启动完成。s204:规则获取与解析:在需要执行入侵检测任务时,入侵检测模块首先从车载mcu的flash或后台服务器获取所需使用的规则,然后按照入侵检测规则格式解析规则,并存储在预先建立的数据模块。该数据模块将规则按照协议进行划分,将各个协议存储在动态分配的数组中,单个协议下的多条规则通过链表进行存储。由于车载mcu不具备外网连接能力,所以在从后台服务器获取规则时需要通过车载mpu端的联网节点转发数据请求以及规则数据。s205:数据报文采集与解析:在智能网联汽车通信过程中,入侵检测模块对数据报文进行采集并进行解析,提取出用于入侵检测规则匹配数据报文信息,包括源ip地址、源端口、目的ip地址、目的端口以及关键字信息。一般来说,数据报文采集可以采用函数回调的方式进行,当有网络数据到达时,调用初始化时注册的回调函数,该回调函数即可实现将以太网控制器中的网络数据拷贝到对应的缓冲区中。例如autosar系统中ethhwabstration层会调用eth-ids注册的回调将网络数据报文传递出来,eth-ids通过该回调函数便能获取到所有系统接收到的网络数据报文。在缓冲区的设置方面,可以设置一个环形缓冲区来存储,即根据idseth_rxindication传入的ctrlidx参数来绑定环形缓冲区,并将获取到的网络帧数据放到对应的环形缓冲器中。s206:入侵检测:将步骤s205解析得到的数据报文信息,依次与每条入侵检测规则进行匹配,当匹配成功,则将该数据报文作为威胁数据包,在安全事件日志中记录并上报。对于每条入侵检测规则,可以在入侵检测模块用于存储入侵检测规则的数据模块中挂载了一系列检测函数,每个检测函数对应一个关键字,完成单个函数的检测之后便进入下一个检测函数,以此通过所有检测函数之后即认为特征匹配成功,该网络数据包即为威胁数据包。图3是本实施例中udp协议和idp协议的检测函数链表示例图。受限于车载mcu的资源,所有安全事件需要先上报至车载mpu端进行汇聚存储,再由车载mpu端传输至后台服务器进行后续操作。尽管上面对本发明说明性的具体实施方式进行了描述,以便于本
技术领域
的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本
技术领域
的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1