车载系统的主动防御方法、装置、电子设备和存储介质与流程
未命名
10-08
阅读:134
评论:0
1.本公开涉及技术领域,尤其涉及一种车载系统的主动防御方法、装置、电子设备和存储介质。
背景技术:
2.目前,车辆上搭载的车载系统是一个相对复杂的系统,既包含了车载娱乐系统,又包含了车载芯片系统。其中,车载娱乐系统可以包含汽车中控台上的车载大屏的车载大屏系统,以及车载大屏系统上装载的各类应用程序;车载芯片系统可以包含汽车内各种电子控制单元(electronic control unit,ecu)的控制系统。可以说,车载系统是车辆正常行驶以及为用户提供各类智能服务的基础。因此,有必要对车载系统进行主动安全防御。在对车载系统进行主动安全防御的过程中,如何对访问车载系统内核的用户态进程进行有效访问控制,对于保证车辆的车载系统的安全性以及稳定性等性能是十分重要的。
技术实现要素:
3.本公开提出一种车载系统的主动防御方法、装置、电子设备和存储介质,,旨在至少在一定程度上解决相关技术中的技术问题之一。
4.本公开一方面实施例提出了一种车载系统的主动防御方法,包括:在检测到车载系统内核的系统调用函数被用户态进程调用时,调用所述车载系统内核的安全框架中的钩子函数,以通过所述钩子函数中的bpf程序对所述用户态进程进行安全审计,以得到所述用户态进程的安全审计结果;获取所述钩子函数返回的所述安全审计结果;根据所述安全审计结果,确定是否允许所述用户态进程调用所述系统调用函数。
5.本公开另一方面方面实施例提出了一种车载系统的主动防御装置,包括:调用模块,用于在检测到车载系统内核的系统调用函数被用户态进程调用时,调用所述车载系统内核的安全框架中的钩子函数,以通过所述钩子函数中的柏克莱封包过滤器(berkeley packet filter)bpf程序对所述用户态进程进行安全审计,以得到所述用户态进程的安全审计结果;接收模块,用于获取所述钩子函数返回的所述安全审计结果;确定模块,用于根据所述安全审计结果,确定是否允许所述用户态进程调用所述系统调用函数。
6.本公开另一方面实施例提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如前述一方面所述的方法。
7.本公开另一方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述一方面所述的方法。
8.本公开另一方面实施例提出了一种计算机程序产品,其上存储有计算机程序,所述程序被处理器执行时实现如前述一方面所述的方法。
9.本公开提出的车载系统的主动防御方法、装置、电子设备和存储介质,在检测到车载系统内核的系统调用函数被用户态进程调用时,调用车载系统内核的安全框架中的钩子
函数,以通过钩子函数中的bpf程序对用户态进程进行安全审计,以得到用户态进程的安全审计结果,以及获取钩子函数返回的安全审计结果;根据安全审计结果,确定是否允许用户态进程调用系统调用函数。由此,在用户态进程对车载系统内核中的系统调用函数进行调用时,基于车载系统内核的钩子函数中的bpf程序对该用户态进程进行安全审计,并根据安全审计结果,对该用户态进程是否可调用该系统调用函数进行控制,实现了对访问车载系统内核的用户态进程进行有效控制。
10.本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
11.本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
12.图1为本公开实施例所提供的一种车载系统的主动防御方法的流程示意图;
13.图2为本公开实施例提供的另一种车载系统的主动防御方法的流程示意图;
14.图3为本公开实施例提供的另一种车载系统的主动防御方法的流程示意图;
15.图4为本公开实施例提供的一种车载系统的主动防御装置的结构示意图;
16.图5为本公开实施例提供的一种电子设备的结构框图。
具体实施方式
17.下面详细描述本公开的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
18.下面参考附图描述本公开实施例的车载系统的主动防御方法、装置、电子设备和存储介质。
19.图1为本公开实施例所提供的一种车载系统的主动防御方法的流程示意图。
20.本公开实施例的车载系统的主动防御方法的执行主体为车载系统的主动防御装置,该装置可以为电子设备,也可以被配置在电子设备中,以实现对车载系统进行主动防御。其中,电子设备,可以为能够安装在任意车辆中的设备,比如车载控制器,车载电脑等,也可以为手机、可穿戴设备等设备,本公开对此不作限制。其中,需要说明的是,本公开实施例以车载系统的主动防御装置配置在电子设备中,电子设备为车载电脑为例进行说明。
21.如图1所示,该方法可以包括以下步骤:
22.步骤101,在检测到车载系统内核的系统调用函数被用户态进程调用时,调用车载系统内核的安全框架中的钩子函数,以通过钩子函数中的bpf程序对用户态进程进行安全审计,以得到用户态进程的安全审计结果。
23.其中,用户态进程,是运行在车载系统的用户态的进程。
24.其中,上述车载系统所对应的操作系统可以为任意适用于车辆上的车载系统所使用的操作系统。例如,安卓android操作系统、linux操作系统、unix操作系统等,该实施例对车载系统所对应的操作系统不作具体限定。
25.其中,本公开的实施例中以车载系统的操作系统为linux操作系统为例进行示例
性描述。在车载系统的操作系统为linux操作系统的情况下,车载系统内核中的安全框架可以为linux安全模块(linux security module,lsm)框架。其中,lsm框架是linux操作系统内核的一个轻量级的安全访问控制框架。
26.其中,车载系统内核,是指车载系统的内核态,也可以说是车载系统的内核空间。
27.在一些实施例中,在用户态进程进行运行时,用户态进程需要对车载系统内核的系统调用函数进行调用,以使用车载系统内核提供的资源。
28.其中,车载系统内核所提供的资源可以包括但不限于中央处理器(central processing unit,cpu)资源、存储资源、输入/输出(input/output,i/o)资源等。
29.在一些实施例中,用户态进程可以向车载系统内核的系统调用函数发送访问请求,对应地,如果接收到用户态进程针对系统调用函数的访问请求,则确定检测到车载系统内核中的系统调用函数被用户态进程调用。
30.举例而言,在车载系统中的操作系统为linux操作系统的情况下,在用户态进程进行运行时,为了可以使用车载系统内核所提供的资源,用户态进程需要调用车载系统内核中的系统调用函数为syscall函数。对应地,在检测到车载系统内核中的syscall函数被用户态进程调用情况下,可调用车载系统内核的lsm框架中的钩子函数为linux_binprm hook函数。对应地,该linux_binprm hook函数中存在bpf程序。此时,linux_binprm hook函数执行bpf程序。对应地,bpf程序可对用户态进程进行安全审计,以得到该用户态进程的安全审计结果。
31.其中,柏克莱封包过滤器(berkeley packet filter,bpf)程序是指基于预先设计的安全审计规则进行编码而形成的安全审计程序,该安全审计程序可以对用户态进程进行安全审计。
32.在一些实施例中,可通过bpf中的安全审计规则对用户态进程进行安全审计,以得到用户态进程的安全审计结果。
33.具体地,可确定该用户态进程是否符合安全审计规则,如果该用户态进程符合安全审计规则,则确定该用户态进程通过安全审计,并生成该用户态进程通过安全审计的安全审计结果。在另一些实施例中,如果该用户态进程不符合安全审计规则,则确定该用户态进程未通过安全审计,并生成该用户态进程未通过安全审计的安全审计结果。
34.在一些实施例中,在检测到车载系统内核的系统调用函数被用户态进程调用时,可从车载系统内核的lsm框架中获取与该系统调用函数对应的钩子函数,并通过该钩子函数中的bpf程序对用户态进程进行安全审计,以得到用户态进程的安全审计结果。由此,实现了通过以系统调用函数对应的钩子函数中的bpf程序,对用户态进程进行安全审计。
35.步骤102,获取钩子函数返回的安全审计结果。
36.在一些实施例中,在检测到bpf程序对用户态进程完成安全审计,并给出用户态进程的安全审计结果后,可接收钩子函数返回的安全审计结果。
37.其中,在一些实施例中,安全审计结果,用于对用户态进程是否通过安全审计进行表示,例如,可通过指定标记的取值对用户态进程是否通过安全审计进行表示,比如,指定标记的取值为零时,表示用户态进程未通过安全审计,指定标记的取值为1的时,表示用户态程序通过安全审计。
38.步骤103,根据安全审计结果,确定是否允许用户态进程调用系统调用函数。
39.在一些实施例中,在安全审计结果为用户态进程通过安全审计时,允许用户态进程调用系统调用函数。
40.具体地,在根据安全审计结果中指定标记的取值,确定安全审计结果为用户态进程通过安全审计时,允许用户态进程调用系统调用函数。
41.对应地,在允许用户态进程调用系统调用函数的情况下,在车载系统内核中保存用户态进程的可执行文件的相关信息,以使得车载系统内核基于所保存的相关信息运行可执行文件。
42.在一些示例性的实施方式中,在上述车载系统的操作系统为linux操作系统的情况下,可在linux_binprm结构体保存用户态进程的可执行文件的相关信息。
43.其中,linux_binprm结构体是linux操作系统中用于保存用户态进程的可执行文件的相关信息的一种结构体。
44.其中,车载系统内核基于所保存的相关信息运行可执行文件的具体过程可参见相关技术,该实施例对此不作具体限定。
45.其中,可执行文件的相关信息可以包括但不限于可执行文件的头128字节、文件名、命令行参数、环境变量、文件路径、内存描述符信息等,该实施例对可执行文件的相关信息不作具体限定,在实际应用中可根据实际需求确定所要保存的可执行文件的相关信息。
46.在另一些实施例中,在安全审计结果为用户态进程未通过安全审计时,禁止用户态进程调用系统调用函数,从而使得未通过安全审计的用户态进程无法使用车载系统内核的相关资源,避免未通过安全审计的用户态进程访问车载系统内核的相关资源,实现了对车载系统内核中相关资源保护的同时,实现了对用户态进程地主动安全防御控制。
47.本公开实施例的车载系统的主动防御方法,在检测到车载系统内核的系统调用函数被用户态进程调用时,调用车载系统内核的安全框架中的钩子函数,以通过钩子函数中的bpf程序对用户态进程进行安全审计,以得到用户态进程的安全审计结果,以及获取钩子函数返回的安全审计结果;根据安全审计结果,确定是否允许用户态进程调用系统调用函数。由此,在用户态进程对车载系统内核中的系统调用函数进行调用时,基于车载系统内核的钩子函数中的bpf程序对该用户态进程进行安全审计,并根据安全审计结果,对该用户态进程是否可调用该系统调用函数进行控制,实现了对访问车载系统内核的用户态进程进行有效控制。
48.基于上述实施例的基础上,为了尽量不用破坏车载系统的原有的安全机制和数据结构,为了可以使用钩子函数中的bpf程序,在一些实施例中,在调用与系统调用函数对应的钩子函数之前,可将bpf程序注入到钩子函数中。
49.下面结合图2对该实施例的方法进行进一步描述,
50.如图2所示,该方法包含以下步骤:
51.步骤201,将bpf程序加载到车载系统内核的bpf虚拟机上中,并在bpf虚拟机上运行bpf程序。
52.在一些实施例中,为了提高执行速度,对于上述bpf程序,可将bpf程序加载到车载系统内核中,并在检测到bpf程序的代码文件为字节码文件的情况下,可将bpf程序的字节码文件编译为机器码文件,并将机器码文件加载到车载系统内核的bpf虚拟机上中,并在bpf虚拟机上运行机器码文件。由此,在bpf虚拟机上运行机器码文件。
53.在另一些示例性的实施方式中,可通过与bpf程序对应的管理工具将bpf程序加载到车载系统内核中。其中,上述管理工具可以为任意具有将bpf程序加载到车载系统内核中的工具,该实施例对上述管理工具不作具体限定。
54.例如,可通过libbpf工具将bpf程序加载到车载系统内核中。
55.为了保证bpf程序安全,在一些实施例中,在将bpf程序加载到车载系统内核中后,可通过bpf验证器对bpf程序的字节码文件进行安全验证,并将通过安全验证的字节码文件转换为机器码文件。
56.步骤202,将bpf虚拟机上运行的bpf程序注入到车载系统内核的lsm框架的钩子函数。
57.步骤203,在检测到车载系统内核的系统调用函数被用户态进程调用时,调用车载系统内核的安全框架中的钩子函数,以通过钩子函数中的bpf程序对用户态进程进行安全审计,以得到用户态进程的安全审计结果。
58.步骤204,获取钩子函数返回的安全审计结果。
59.步骤205,根据安全审计结果,确定是否允许用户态进程调用系统调用函数。
60.其中,需要说明的是,上述步骤203至步骤205的具体实现方式,可参见上述实施例的相关描述,此处不再赘述。
61.在本实施例中,通过将bpf程序加载到车载系统内核中,并将加载到车载系内核中的bpf程序注入到车载系统内核的安全框架中的钩子函数,从而在不破坏车载系统的原有的安全机制和数据结构的情况下,方便地将bpf程序注入到车载系统内核的安全框架中的钩子函数,方便了后续车载内核中的系统调用函数基于该钩子函数中的bpf程序对对应地用户态进程进行安全审。
62.为了以清楚了解本技术,下面结合图3对该实施例的车载系统的主动防御方法进行进一步描述,其中,需要说明的是,本实施例中是以车载系统的操作系统为linux操作系统为例进行描述。如图3所示,该方法可以包括:
63.步骤301,基于针对车载系统的开启启动指令,加载车载系统的启动代码boot rom。
64.步骤302,启动系统启动前引导程序boot loader,并加载到车载系统内核中运行。
65.其中,boot loader是在车载系统内核运行之前运行,并可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用车载系统内核准备好正确的环境。
66.步骤303,启动系统进程swapper。
67.其中,上述系统进程swapper是车载系统的第一个进程,该第一个进程主要是用来在车载系统的初始化阶段从无到有的创建的一个内核线程。
68.其中,需要说明的是,上述第一个进程的进程标识pid为0。
69.步骤304,启动车载系统的第二进程init。
70.其中,需要说明的是,上述第二进程init的进程标识pid为1。
71.其中,第二进程init,用于对车载系统的内核完成一次初始化。
72.需要说明的是,第二进程init在车载系统关闭之前,init进程一直存活,因为init进程创建和监控在车载系统外层执行的所有进程的活动。
73.步骤305,第二进程init启动入侵检测与防御系统idps(intrusion detection and prevention system),并将idps中的bpf程序加载到车载系统内核中。
74.在一些实施例中,可通过libbpf将bpf程序加载到车载系统内核中。
75.步骤306,在内核中对bpf程序进行字节码安全验证,并对通过验证后的bpf程序的字节码文件转换为机器码文件,并通过bpf虚拟机对机器码文件进行运行。
76.步骤307,内核运行时安全工具krsi(kernel runtime security instrumentation)将idps的bpf程序通过lsm注入到钩子函数linux_binprm hook中。
77.步骤308,在检测到用户态进程运行时调用车载系统内核的syscall函数,回调钩子函数linux_binprm hook。
78.步骤309,在钩子函数linux_binprm hook中执行idps的bpf程序,对该用户态进程进行安全审计。
79.步骤310,在该用户态进程通过安全审计的情况下,系统调用函数syscall调用linux_binprm结构体,保存要执行的程序文件相关信息。
80.在本实施例中,在用户态进程在运行时调用系统调用函数syscall时,通过回调已注入的钩子函数linux_binprm hook中的bpf程序对该用户态进程进行安全审计,从而提高了系统入侵检测的准确率。
81.为了实现上述实施例,本公开实施例还提出一种车载系统的主动防御装置。
82.图4为本公开实施例提供的一种车载系统的主动防御装置的结构示意图。
83.如图4所示,该装置可以包括调用模块401、获取模块402和确定模块403,其中:
84.调用模块401,用于在检测到车载系统内核的系统调用函数被用户态进程调用时,调用车载系统内核的安全框架中的钩子函数,以通过钩子函数中的bpf程序对用户态进程进行安全审计,以得到用户态进程的安全审计结果。
85.获取模块402,用于获取钩子函数返回的安全审计结果。
86.确定模块403,用于根据安全审计结果,确定是否允许用户态进程调用系统调用函数。
87.在本公开实施例的一种实现方式中,该装置还可以包括:
88.注入模块(图中未示出),用于将bpf程序注入到钩子函数中。
89.在本公开实施例的一种实现方式中,该装置还可以包括:
90.加载模块(图中未示出),用于将bpf程序加载到车载系统内核的bpf虚拟机上中,并在bpf虚拟机上运行bpf程序。
91.在本公开实施例的一种实现方式中,上述加载模块,具体用于:将bpf程序的字节码文件编译为机器码文件;将机器码文件加载到车载系统内核的bpf虚拟机上中,并在bpf虚拟机上运行机器码文件。
92.在本公开实施例的一种实现方式中,上述确定模块,具体用于:在安全审计结果为用户态进程通过安全审计时,允许用户态进程调用系统调用函数;在安全审计结果为用户态进程未通过安全审计时,禁止用户态进程调用系统调用函数。
93.在本公开实施例的一种实现方式中,该装置还可以包括:
94.保存模块(图中未示出),用于在允许用户态进程调用系统调用函数的情况下,在车载系统内核中保存用户态进程的可执行文件的相关信息,以使得车载系统内核基于所保
存的相关信息运行可执行文件。
95.其中,需要说明的是,前述对方法实施例的解释说明也适用于该实施例的装置,此处不再赘述。
96.本公开实施例的车载系统的主动防御装置,在检测到车载系统内核的系统调用函数被用户态进程调用时,调用车载系统内核的安全框架中的钩子函数,以通过钩子函数中的bpf程序对用户态进程进行安全审计,以得到用户态进程的安全审计结果,以及获取钩子函数返回的安全审计结果;根据安全审计结果,确定是否允许用户态进程调用系统调用函数。由此,在用户态进程对车载系统内核中的系统调用函数进行调用时,基于车载系统内核的钩子函数中的bpf程序对该用户态进程进行安全审计,并根据安全审计结果,对该用户态进程是否可调用该系统调用函数进行控制,实现了对访问车载系统内核的用户态进程进行有效控制。
97.为了实现上述实施例,本公开还提出一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现如前述方法实施例的方法。
98.为了实现上述实施例,本公开还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现如前述方法实施例的方法。
99.为了实现上述实施例,本公开还提出一种计算机程序产品,其上存储有计算机程序,计算机程序被处理器执行时实现如前述方法实施例的方法。
100.图5为本公开实施例提供的一种电子设备的结构框图。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
101.如图5所示,电子设备10包括处理器11,其可以根据存储在只读存储器(rom,read only memory)12中的程序或者从存储器16加载到随机访问存储器(ram,random access memory)13中的程序而执行各种适当的动作和处理。在ram 13中,还存储有电子设备10操作所需的各种程序和数据。处理器11、rom 12以及ram 13通过总线14彼此相连。输入/输出(i/o,input/output)接口15也连接至总线14。
102.以下部件连接至i/o接口15:包括硬盘等的存储器16;以及包括诸如lan(局域网,local area network)卡、调制解调器等的网络接口卡的通信部分17,通信部分17经由诸如因特网的网络执行通信处理;驱动器18也根据需要连接至i/o接口15。
103.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分17从网络上被下载和安装。在该计算机程序被处理器11执行时,执行本公开的方法中限定的上述功能。
104.在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器16,上述指令可由电子设备10的处理器11执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
105.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特
点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
106.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
107.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本公开的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本公开的实施例所属技术领域的技术人员所理解。
108.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
109.应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
110.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
111.此外,在本公开各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机
可读取存储介质中。
112.上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本公开的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本公开的限制,本领域的普通技术人员在本公开的范围内可以对上述实施例进行变化、修改、替换和变型。
技术特征:
1.一种车载系统的主动防御方法,其特征在于,所述方法包括:在检测到车载系统内核的系统调用函数被用户态进程调用时,调用所述车载系统内核的安全框架中的钩子函数,以通过所述钩子函数中的bpf程序对所述用户态进程进行安全审计,以得到所述用户态进程的安全审计结果;获取所述钩子函数返回的所述安全审计结果;根据所述安全审计结果,确定是否允许所述用户态进程调用所述系统调用函数。2.如权利要求1所述的方法,其特征在于,在所述调用与所述系统调用函数对应的钩子函数之前,所述方法还包括:将所述bpf程序注入到所述钩子函数中。3.如权利要求2所述的方法,其特征在于,在所述将所述bpf程序注入到所述钩子函数中之前,所述方法还包括:将所述bpf程序加载到所述车载系统内核的bpf虚拟机上中,并在bpf虚拟机上运行所述bpf程序。4.如权利要求3所述的方法,其特征在于,所述将所述bpf程序加载到所述车载系统内核的bpf虚拟机上中,并在bpf虚拟机上运行所述bpf程序,包括:将所述bpf程序的字节码文件编译为机器码文件;将所述机器码文件加载到所述车载系统内核的bpf虚拟机上中,并在bpf虚拟机上运行所述机器码文件。5.如权利要求1-4任一项所述的方法,其特征在于,所述根据所述安全审计结果,确定是否允许所述用户态进程调用所述系统调用函数,包括:在所述安全审计结果为所述用户态进程通过安全审计时,允许所述用户态进程调用所述系统调用函数;在所述安全审计结果为所述用户态进程未通过安全审计时,禁止所述用户态进程调用所述系统调用函数。6.如权利要求5所述的方法,其特征在于,所述方法还包括:在所述允许所述用户态进程调用所述系统调用函数的情况下,在所述车载系统内核中保存所述用户态进程的可执行文件的相关信息,以使得所述车载系统内核基于所保存的所述相关信息运行所述可执行文件。7.一种车载系统的主动防御装置,其特征在于,所述装置包括:调用模块,用于在检测到车载系统内核的系统调用函数被用户态进程调用时,调用所述车载系统内核的安全框架中的钩子函数,以通过所述钩子函数中的bpf程序对所述用户态进程进行安全审计,以得到所述用户态进程的安全审计结果;获取模块,用于获取所述钩子函数返回的所述安全审计结果;确定模块,用于根据所述安全审计结果,确定是否允许所述用户态进程调用所述系统调用函数。8.如权利要求7所述的装置,其特征在于,所述装置还包括:注入模块,用于将所述bpf程序注入到所述钩子函数中。9.如权利要求8所述的装置,其特征在于,所述装置还包括:加载模块,用于将所述bpf程序加载到所述车载系统内核的bpf虚拟机上中,并在bpf虚
拟机上运行所述bpf程序。10.如权利要求9所述的装置,其特征在于,所述加载模块,具体用于:将所述bpf程序的字节码文件编译为机器码文件;将所述机器码文件加载到所述车载系统内核的bpf虚拟机上中,并在bpf虚拟机上运行所述机器码文件。11.如权利要求7-10任一项所述的装置,其特征在于,所述确定模块,具体用于:在所述安全审计结果为所述用户态进程通过安全审计时,允许所述用户态进程调用所述系统调用函数;在所述安全审计结果为所述用户态进程未通过安全审计时,禁止所述用户态进程调用所述系统调用函数。12.如权利要求11任一项所述的装置,其特征在于,所述装置还包括:保存模块,用于在所述允许所述用户态进程调用所述系统调用函数的情况下,在所述车载系统内核中保存所述用户态进程的可执行文件的相关信息,以使得所述车载系统内核基于所保存的所述相关信息运行所述可执行文件。13.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如权利要求1-6中任一所述的方法。14.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一所述的方法。
技术总结
本公开提出一种车载系统的主动防御方法、装置、电子设备和存储介质,其中,方法包括:在检测到车载系统内核的系统调用函数被用户态进程调用时,调用钩子函数,以通过钩子函数中的BPF程序对用户态进程进行安全审计,以得到用户态进程的安全审计结果,以及获取钩子函数返回的安全审计结果;根据安全审计结果,确定是否允许用户态进程调用系统调用函数。由此,在用户态进程对车载系统内核中的系统调用函数进行调用时,基于车载系统内核的钩子函数中的BPF程序对该用户态进程进行安全审计,并根据安全审计结果,对该用户态进程是否可调用该系统调用函数进行控制,实现了对访问车载系统内核的用户态进程进行有效控制。内核的用户态进程进行有效控制。内核的用户态进程进行有效控制。
技术研发人员:黄太平 谢君
受保护的技术使用者:北京罗克维尔斯科技有限公司
技术研发日:2022.03.23
技术公布日:2023/10/6
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
