车载防火墙的数据处理方法、装置及车载防火墙设备与流程

文档序号:30664114发布日期:2022-07-06 02:23阅读:133来源:国知局
1.本发明涉及车载通信
技术领域
:,具体而言,涉及一种车载防火墙的数据处理方法、装置及车载防火墙设备。
背景技术
::2.随着汽车智能化、网联化的逐步推进,汽车在给人们的交通出行带来舒适便捷的同时,系统复杂和丰富的对外通信接口更暴露出车载网络的脆弱,为了保证车载网络的安全性,支持车载信息系统的网络防火墙的设计尤为重要。3.相关技术中,车载防火墙一般是基于目标地址及源地址对数据包进行过滤,对于传输层数据,只能识别tcp/udp类型及使用的端口信息,并对tcp头信息进行简单解析。而针对车载以太应用层协议并没有进行任何安全过滤,应用数据报文都可送达应用层。也就是说,在基于现有的车载以太网协议实现过程中,所有应用层数据报文包括无效甚至已被篡改的数据包都能够经过完整的网络协议栈送达应用层进行处理,所以任何外部设备与车载控制单元ecu的应用层数据交互都会增加车辆受到安全攻击的隐患,这对车内安全造成了巨大威胁。技术实现要素:4.本发明提供了一种车载防火墙的数据处理方法、装置及车载防火墙设备,通过灵活地在数据路径中内核包过滤器流量控制子系统上挂载的触发点上配置应用层协议处理程序,实现对应用层数据报文进行网络统计和流量监控,从而解决了现有车载以太网协议实现可以将所有应用层数据报文都能送达应用层进行处理而导致车载网络存在安全隐患的问题。具体的技术方案如下:5.第一方面,本发明实施例提供了一种车载防火墙的数据处理方法,所述方法包括:6.响应于车载应用层内应用数据包的传输,加载基于内核数据包过滤器机制实现的防火墙应用程序,其中,所述防火墙应用程序包括针对不同应用服务设置的检测子程序链;7.当传输的应用数据包经过所述防火墙应用程序在数据路径中内核包过滤器流量控制子系统上挂载的触发点时,利用尾调机制调用所述防火墙应用程序中的检测子程序链,对所述应用数据包执行安全检测;8.基于所述防火墙应用程序对应的返回值,对所述应用数据包执行处理动作。9.在一种实施方式中,在所述响应于车载应用层内应用数据包的传输,加载基于内核数据包过滤器机制实现的防火墙应用程序之前,所述方法还包括:10.在应用层防火墙的控制层面配置针对不同应用服务的缼省安全策略和防火墙过滤规则,并将所述缺省安全策略和防火墙过滤规则存储至数据共享空间;11.当所述数据共享空间接收到应用层防火墙的数据层面的访问时,以所述数据共享空间作为传输通道,将所述缺省安全策略和防火墙过滤规则编译成使用不同应用服务的过滤字节码后下发至应用层防火墙的数据层面;12.当所述数据共享空间接收到应用层防火墙的控制层面的访问时,所述数据共享空间通过读取所述应用层防火墙的数据层面更新的数据统计信息,并将所述数据统计信息上传至应用层防火墙的控制层面。13.在一种实施方式中在所述在应用层防火墙的控制层面配置针对不同应用服务的缼省安全策略和防火墙过滤规则之后,所述方法还包括:14.针对每种服务类型的应用数据包,配置相应协议规范的缼省安全策略和防火墙过滤规则,使得每个缼省安全策略和/或防火墙过滤规则形成一种检测子程序链。15.在一种实施方式中,所述数据共享空间内的缺省安全策略和防火墙过滤规则按照键/值形式存储,所述在应用层防火墙的控制层面配置针对不同应用服务的缼省安全策略和防火墙过滤规则,并将所述缺省安全策略和防火墙过滤规则存储至数据共享空间,包括:16.获取应用层防火墙的控制层面中不同应用服务对应的使用场景,根据所述不同应用服务对应的使用场景在数据共享空间中创建适用不同使用场景的对象空间,并返回与所述对象空间关联的文件描述符;17.在所述应用层防火墙的控制层面配置不同应用服务的缼省安全策略和防火墙过滤规则,并利用所述与所述对象空间关联的文件描述符将所述缺省安全策略和防火墙过滤规则存储至数据共享空间中相应的对象空间。18.在一种实施方式中,所述在所述应用层防火墙的控制层面配置不同应用服务的缼省安全策略和防火墙过滤规则,并利用所述与所述对象空间关联的文件描述符将所述缺省安全策略和防火墙过滤规则存储至数据共享空间,包括:19.在所述应用层防火墙的控制层面配置不同应用服务的缼省安全策略和防火墙过滤规则,查询适用于不同应用服务存储的文件描述符;20.利用所述适用于不同应用服务存储的文件描述符,将所述缺省安全策略和防火墙过滤规则存储至数据共享空间中适用于相应应用服务的对象空间。21.在一种实施方式中,在所述应用层防火墙的控制层面配置不同应用服务的缼省安全策略和防火墙过滤规则之后,所述方法还包括:22.响应于不同应用服务的缼省安全策略和防火墙过滤规则的操作指令,利用所述与所述对象空间关联的文件描述符对相应应用服务的缼省安全策略和防火墙过滤规则执行处理操作,所述处理操作至少包括查询、添加、更新以及删除中至少一项。23.在一种实施方式中,所述防火墙应用程序设置在内核包过滤器的流量控制子系统,所述加载基于内核数据包过滤器机制实现的防火墙应用程序,包括:24.针对所述流量控制子系统创建绑定在网络接口设备上的排队规则,以使得所述网络接口设备持有分类器和动作,且不执行真正排队;25.在所述流量控制子系统中选择直接动作模式,并利用所述排队规则在数据路径中内核包过滤器流量控制子系统上提供的两个挂载点,获取所述分类器从检测程序文件中分别加载的入口处理函数和出口处理函数;26.根据所述入口处理函数和出口处理函数拦截所述车载应用层传输的应用数据包。27.在一种实施方式中,所述防火墙应用程序中检测子程序链对应的顺序为可动态调整的,所述不同应用服务设置的检测子程序链适配有相应服务类型的程序索引标识,所述当传输的应用数据包经过所述防火墙应用程序在数据路径中内核包过滤器流量控制子系统上挂载的触发点时,利用尾调机制调用所述防火墙应用程序中的检测子程序链,对所述应用数据包执行安全检测,包括:28.当传输的应用数据包经过所述防火墙应用程序在数据路径中内核包过滤器流量控制子系统上挂载的触发点时,根据所述传输的应用数据包所适配目标服务类型确定所述传输的应用数据包对应执行的目标程序索引标识;29.根据所述目标程序索引标识调用所述防火墙应用程序中针对所述传输的应用数据包设置的目标检测子程序链;30.利用所述目标检测子程序链解析所述传输的应用数据包,对所述应用数据包执行安全检测。31.在一种实施方式中,所述利用所述目标检测子程序链解析所述传输的应用数据包,对所述应用数据包执行安全检测,包括:32.按照所述目标检测子程序链中记录的执行顺序遍历调用以及执行检测子程序,解析所述传输的应用数据包中相关信息,读取所述应用数据包中的待检测字段;33.从所述检测子程序中提取缼省安全策略和防火墙过滤规则,利用所述缼省安全策略和防火墙过滤规则对所述待检测字段执行安全检测。34.第二方面,本发明实施例提供了一种车载应用层防火墙设备,包括:应用层防火墙的控制层面、数据共享空间、应用层防火墙的数据层面,所述共享数据空间作为传输通道,分别与所述应用层防火墙的控制层面、所述应用层防火墙的数据层面相连;35.所述应用层防火墙的控制层面,用于针对不同应用服务的缼省安全策略和防火墙过滤规则,并将所述缺省安全策略和防火墙过滤规则存储至数据共享空间;36.所述共享空间,用于当接收到应用层防火墙的数据层面的访问时,将所述缺省安全策略和防火墙过滤规则编译成使用不同应用服务的过滤字节码后下发至应用层防火墙的数据层面,以及当接收到应用层防火墙的控制层面的访问时,通过读取所述应用层防火墙的数据层面更新的数据统计信息,并将所述数据统计信息上传至应用层防火墙的控制层面;37.所述应用层防火墙的数据层面,用于加载基于内核数据包过滤器机制实现的防火墙应用程序,当传输的应用数据包经过所述防火墙应用程序在数据路径中内核包过滤器流量控制子系统上挂载的触发点时,利用尾调机制调用所述防火墙应用程序中的检测子程序链,对所述应用数据包执行安全检测,基于所述防火墙应用程序对应的返回值,对所述应用数据包执行处理动作。38.第三方面,本发明实施例提供了一种车载防火墙的数据处理装置,所述装置包括:39.加载单元,用于响应于车载应用层内数据的传输,加载基于内核数据包过滤器机制实现的防火墙应用程序,其中,所述防火墙应用程序包括针对不同应用服务设置的检测子程序链;40.检测单元,用于当传输的应用数据包经过所述防火墙应用程序在数据路径中内核包过滤器流量控制子系统上挂载的触发点时,利用尾调机制调用所述防火墙应用程序中的检测子程序,对所述应用数据包执行安全检测;41.执行单元,用于基于所述防火墙应用程序对应的返回值,对所述应用数据包执行处理动作。42.在一种实施方式中,所述装置还包括:43.配置单元,用于在所述响应于车载应用层内应用数据包的传输,加载基于内核数据包过滤器机制实现的防火墙应用程序之前,在应用层防火墙的控制层面配置针对不同应用服务的缼省安全策略和防火墙过滤规则,并将所述缺省安全策略和防火墙过滤规则存储至数据共享空间;44.下发单元,用于当所述数据共享空间接收到应用层防火墙的数据层面的访问时,以所述数据共享空间作为传输通道,将所述缺省安全策略和防火墙过滤规则编译成使用不同应用服务的过滤字节码后下发至应用层防火墙的数据层面;45.上传单元,用于当所述数据共享空间接收到应用层防火墙的控制层面的访问时,所述数据共享空间通过读取所述应用层防火墙的数据层面更新的数据统计信息,并将所述数据统计信息上传至应用层防火墙的控制层面。46.在一种实施方式中,所述配置单元,还用于在所述在应用层防火墙的控制层面配置针对不同应用服务的缼省安全策略和防火墙过滤规则之后,针对每种服务类型的应用数据包,配置相应协议规范的缼省安全策略和防火墙过滤规则,使得每个缼省安全策略和/或防火墙过滤规则形成一种检测子程序链。47.在一种实施方式中,所述数据共享空间内的缺省安全策略和防火墙过滤规则按照键/值形式存储,所述配置单元包括:48.获取模块,用于获取应用层防火墙的控制层面中不同应用服务对应的使用场景,根据所述不同应用服务对应的使用场景在数据共享空间中创建适用不同使用场景的对象空间,并返回与所述对象空间关联的文件描述符;49.存储模块,用于在所述应用层防火墙的控制层面配置不同应用服务的缼省安全策略和防火墙过滤规则,并利用所述与所述对象空间关联的文件描述符将所述缺省安全策略和防火墙过滤规则存储至数据共享空间中相应的对象空间。50.在一种实施方式中,所述存储模块,具体用于在所述应用层防火墙的控制层面配置不同应用服务的缼省安全策略和防火墙过滤规则,查询适用于不同应用服务存储的文件描述符;51.所述存储模块,具体还用于利用所述适用于不同应用服务存储的文件描述符,将所述缺省安全策略和防火墙过滤规则存储至数据共享空间中适用于相应应用服务的对象空间。52.在一种实施方式中,所述配置单元还包括:53.操作模块,用于在所述应用层防火墙的控制层面配置不同应用服务的缼省安全策略和防火墙过滤规则之后,响应于不同应用服务的缼省安全策略和防火墙过滤规则的操作指令,利用所述与所述对象空间关联的文件描述符对相应应用服务的缼省安全策略和防火墙过滤规则执行处理操作,所述处理操作至少包括查询、添加、更新以及删除中至少一项。54.在一种实施方式中,所述防火墙应用程序设置在内核数据包过滤器机制的流量控制子系统,所述加载单元包括:55.创建模块,用于针对所述流量控制子系统创建绑定在网络接口设备上的排队规则,以使得所述网络接口设备持有分类器和动作,且不执行真正排队;56.选择模块,用于在所述流量控制子系统中选择直接动作模式,并利用所述排队规则在数据路径中内核包过滤器流量控制子系统上提供的两个挂载点,获取所述分类器从检测程序文件中分别加载的入口处理函数和出口处理函数;57.拦截模块,用于根据所述入口处理函数和出口处理函数拦截所述车载应用层传输的应用数据包。58.在一种实施方式中,所述防火墙应用程序中检测子程序链对应的顺序为可动态调整的,所述不同应用服务设置的检测子程序链适配有相应服务类型的程序索引标识,所述检测单元包括:59.确定模块,用于当传输的应用数据包经过所述防火墙应用程序在数据路径中内核包过滤器流量控制子系统上挂载的触发点时,根据所述传输的应用数据包所适配目标服务类型确定所述传输的应用数据包对应执行的目标程序索引标识;60.调用模块,用于根据所述目标程序索引标识调用所述防火墙应用程序中针对所述传输的应用数据包设置的目标检测子程序链;61.检测模块,用于利用所述目标检测子程序链解析所述传输的应用数据包,对所述应用数据包执行安全检测。62.在一种实施方式中,所述检测模块,具体用于按照所述目标检测子程序链中记录的执行顺序遍历调用以及执行检测子程序,解析所述传输的应用数据包中相关信息,读取所述应用数据包中的待检测字段;63.所述检测模块,具体还用于从所述检测子程序中提取缼省安全策略和防火墙过滤规则,利用所述缼省安全策略和防火墙过滤规则对所述待检测字段执行安全检测。64.第四方面,本发明实施例提供了一种存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现第一方面所述的方法。65.第五方面,本发明实施例提供了一种车载防火墙的数据处理设备,包括:66.一个或多个处理器;67.存储装置,用于存储一个或多个程序,68.其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现第一方面所述的方法。69.由上述内容可知,本发明实施例提供的车载防火墙的数据处理方法及装置,能够响应于车载应用层内应用数据包的传输,加载基于内核数据包过滤器机制实现的防火墙应用程序,该防火墙应用程序包括针对不同应用服务设置的检测子程序链,当传输的应用数据包经过防火墙应用程序在数据路径中内核包过滤器量控制子系统上挂载的触发点时,利用尾调机制调用防火墙应用程序中的检测子程序链,对应用数据包执行安全检测,并基于防火墙应用程序对应的返回值,对应用数据包执行处理动作。由此可知,与现有车载以太网协议实现可以将所有应用层数据报文都能送达应用层进行处理的方式相比,本发明实施例通过灵活地在数据路径中内核包过滤器量控制子系统上挂载的触发点上配置应用层协议处理程序,实现对应用层数据报文进行网络统计和流量监控,从而解决了现有车载以太网协议实现可以将所有应用层数据报文都能送达应用层进行处理而导致车载网络存在安全隐患的问题。70.此外,本实施例还可以实现的技术效果包括:71.通过利用内核过滤机制实时高效的栈前报文过滤功能,同时使用流量控制模块子系统和尾调机制灵活地在数据包入/出口动态挂载/卸载不同的应用层协议处理程序,从而实现对应用层数据报文进行网络统计和流量监控,并且能够有效阻挡不符合防火墙应用程序设定规则的数据包进入/离开车载控制单元。72.当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明73.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。74.图1为本发明实施例提供的一种车载防火墙的数据处理方法的流程示意图;75.图2为本发明实施例提供的车载应用层防火墙的网络部署以及应用数据包传输的流程示意图;76.图3为本发明实施例提供的车载防火墙的数据处理系统的总体架构框图;77.图4为本发明实施例提供的防火墙应用程序中应用层防火墙的控制层面与应用层防火墙的数据层面交互的流程示意图;78.图5为本发明实施例提供的一种车载防火墙的数据处理装置的组成框图。具体实施方式79.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。80.需要说明的是,本发明实施例及附图中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含的一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。81.本发明提供了一种车载应用层防火墙的数据处理车载防火墙的数据处理方法及装置,能够通过灵活地在数据路径中内核数据包过滤器流量控制子系统上挂载的触发点上配置应用层协议处理程序,实现对应用层数据报文进行网络统计和流量监控,从而解决了现有车载以太网协议实现可以将所有应用层数据报文都能送达应用层进行处理而导致车载网络存在安全隐患的问题。本发明实施例的应用防火墙程序关注数据交互的流程,可以分别在数据路径中内核包过滤器流量控制子系统上挂载触发点,从而抓获车载应用层中经过触发点的应用数据包,使得防火墙具备完全可观测性,同时,可针对应用防火墙程序返回对当前数据包的执行动作,执行推送到协议栈或者丢弃的操作,从而减少无效应用层数据包对车载应用层内的资源占用。82.下面对本发明实施例进行详细说明。83.图1为本发明实施例提供的一种车载防火墙的数据处理方法的流程示意图。所述方法可以包括如下步骤:84.101、响应于车载应用层内应用数据包的传输,加载基于内核数据包过滤器机制实现的防火墙应用程序。85.在汽车领域,手机等通信设备控制车辆以及彼此交互的场景不断扩大,车辆网络需求也不断扩展,无论车内的车载控制单元ecu以及车外的通信设备对网络都提出了更多的需求。车载以太网由于具有支持多种网络介质的功能而在汽车领域被广泛应用,这里车载以太网是一组多个不同层次上的协议簇,通常包括应用层、传输层、网络层和数据链路层。车载应用层是车载以太网中的应用层协议,该应用层可根据用户需求为用户提供多种应用协议,如超文本传输协议(http)、基于ip的可扩展的面向服务的中间件(some/ip)、服务发现(servicediscovery)、动态主机配置协议(dhcp)、流媒体服务(streammediaservice)、基于ip的诊断通信(doip)和统一诊断服务(uds)等。86.进一步地,由于防火墙应用程序中设置有防火墙规则,该防火墙规则可以通过命令进行配置,当车载控制单元ecu启动后,需要针对防火墙应用程序中的防火墙规则进行配置及下发,以使得车载控制单元ecu内核可根据防火墙规则执行应用数据包的监控。具体可以在加载基于内核数据包过滤器机制实现的防火墙应用程序之前,在应用层防火墙的控制层面配置针对不同应用服务的缼省安全策略和防火墙过滤规则,并将缺省安全策略和防火墙过滤规则存储至数据共享空间;当数据共享空间接收到应用层防火墙的数据层面的访问时,以数据共享空间作为传输通道,将缺省安全策略和防火墙过滤规则编译成使用不同应用服务的过滤字节码后下发至应用层防火墙的数据层面;当数据共享空间接收到应用层防火墙的控制层面的访问时,该数据共享空间通过读取应用层防火墙的数据层面更新的数据统计信息,并将数据统计信息上传至应用层防火墙的控制层面。87.考虑到不同缼省安全策略和防火墙过滤规则提供给防火墙应用程序的检测方式不同,而不同服务类型的应用数据包在传输过程中需使用不同的协议规范,所以,不同服务类型的应用数据包也相应需要使用不同的缼省安全策略和防火墙过滤规则,这里防火墙应用程序包括针对不同应用服务设置的检测子程序链,具体可以针对每种服务类型的应用数据包,配置相应协议规范的缼省安全策略和防火墙过滤规则,从而使得每个缼省安全策略和/或防火墙过滤规则形成一种检测子程序链。88.可以理解的是,上述缼省安全策略是针对某种应用数据包的缼省处理动作,主要包括丢弃和允许通过两种不同的动作,例如,ebpftables-a-pdoip-pdrop,表示doip数据包的缺省处理动作是丢弃。上述防火墙过滤规则可为用户自定义的防火墙规则,可通过命令进行配置,例如,ebpftables-a-oeth2-pdoip‑‑uds-si0x10-jdrop,表示丢弃接口eth2发出的诊断服务id为0x10的doip数据包。该缼省安全策略和防火墙过滤规则由应用层防火墙的控制层面配置并下存储到数据共享空间,数据共享空间相当于内核中的键/值存储,所以数据共享空间内的缺省安全策略和防火墙过滤规则按照键/值形式存储,无论是应用层防火墙的数据层面,还是应用层防火墙的控制层面都可以对其进行访问,可以在用户态程序和内核之间共享数据,主要用来下发缼省安全策略和防火墙过滤规则,同时还可以上报数据统计信息,例如,不同传输接口收发诊断通信报文的总数、允许通过的诊断通信报文收发总数、被丢弃的诊断报文收发总数、不同消息类型的诊断通信报文收发总数、不同诊断服务标识的诊断通信报文收发总数。89.进一步地,考虑到不同应用服务对应的使用场景,具体在将缺省安全策略和防火墙过滤规则存储至数据共享空间的过程中,可以获取应用层防火墙的控制层面中不同应用服务对应的使用场景,根据不同应用服务对应的使用场景在数据共享空间中创建适用不同使用场景的对象空间,并返回与对象空间关联的文件描述符,进一步在应用层防火墙的控制层面配置不同应用服务的缼省安全策略和防火墙过滤规则,并利用与对象空间关联的文件描述符将缺省安全策略和防火墙过滤规则存储至数据共享空间中相应的对象空间。90.为了便于缺省安全策略和防火墙过滤规则的查询,这里可以在应用层防火墙的控制层面配置不同应用服务的缼省安全策略和防火墙过滤规则的同时生成适用于不同应用服务存储的文件描述符,并将文件描述符与对相应数据共享空间内的对象空间相关联,具体在利用与对象空间关联的文件描述符将缺省安全策略和防火墙过滤规则存储至数据共享空间中相应的对象空间的过程中,可以在应用层防火墙的控制层面配置不同应用服务的缼省安全策略和防火墙过滤规则,查询适用于不同应用服务存储的文件描述符,进一步利用适用于不同应用服务存储的文件描述符,将缺省安全策略和防火墙过滤规则存储至数据共享空间中适用于相应应用服务的对象空间。91.进一步的,在应用层防火墙的控制层面配置不同应用服务的缼省安全策略和防火墙过滤规则之后,考虑到缺省安全策略和防火墙过滤规则的灵活配置,还可以响应于不同应用服务的缼省安全策略和防火墙过滤规则的操作指令,利用与对象空间关联的文件描述符对相应应用服务的缼省安全策略和防火墙过滤规则执行处理操作,这里处理操作至少包括查询、添加、更新以及删除中至少一项。92.在本发明实施例中,由于防火墙应用程序运行在车载控制单元ecu内核中,这里基于内核数据包过滤器机制的防火墙应用程序相当于基于ebpf程序实现的应用层防火墙应用程序,该ebpf程序会附加到指定的代码路径中,当执行到该代码路径时,会执行对应的ebpf程序。具体在加载基于内核数据包过滤器机制实现的防火墙应用程序的过程中,可以针对流量控制子系统创建绑定在网络接口设备上的排队规则,以使得网络接口设备持有分类器和动作,且不执行真正排队;在流量控制子系统中选择直接动作模式,该直接动作模式无需调用外部动作模块,并利用排队规则在数据路径中内核包过滤器流量控制子系统上提供的两个挂载点,获取分类器从检测程序文件中分别加载的入口处理函数和出口处理函数,进一步根据入口处理函数和出口处理函数拦截车载应用层传输的应用数据包。93.具体以下文中描述的为例,进一步对加载防火墙应用程序的过程进行详细描述:94.第一步:创建一个绑定在eth1上的排队规则,该命令可以实现同时持有分类器和动作,但不必执行真正的排队。95.第二步:流量控制子系统选择直接动作模式来加载bpf程序,无需调用外部动作模块,同时利用排队规则提供的两个挂载点ingress和egress,分类器可以从文件ebpftableskern.o中分别加载入口处理函数ip_ingress和ip_egress。96.基于上述实现,所有的应用数据包操作可以放到同一个程序中,应用层防火墙内核处理程序可以直接得到处理动作,包括允许报文通过和丢弃当前报文97.第三步:挂载在流量控制子系统的每个应用层处理程序都为特定的应用服务,分为报文解析、查找规则和执行动作三个部分,实现按既定规则拦截进出ecu应用层报文的功能。利用流量控制子系统的尾调机制可以自由地从一个应用程序调用到另一个应用程序,将不同的应用程序分解为独立的逻辑组件,组成不同的应用程序处理链。98.例如,uds诊断协议是基于doip的应用协议,这里充分利用了流量控制子系统的尾调机制,可以只加载doip防火墙应用程序,也可以只加载uds防火墙应用程序,也可以同时加载uds和doip的防火墙应用程序,提高代码的重用性,增强应用层防火墙系统的灵活性。99.102、当传输的应用数据包经过所述防火墙应用程序在数据路径中内核包过滤器流量控制子系统上挂载的触发点时,利用尾调机制调用所述防火墙应用程序中的检测子程序链,对所述应用数据包执行安全检测。100.其中,不同应用服务设置的检测子程序链适配有相应服务类型的程序索引标识,尾调机制可灵活的根据不同服务类型的程序索引标识从内核文件中嫁接不同的防火墙应用程序中的检测子程序链,例如,程序索引标识key0主要处理doip报文,程序索引标识key1在doip的基础上处理uds报文。具体可以当传输的应用数据包经过防火墙应用程序在数据路径中内核包过滤器流量控制子系统上挂载的触发点时,根据传输的应用数据包所适配目标服务类型确定传输的应用数据包对应执行的目标程序索引标识;并根据目标程序索引标识调用防火墙应用程序中针对传输的应用数据包设置的目标检测子程序链;进一步利用目标检测子程序链解析传输的应用数据包,对应用数据包执行安全检测。101.具体在利用目标检测子程序链解析传输的应用数据包的过程中,可以按照目标检测子程序链中记录的执行顺序遍历调用以及执行检测子程序,解析传输的应用数据包中相关信息,读取应用数据包中的待检测字段,进一步从检测子程序中提取缼省安全策略和防火墙过滤规则,利用缼省安全策略和防火墙过滤规则对待检测字段执行安全检测。102.103、基于所述防火墙应用程序对应的返回值,对所述应用数据包执行处理动作。103.可以理解的是,具体在配置防火墙安全测策略时,会预先明确指定入/出口对应的检测内容,并基于该检测内容来确定不同返回值的处理动作,例如,ebpftables-a-ieth1-pdoip‑‑target-address0x2112-jdrop,表示丢弃接口eth1收到的诊断目标地址target-address为0x2112的doip报文;ebpftables-a-oeth1-pdoip‑‑uds-si0x27-jaccept,表示允许接口eth1发出诊断服务id为0x27(安全访问)的doip报文。104.本发明实施例提供的车载防火墙的数据处理方法,能够响应于车载应用层内应用数据包的传输,加载基于内核数据包过滤器机制实现的防火墙应用程序,该防火墙应用程序包括针对不同应用服务设置的检测子程序链,当传输的应用数据包经过防火墙应用程序在数据路径中内核包过滤器流量控制子系统上挂载的触发点时,利用尾调机制调用防火墙应用程序中的检测子程序链,对应用数据包执行安全检测,并基于防火墙应用程序对应的返回值,对应用数据包执行处理动作。由此可知,与现有车载以太网协议实现可以将所有应用层数据报文都能送达应用层进行处理的方式相比,本发明实施例通过灵活地在数据路径中内核包过滤器流量控制子系统上挂载的触发点上配置应用层协议处理程序,实现对应用层数据报文进行网络统计和流量监控,从而解决了现有车载以太网协议实现可以将所有应用层数据报文都能送达应用层进行处理而导致车载网络存在安全隐患的问题。105.在实际应用场景中,车载控制单元ecu作为控制主体,通过将基于内核数据包过滤器机制实现的防火墙应用程序运行在车载控制单元ecu内,能够针对车载应用层内传输的数据包进行监控,从而阻止不符合防火墙设定规则的应用数据包的进入和/或离开。具体车载应用层防火墙的网络部署以及应用数据包传输的流程如图2所示,包括如下步骤:106.s200、启动ecu后,加载基于ebpf实现的应用层防火墙应用程序,下发防火墙安全策略,该安全策略包括缼省省安全策略和用户自定义的防火墙规则。107.s201、车载网络接入的外部设备(比如诊断设备)发送应用层报文到达ecu后,应用层防火墙支持针对特定字段的信息进行过滤,根据配置的安全策略对收到的报文进行解析、匹配。如果当前报文不符合防火墙安全策略,则在入接口直接丢弃该报文。108.s202、如果外部设备发送的应用层报文符合防火墙安全策略,则防火墙放行,该报文可以进行后续处理。109.s203、在应用层报文准备离开ecu时,同样根据配置的安全策略对待发出的报文进行检测,只有符合防火墙安全策略,才可以顺利地把当前数据包发到目的ecu。110.s204、如果待发出的报文不符合防火墙策略,此时防火墙也会丢弃该报文,避免对目的ecu造成潜在攻击。111.基于上述实施例,为了实现基于ebpf的车载应用层防火墙,本发明的另一实施例提供了一种车载防火墙的数据处理系统,该系统的总体框架如图3所示,基于现有的网络数据处理包框架,该框架图主要包括新增的三个组件:应用层防火墙的控制层面31、数据共享空间32、应用层防火墙的数据层面33,所述共享数据空间32作为传输通道,分别与所述应用层防火墙的控制层面31、所述应用层防火墙的数据层面相连33;112.所述应用层防火墙的控制层面31,可以用于针对不同应用服务的缼省安全策略和防火墙过滤规则,并将所述缺省安全策略和防火墙过滤规则存储至数据共享空间32;113.所述共享空间32,用于当接收到应用层防火墙的数据层面33的访问时,将所述缺省安全策略和防火墙过滤规则编译成使用不同应用服务的过滤字节码后下发至应用层防火墙的数据层面33,以及当接收到应用层防火墙的控制层面31的访问时,通过读取所述应用层防火墙的数据层面33更新的数据统计信息,并将所述数据统计信息上传至应用层防火墙的控制层面31;114.所述应用层防火墙的数据层面33,用于加载基于内核数据包过滤器机制实现的防火墙应用程序,当传输的应用数据包经过所述防火墙应用程序在数据路径中内核包过滤器流量控制子系统上挂载的触发点时,利用尾调机制调用所述防火墙应用程序中的检测子程序链,对所述应用数据包执行安全检测,基于所述防火墙应用程序对应的返回值,对所述应用数据包执行处理动作。115.下面具体对每个组件进行详细阐述:116.c1:应用层防火墙的控制层面,其功能主要包括:配置针对不同应用的缼省安全策略;动态添加/删除防火墙过滤规则;提供应用层报文的数据统计;对进出ecu的应用数据包通过日志进行记录,并能够主动对可以数据发出通知。117.比如,从某个接口持续收到不符合协议规范的应用报文,则怀疑该应用报文可能被篡改,可以下发命令不允许这个接口再接收这种应用报文;或者,车载ecu规定某诊断设备的ip地址和逻辑地址分别是1.1.1.1和0x1234,此时如果ecu收到的诊断报文ip地址是1.1.1.1,但逻辑地址是0x4321,则怀疑该诊断设备是伪装设备或已经受到攻击,此时下发命令丢弃此类报文并记录日志。118.c2:数据共享空间,相当于应用层防火墙存储过滤规则和统计信息的内存空间,即bpfmaps,主要用来下发缼省策略和用户配置的过滤规则,同时还可以上报数据统计信息,是应用层防火墙的控制层面和数据层面之间的高效数据传输通道。119.下发过程是指当系统下发缺省策略或者用户自定义过滤规则时,用户态程序利用系统调用根据使用场景创建合适的bpfmap,并会返回一个关联这个map对象的文件描述符,后续用户态程序可以用这个文件描述符对相应的防火墙规则进行查找、添加、更新、删除操作;上报过程主要是指把内核中更新的统计信息等数据利用bpfmap回传至用户空间。120.c3:应用层防火墙的数据层面,分别在流量控制子系统挂载应用层ebpf入口和出口的检测子程序链,完成检查和处理ecu所有应用数据包的功能。入口检测是在应用数据包进入网络协议栈之前进行过滤检查,只将符合条件的应用数据包由内核空间推送到用户空间,大大提升了处理效率;出口检测是在应用数据包从当前ecu发出之前,只将符合条件的应用数据包由内核空间发出,降低对其他ecu的入侵风险。121.进一步地,基于图3所示的总体框架图,可以看到c1和c2以及c2和c3之间分别存在双向控制数据流,用来下发过滤规则和上传统计数据,此时应用数据包的处理流程如下:122.接收数据流:硬件收包-》创建sk_buff-》ebpftc入口应用层检测程序-》网络协议栈(ip-tcp/udp-socket)-》应用层。123.发送数据流:应用层-》网络协议栈(socket-tcp/udp-ip)-》ebpftc出口应用层检测程序-》硬件发包。124.基于图3中车载防火墙的数据处理系统的总体架构框图,为了进一步深入了解ebpf实现车载应用层防火墙功能的实施细节,图4为本发明实施例提供的防火墙应用程序中应用层防火墙的控制层面与应用层防火墙的数据层面交互的流程示意图,如图4所示,上述防火墙应用程序可以分为用户空间程序和内核程序两大部分:125.针对用户空间程序,首先会加载针对不同应用的缼省应用策略,例如,默认允许所有的诊断报文通过;其次,不同的用户还可以自定义不同的应用层过滤规则,例如,不允许某个ecu接收uds服务id为0x27(安全访问)的诊断报文。这里用户空间程序负责将应用层过滤规则编译成bpf字节码并下发到内核程序。此外,用户空间程序还负责读取内核程序回传的应用层报文统计信息和事件详情,例如,doip不同类型payloadtype的收发报文统计,uds不同服务id的收发报文统计。用户空间通过多种类型的bpfmap与内核程序通信。126.针对内核程序,主要从以下三个方面体现出充分利用ebpf的流量控制子系统和尾调机制来实现高速灵活的车载应用层的防火墙功能。第一、在解析传输的应用数据包时需要大量协议相关的信息,如ip、端口、协议类型等,而流量控制子系统的输入元数据会放入至内核处理网络分组的缓存sk_buff中,所以应用层数据均可直接利用sk_buff读取到相应的字段;第二,在车载应用层关注数据交互的过程,流量控制子系统ebpf程序可以分别在数据路径中内核包过滤器流量控制子系统上挂载两个触发点,所以每个进入或离开车载ecu的应用数据包都会经过这两个触发点,使得防火墙具备完全可观测性,同时流量控制子系统可针对程序返回值直接对当前应用数据包执行动作,或者推送到协议栈,或者直接丢弃;第三,这里防火墙应用程序中检测子程序链对应的顺序为可动态调整的,可根据应用需求灵活调整检测子程序对应的执行顺序,进而保证车载网络的安全性。127.基于上述实施例,本发明的另一实施例提供了一种车载防火墙的数据处理装置,如图5所示,所述装置包括:128.加载单元41,可以用于响应于车载应用层内数据的传输,加载基于内核数据包过滤器机制实现的防火墙应用程序,其中,所述防火墙应用程序包括针对不同应用服务设置的检测子程序链;129.检测单元42,可以用于当传输的应用数据包经过所述防火墙应用程序在数据路径中内核包过滤器流量控制子系统上挂载的触发点时,利用尾调机制调用所述防火墙应用程序中的检测子程序,对所述应用数据包执行安全检测;130.执行单元43,可以用于基于所述防火墙应用程序对应的返回值,对所述应用数据包执行处理动作。131.在实际应用场景中,所述装置还包括:132.配置单元,可以用于在所述响应于车载应用层内应用数据包的传输,加载基于内核数据包过滤器机制实现的防火墙应用程序之前,在应用层防火墙的控制层面配置针对不同应用服务的缼省安全策略和防火墙过滤规则,并将所述缺省安全策略和防火墙过滤规则存储至数据共享空间;133.下发单元,可以用于当所述数据共享空间接收到应用层防火墙的数据层面的访问时,以所述数据共享空间作为传输通道,将所述缺省安全策略和防火墙过滤规则编译成使用不同应用服务的过滤字节码后下发至应用层防火墙的数据层面;134.上传单元,可以用于当所述数据共享空间接收到应用层防火墙的控制层面的访问时,所述数据共享空间通过读取所述应用层防火墙的数据层面更新的数据统计信息,并将所述数据统计信息上传至应用层防火墙的控制层面。135.在实际应用场景中,所述配置单元,还可以用于在所述在应用层防火墙的控制层面配置针对不同应用服务的缼省安全策略和防火墙过滤规则之后,针对每种服务类型的应用数据包,配置相应协议规范的缼省安全策略和防火墙过滤规则,使得每个缼省安全策略和/或防火墙过滤规则形成一种检测子程序链。136.在实际应用场景中,所述数据共享空间内的缺省安全策略和防火墙过滤规则按照键/值形式存储,所述配置单元包括:137.获取模块,可以用于获取应用层防火墙的控制层面中不同应用服务对应的使用场景,根据所述不同应用服务对应的使用场景在数据共享空间中创建适用不同使用场景的对象空间,并返回与所述对象空间关联的文件描述符;138.存储模块,可以用于在所述应用层防火墙的控制层面配置不同应用服务的缼省安全策略和防火墙过滤规则,并利用所述与所述对象空间关联的文件描述符将所述缺省安全策略和防火墙过滤规则存储至数据共享空间中相应的对象空间。139.在实际应用场景中,所述存储模块,具体可以用于在所述应用层防火墙的控制层面配置不同应用服务的缼省安全策略和防火墙过滤规则,查询适用于不同应用服务存储的文件描述符;140.所述存储模块,具体还可以用于利用所述适用于不同应用服务存储的文件描述符,将所述缺省安全策略和防火墙过滤规则存储至数据共享空间中适用于相应应用服务的对象空间。141.在实际应用场景中,所述配置单元还包括:142.操作模块,可以用于在所述应用层防火墙的控制层面配置不同应用服务的缼省安全策略和防火墙过滤规则之后,响应于不同应用服务的缼省安全策略和防火墙过滤规则的操作指令,利用所述与所述对象空间关联的文件描述符对相应应用服务的缼省安全策略和防火墙过滤规则执行处理操作,所述处理操作至少包括查询、添加、更新以及删除中至少一项。143.在实际应用场景中,所述防火墙应用程序设置在内核数据包过滤器机制的流量控制子系统,所述加载单元41包括:144.创建模块,可以用于针对所述流量控制子系统创建绑定在网络接口设备上的排队规则,以使得所述网络接口设备持有分类器和动作,且不执行真正排队;145.选择模块,可以用于在所述流量控制子系统中选择直接动作模式,并利用所述排队规则在数据路径中内核包过滤器流量控制子系统上提供的两个挂载点,获取所述分类器从检测程序文件中分别加载的入口处理函数和出口处理函数;146.拦截模块,可以用于根据所述入口处理函数和出口处理函数拦截所述车载应用层传输的应用数据包。147.在实际应用场景中,所述防火墙应用程序中检测子程序链对应的顺序为可动态调整的,所述不同应用服务设置的检测子程序链适配有相应服务类型的程序索引标识,所述检测单元42包括:148.确定模块,可以用于当传输的应用数据包经过所述防火墙应用程序在数据路径中内核包过滤器流量控制子系统上挂载的触发点时,根据所述传输的应用数据包所适配目标服务类型确定所述传输的应用数据包对应执行的目标程序索引标识;149.调用模块,可以用于根据所述目标程序索引标识调用所述防火墙应用程序中针对所述传输的应用数据包设置的目标检测子程序链;150.检测模块,可以用于利用所述目标检测子程序链解析所述传输的应用数据包,对所述应用数据包执行安全检测。151.在实际应用场景中,所述检测模块,具体用于按照所述目标检测子程序链中记录的执行顺序遍历调用以及执行检测子程序,解析所述传输的应用数据包中相关信息,读取所述应用数据包中的待检测字段;152.所述检测模块,具体还用于从所述检测子程序中提取缼省安全策略和防火墙过滤规则,利用所述缼省安全策略和防火墙过滤规则对所述待检测字段执行安全检测。153.基于上述方法实施例,本发明的另一实施例提供了一种存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现上述方法。154.基于上述实施例,本发明的另一实施例提供了一种车载防火墙的数据处理设备,包括:155.一个或多个处理器;156.存储装置,用于存储一个或多个程序,157.其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的方法。158.上述系统、装置实施例与方法实施例相对应,与该方法实施例具有同样的技术效果,具体说明参见方法实施例。装置实施例是基于方法实施例得到的,具体的说明可以参见方法实施例部分,此处不再赘述。本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。159.本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。160.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1