汽车车机的接口防护方法及装置转让专利

申请号 : CN201710945066.1

文献号 : CN107608339B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘健皓宋戈

申请人 : 北京奇虎科技有限公司

摘要 :

本发明公开了一种汽车车机的接口防护方法及装置,其中方法包括:确定与接口相对应的调用路径以及调用路径中包含的各个调用节点;针对调用路径中包含的各个调用节点进行监测,生成包含各个调用节点的调用记录的监测结果数据;当监测到针对接口生成的调用指令时,判断监测结果数据中包含的各个调用节点的调用记录是否与接口相对应的调用路径匹配;若否,则拦截调用指令。利用本发明提供的方案,利用汽车卫士客户端中的IDR Tools监测汽车车机的接口,及时发现并阻断非法的调用行为以保障接口不被非法的程序调用。

权利要求 :

1.一种汽车车机的接口防护方法,包括:

确定与所述接口相对应的调用路径以及所述调用路径中包含的各个调用节点;

针对所述调用路径中包含的各个调用节点进行监测,生成包含各个调用节点的调用记录的监测结果数据;

当监测到针对所述接口生成的调用指令时,判断所述监测结果数据中包含的各个调用节点的调用记录是否与所述接口相对应的调用路径匹配;

若否,则拦截所述调用指令;

其中,所述判断所述监测结果数据中包含的各个调用节点的调用记录是否与所述接口相对应的调用路径匹配的步骤具体包括:确定与所述接口相对应的调用路径中包含的调用节点的数量和名称;

根据所述各个调用节点的调用记录确定与所述调用指令相关的调用节点的数量和名称;

判断所述与所述调用指令相关的调用节点的数量和名称与所述调用路径中包含的调用节点的数量和名称是否匹配,根据判断结果确定所述各个调用节点的调用记录与所述接口相对应的调用路径是否匹配。

2.根据权利要求1所述的方法,其中,所述调用节点包括以下中的至少一个:安装包节点、应用程序接口节点、动态链接库节点、与所述接口相连的硬件节点;

则所述针对所述调用路径中包含的各个调用节点进行监测的步骤具体包括:通过在调用节点处设置挂钩函数的方式监测调用节点,和/或,通过获取并解析与调用节点相对应的节点日志的方式监测调用节点。

3.根据权利要求1所述的方法,其中,所述调用路径中进一步包含各个调用节点之间的调用顺序,则所述判断所述监测结果数据中包含的各个调用节点的调用记录是否与所述接口相对应的调用路径匹配的步骤具体包括:根据所述各个调用节点的调用记录确定与所述调用指令相关的调用节点之间的调用顺序;

判断与所述调用指令相关的调用节点之间的调用顺序与所述调用路径中包含的各个调用节点之间的调用顺序是否匹配,根据判断结果确定所述各个调用节点的调用记录与所述接口相对应的调用路径是否匹配。

4.根据权利要求3所述的方法,其中,所述调用路径中进一步包含各个调用节点所对应的调用函数和/或调用参数,则所述判断所述监测结果数据中包含的各个调用节点的调用记录是否与所述接口相对应的调用路径匹配的步骤具体包括:根据所述各个调用节点的调用记录确定与所述调用指令相关的各个调用节点所对应的调用函数和/或调用参数;

判断所述与所述调用指令相关的各个调用节点所对应的调用函数和/或调用参数与所述调用路径中包含的各个调用节点所对应的调用函数和/或调用参数是否匹配,根据判断结果确定所述各个调用节点的调用记录与所述接口相对应的调用路径是否匹配。

5.根据权利要求4所述的方法,其中,所述确定与所述接口相对应的调用路径以及所述调用路径中包含的各个调用节点的步骤具体包括:确定与所述接口相对应的各种类型的调用指令,分别针对每种类型的调用指令,确定与该类型的调用指令相对应的调用路径以及所述调用路径中包含的各个调用节点;

则所述判断所述监测结果数据中包含的各个调用节点的调用记录是否与所述接口相对应的调用路径匹配的步骤具体包括:根据所述调用指令的类型,确定与该类型的调用指令相对应的调用路径,判断所述各个调用节点的调用记录是否与该类型的调用指令相对应的调用路径匹配。

6.根据权利要求1-5任一所述的方法,其中,所述确定与所述接口相对应的调用路径以及所述调用路径中包含的各个调用节点的步骤具体包括:针对多个接口,分别确定与每个接口相对应的调用路径以及所述调用路径中包含的各个调用节点,将各个接口所对应的调用路径与该接口的接口标识关联存储到预设的路径库中;

则当监测到针对所述接口生成的调用指令时,判断所述监测结果数据中包含的各个调用节点的调用记录是否与所述接口相对应的调用路径匹配的步骤具体包括:确定与所述调用指令相对应的接口的接口标识,从所述路径库中获取与所述接口标识关联存储的调用路径,判断所述监测结果数据中包含的各个调用节点的调用记录是否与获取的调用路径匹配。

7.根据权利要求1-5任一所述的方法,其中,所述接口包括:空调开关机接口、和/或空调调温接口。

8.一种汽车车机的接口防护装置,包括:

确定模块,适于确定与所述接口相对应的调用路径以及所述调用路径中包含的各个调用节点;

监测模块,适于针对所述调用路径中包含的各个调用节点进行监测,生成包含各个调用节点的调用记录的监测结果数据;

判断模块,适于当监测到针对所述接口生成的调用指令时,判断所述监测结果数据中包含的各个调用节点的调用记录是否与所述接口相对应的调用路径匹配;若否,则拦截所述调用指令;

其中,所述判断模块进一步包括:确定与所述接口相对应的调用路径中包含的调用节点的数量和名称;

根据所述各个调用节点的调用记录确定与所述调用指令相关的调用节点的数量和名称;

判断所述与所述调用指令相关的调用节点的数量和名称与所述调用路径中包含的调用节点的数量和名称是否匹配,根据判断结果确定所述各个调用节点的调用记录与所述接口相对应的调用路径是否匹配。

9.根据权利要求8所述的装置,其中,所述调用节点包括以下中的至少一个:安装包节点、应用程序接口节点、动态链接库节点、与所述接口相连的硬件节点;

则监测模块进一步适于:通过在调用节点处设置挂钩函数的方式监测调用节点,和/或,通过获取并解析与调用节点相对应的节点日志的方式监测调用节点。

10.根据权利要求8所述的装置,其中,所述调用路径中进一步包含各个调用节点之间的调用顺序,则判断模块进一步适于:根据所述各个调用节点的调用记录确定与所述调用指令相关的调用节点之间的调用顺序;

判断与所述调用指令相关的调用节点之间的调用顺序与所述调用路径中包含的各个调用节点之间的调用顺序是否匹配,根据判断结果确定所述各个调用节点的调用记录与所述接口相对应的调用路径是否匹配。

11.根据权利要求10所述的装置,其中,所述调用路径中进一步包含各个调用节点所对应的调用函数和/或调用参数,则判断模块进一步适于:根据所述各个调用节点的调用记录确定与所述调用指令相关的各个调用节点所对应的调用函数和/或调用参数;

判断所述与所述调用指令相关的各个调用节点所对应的调用函数和/或调用参数与所述调用路径中包含的各个调用节点所对应的调用函数和/或调用参数是否匹配,根据判断结果确定所述各个调用节点的调用记录与所述接口相对应的调用路径是否匹配。

12.根据权利要求11所述的装置,其中,确定模块进一步适于:

确定与所述接口相对应的各种类型的调用指令,分别针对每种类型的调用指令,确定与该类型的调用指令相对应的调用路径以及所述调用路径中包含的各个调用节点;

则所述判断所述监测结果数据中包含的各个调用节点的调用记录是否与所述接口相对应的调用路径匹配的步骤具体包括:根据所述调用指令的类型,确定与该类型的调用指令相对应的调用路径,判断所述各个调用节点的调用记录是否与该类型的调用指令相对应的调用路径匹配。

13.根据权利要求8-12任一所述的装置,其中,确定模块进一步适于:针对多个接口,分别确定与每个接口相对应的调用路径以及所述调用路径中包含的各个调用节点,将各个接口所对应的调用路径与该接口的接口标识关联存储到预设的路径库中;

判断模块进一步适于:确定与所述调用指令相对应的接口的接口标识,从所述路径库中获取与所述接口标识关联存储的调用路径,判断所述监测结果数据中包含的各个调用节点的调用记录是否与获取的调用路径匹配。

14.根据权利要求8-12任一所述的装置,其中,所述接口包括:空调开关机接口、和/或空调调温接口。

15.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的汽车车机的接口防护方法对应的操作。

16.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-7中任一项所述的汽车车机的接口防护方法对应的操作。

说明书 :

汽车车机的接口防护方法及装置

技术领域

[0001] 本发明涉及计算机技术领域,具体涉及一种汽车车机的接口防护方法及装置。

背景技术

[0002] 汽车车机的接口是信息传递的入口,通过调用汽车车机的接口能够实现对汽车车机的功能控制;与此同时,静态的接口防护是接口调用安全最基本的保障,例如签名机制,其依赖于底层不被破解。
[0003] 然而,攻击者可以通过对源程序文件的修改的直接方式破坏已有的静态防护体系,一旦拿到了root权限,汽车车机系统的安全机制就会被破坏,黑客便可以通过欺骗的手段伪造用户身份标识(user identification,简称UID)直接调用底层的动态链接库文件达到控制汽车车机的目的,或者将其他应用伪装成拥有系统签名的应用直接调用汽车车机的接口。
[0004] 与此同时,现有技术中并没有提供一种能够在静态的接口防护体系失效的情况下仍能够对汽车车机的接口进行防护的方法。

发明内容

[0005] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的汽车车机的接口防护方法及装置。
[0006] 根据本发明的一个方面,提供了一种汽车车机的接口防护方法,包括:
[0007] 确定与接口相对应的调用路径以及调用路径中包含的各个调用节点;
[0008] 针对调用路径中包含的各个调用节点进行监测,生成包含各个调用节点的调用记录的监测结果数据;
[0009] 当监测到针对接口生成的调用指令时,判断监测结果数据中包含的各个调用节点的调用记录是否与接口相对应的调用路径匹配;
[0010] 若否,则拦截调用指令。
[0011] 根据本发明的另一方面,提供了一种汽车车机的接口防护装置,包括:
[0012] 确定模块,适于确定与接口相对应的调用路径以及调用路径中包含的各个调用节点;
[0013] 监测模块,适于针对调用路径中包含的各个调用节点进行监测,生成包含各个调用节点的调用记录的监测结果数据;
[0014] 判断模块,适于当监测到针对接口生成的调用指令时,判断监测结果数据中包含的各个调用节点的调用记录是否与接口相对应的调用路径匹配;若否,则拦截调用指令。
[0015] 根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
[0016] 存储器用于存放至少一可执行指令,可执行指令使处理器执行上述汽车车机的接口防护方法对应的操作。
[0017] 根据本发明的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述汽车车机的接口防护方法对应的操作。
[0018] 根据本发明提供的汽车车机的接口防护方法及装置,利用汽车卫士客户端中的IDR Tools监测汽车车机的接口,及时发现并阻断非法的调用行为以保障接口不被非法的程序调用。利用本发明提供的方案,借助IDR Tools在Root环境下能够与非法攻击行为进行对抗的能力,在静态防护体系失效的情况下,IDR工具依然可以监控接口的调用情况,并将监控结果通过云端的分析功能,快速感知并定位异常的调用行为,通过IDR工具进行快速响应,阻断攻击行为,及时止损,进而实现了汽车车机接口的动态防护。
[0019] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

[0020] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0021] 图1示出了本发明一个实施例的汽车车机的接口防护方法的流程图;
[0022] 图2示出了本发明实施例的一种汽车车机的空调接口的调用链的示意图;
[0023] 图3示出了本发明另一个实施例的汽车车机的接口防护方法的流程图;
[0024] 图4示出了本发明又一个实施例的汽车车机的接口防护方法的流程图;
[0025] 图5示出了本发明一个实施例的汽车车机的接口防护装置的结构示意图;
[0026] 图6示出了根据本发明实施例的一种电子设备的结构示意图。

具体实施方式

[0027] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0028] 在汽车卫士客户端中,DR Tools是终端动态防御的重要组成,根据车机的特点将DR Tools分为EDR Tools、NDR Tools及IDR Tools。
[0029] 其中,EDR Tools为终端监测响应工具(Endpoint Detection Response),EDR Tools以车机系统为监控维度,保障车机系统的运行安全。EDR Tools实时采集车机的系统数据、应用数据、文件系统等数据,对汽车卫士平台的报警进行快速响应,阻断针对终端的攻击。
[0030] NDR Tools为网络监测响应工具(Network Detection Response),NDRTools以网络为监控维度,保障车机的联网安全。NDR Tools通过对网络流量和网络行为的监控,结合汽车卫士平台中的网络威胁情报,发现车机中的异常联网行为,并进行联网行为的管控。
[0031] IDR Tools为接口监测响应工具(Interface Detection Response),IDR Tools以汽车车机的控制接口为维度,保障车机的接口安全。IDR Tools对接口调用流程中进行埋点监控的方式,对车身接口的调用行为进行监控,发现非法的调用情况,并直接阻断对应的调用行为,保障接口不被非法的程序调用。
[0032] 本发明中,为了在静态防护体系失效的情况下对汽车车机接口的调用情况进行监控并且阻断非法调用行为,利用汽车卫士客户端中的IDR Tools对汽车车机接口的调用情况进行实时动态的监控,本发明提供的方案拥有root环境中的对抗能力,通过对接口调用链的监控,结合汽车卫士平台的分析能力,以及IDR工具的响应能力,形成动态接口防护链体系。
[0033] 图1示出了本发明一个实施例的汽车车机的接口防护方法的流程图。如图1所示,该方法包括:
[0034] 步骤S110,确定与接口相对应的调用路径以及调用路径中包含的各个调用节点。
[0035] 在对汽车车机的接口进行调用时,对应不同的接口,有不同的调用路径。其中,调用路径是指对应实现不同的功能和/或调用不同接口时,需要执行的调用链,调用节点指调用链中的各个节点。
[0036] 图2示出了本发明实施例的一种汽车车机的空调接口的调用链的示意图。如图2所示,对汽车车机的空调接口进行调用的一般调用链为:第一步,根据用户或系统请求,调用空调APK,即调用空调应用的安装包;第二步,空调APK中相应的方法去调用Framework API,即调用空调应用程序的框架接口;第三步,Framework API中相应的方法去调用.so文件,即系统底层的动态链接库文件;第四步,.so文件生成对应请求的控制命令并发送到执行该命令的硬件(hardware)上去。可见,该调用为从应用层到系统底层的调用流程,对应的,调用节点包括安装包节点、应用程序接口节点、动态链接库节点以及硬件节点。
[0037] 在合法的接口调用情况下,确定了实现不同功能和/或调用不同接口的调用路径以及调用路径中包含的各个调用节点,即确定了每次发现有对应实现某一功能或调用某一接口的控制命令时,各个调用节点中就会有相应的调用方法。
[0038] 步骤S120,针对调用路径中包含的各个调用节点进行监测,生成包含各个调用节点的调用记录的监测结果数据。
[0039] 利用IDR Tools,并针对调用路径中的各个调用节点设置监测措施,以对各个调用节点的方法的调用情况进行监测,并得到监测结果数据,其中,监测结果数据中包含有各个调用节点的调用记录,各个调用节点的调用记录中记录着对应调用节点的每次调用的调用方法以及调用的参数等。
[0040] 步骤S130,当监测到针对接口生成的调用指令时,判断监测结果数据中包含的各个调用节点的调用记录是否与接口相对应的调用路径匹配;若否,则拦截调用指令。
[0041] 当监测到有控制命令发送到硬件以控制硬件执行特定的功能时,则需要确定该控制命令是否通过合法的调用来生成。由于针对调用同样的接口,合法的调用方式就是经过步骤S110中确定的与该接口相对应的调用路径中的各个调用节点的依次调用来生成调用该接口的控制命令,而非法的调用方式则是跳过步骤S110中确定的与该接口相对应的调用路径中的各个调用节点中的至少一个调用节点生成了控制命令,即:相对于合法的调用方式而言,非法的调用方式生成该控制命令的调用链不完整。针对非法的接口调用情况,IDR Tools直接阻断对应的调用行为以保障接口不被非法的程序调用。
[0042] 具体地,若该控制命令对应的调用非法,则在调用路径中包含的至少一个调用节点上缺少相应的方法的调用记录。例如,通过直接调用底层的动态链接库文件达到控制汽车车机的目的的情况,则只能在系统底层对应的动态链接库文件中检测到对应的调用方法,而在应用层中,例如应用的安装包以及应用程序的框架接口中,无法检测到对应的调用方法。
[0043] 本实施例中,通过判断监测结果数据中包含的各个调用节点的调用记录是否与接口相对应的调用路径匹配来确定调用链是否完整,则进一步可以确定调用是否合法。具体地,针对接口生成的调用指令,若在监测结果数据中查询到调用该接口的调用记录,则调用链完整。
[0044] 根据本实施例提供的汽车车机的接口防护方法,利用汽车卫士客户端中的IDR Tools监测汽车车机的接口,及时发现并阻断非法的调用行为以保障接口不被非法的程序调用。本实施例中,在利用IDR Tools进行监测前,首先确定对应各个接口调用的调用路径以及调用路径中的各个调用节点,进而确定了一条完整的调用链,凡是调用相同的接口,则调用链必须一致;在利用IDR Tools进行监测时,针对调用路径中包含的各个调用节点进行监测,生成包含各个调用节点的调用记录的监测结果数据;当监测到针对接口生成的调用指令时,通过判断监测结果数据中包含的各个调用节点的调用记录是否与接口相对应的调用路径匹配来确定调用链是否完整,若调用链与确定的调用该接口的调用路径匹配,则生成该调用指令的调用合法,若不匹配,则利用IDR Tools直接阻断对应的调用行为以保障接口不被非法的程序调用。利用本实施提供的方案,借助IDR Tools在Root环境下能够与非法攻击行为进行对抗的能力,在静态防护体系失效的情况下,IDR工具依然可以监控接口的调用情况,并将监控结果通过云端的分析功能,快速感知并定位异常的调用行为,通过IDR工具进行快速响应,阻断攻击行为,及时止损,进而实现了汽车车机接口的动态防护。
[0045] 图3示出了本发明另一个实施例的汽车车机的接口防护方法的流程图,其中,该方法针对汽车车机中空调的单个接口进行接口防护,其中,接口包括:空调开关机接口、和/或空调调温接口。如图3所示,该方法包括:
[0046] 步骤S310,确定与接口相对应的调用路径以及调用路径中包含的各个调用节点。
[0047] 在对汽车车机的接口进行调用时,对应不同的接口,有不同的调用路径。其中,调用路径是指对应实现不同的功能和/或调用不同接口时,需要执行的调用链,调用节点指调用链中的各个节点。
[0048] 针对汽车车机的一个空调接口的调用,有两种可能的情况:一种情况,调用该空调接口只能实现一种功能,例如,开空调的功能;另一种情况,利用不同类型的调用指令调用该空调接口能够实现不同功能,其中,一种类型的调用指令对应实现一种功能,例如,开空调和关空调的功能,下面以图2所示的对汽车车机的空调接口进行调用的一般调用链为例,分别针对这两种情况对应的本步骤进行说明。
[0049] 其中,针对调用该空调接口只能实现一种功能的情况,若是通过合法的调用来实现该一种功能,则该一种功能有唯一对应的各个调用节点之间的调用顺序,例如,图2中调用路径中共包含4个调用节点,按照调用顺序分别为:安装包节点、应用程序接口节点、动态链接库节点、以及与接口相连的硬件节点,并且上述各个调用节点中有实现该功能的唯一对应的调用方法。这种情况下,确定与接口相对应的调用路径以及调用路径中包含的各个调用节点的步骤只需确定调用路径中包含的调用节点的数量和名称即可。
[0050] 其中,针对利用不同类型的调用指令调用该空调接口能够实现不同功能的情况,若是通过合法的调用来实现各个功能,则对应不同的功能,调用路径中的各个调用节点的调用方法不同,调用方法中包含调用函数和调用参数,例如,图2中的调用链可以实现空调开机和空调关机的功能,在4个调用节点中分别有对应实现该两个功能的不同的调用方法。这种情况,由于多个功能的实现所需的调用路径以及调用接口均一致,若仅仅是确定调用路径中包含的调用节点的数量和名称,并不能确定接口调用为合法的调用,因此,需要确定与接口相对应的各种类型的调用指令,分别针对每种类型的调用指令,确定与该类型的调用指令相对应的调用路径以及调用路径中包含的各个调用节点,并且需要进一步确认各个调用节点所对应的调用函数和/或调用参数,以确定各个调用节点中的调用方法为对应实现某一功能的调用方法。
[0051] 另外,图2给出的调用链仅仅需要通过4个调用节点的调用就能实现调用接口并实现相应的功能,但实际中,存在需要通过远远高于4个调用节点的调用才能实现调用接口并实现相应的功能的情况,并且对应实现不同功能的接口调用,对应的调用节点的个数和数量均相同,只是各个调用节点之间的调用顺序不同。这种情况下,需要进一步确定各个调用节点之间的调用顺序来区别实现不同功能的接口调用之间的差异。
[0052] 上述三种情况是示例性的情况,其仅仅用来说明在各种不同的情况下,可以通过确定与接口相对应的调用路径以及调用路径中包含的各个调用节点方式来明确该接口调用为合法调用的特征,而并不作为本实施例的限定情况。其中,调用路径中包含调用节点的数量和名称、各个调用节点之间的调用顺序、和/或各个调用节点所对应的调用函数和/或调用参数。
[0053] 步骤S320,针对调用路径中包含的各个调用节点,通过在调用节点处设置挂钩函数的方式监测调用节点,和/或,通过获取并解析与调用节点相对应的节点日志的方式监测调用节点。
[0054] 通过对调用路径中包含的各个调用节点进行监测,得到各个调用节点的调用记录,调用记录中记录着对应调用节点的每次调用的调用函数以及调用参数等。具体地,针对调用路径中包含的各个调用节点进行监测可采用设置挂钩函数的方式,和/或获取并解析与调用节点相对应的节点日志的方式。
[0055] 其中,采用设置挂钩函数的方式,即:在利用调用方法去调用下一个调用节点中的指定接口或文件之前,采用Hook技术在当前的调用节点中截获该调用过程,并获取该调用过程的调用记录,例如,该调用的调用方法、该调用指定的接口等,进而实现了对调用过程的监测。
[0056] 获取并解析与调用节点相对应的节点日志的方式,即:获取各个调用节点的节点日志,利用IDR Tools从节点日志中解析出调用行为,以此监测到各个调用节点的每次调用行为对应的调用记录。
[0057] 以对图2给出的调用链中的各个调用节点进行监测为例,通过Hook的方式对空调APK和Framework API中对应空调的各个操作进行监测,监控其调用来源和调用目标,其中,调用来源指上一个调用节点,调用目标指调用方法指定调用的下个调用节点的接口或文件;对于.so文件的监控可采用获取并解析节点日志的方式,.so库可以将Framework API的调用行为以日志形式输出到指定路径,IDR Tools工具解析节点日志以监控.so库的调用行为。
[0058] 步骤S330,生成包含各个调用节点的调用记录的监测结果数据。
[0059] 根据各个调用节点的调用记录生成监测结果数据,该监测结果数据中的结果数据包括整个调用链中的调用节点的数量和名称、各个调用节点之间的调用顺序、和/或调用记录中记录的各个调用节点所对应的调用函数和/或调用参数。
[0060] 通过步骤S310确定了与合法调用接口的方式相对应的调用路径以及调用路径中包含的各个调用节点,通过步骤S320及步骤S330监测到了各个调用节点的实时的调用记录,并得到了包括各个节点的实时的调用记录的监测结果数据,当接口调用的方式为合法方式的时候,步骤S310确定的调用路径以及各个调用节点就与步骤S330得到的监测结果数据匹配,具体包括调用路径中包含的调用节点的数量和名称相同、各个调用节点之间的调用顺序一致、和/或各个调用节点所对应的调用函数和/或调用参数匹配
[0061] 步骤S340,当监测到针对接口生成的调用指令时,判断监测结果数据中包含的各个调用节点的调用记录是否与接口相对应的调用路径匹配;若否,则拦截调用指令。
[0062] 当监测到调用链中与接口相连的硬件节点的前一个调用节点中生成了调用指令,对应图2,即.so调用节点中生成了调用指令,则需判断该调用指令是否通过合法的调用方式生成。
[0063] 在本发明的一个具体实施例中,确定针对接口生成的调用指令是否合法的方式为:判断与调用指令相关的调用节点的数量和名称与调用路径中包含的调用节点的数量和名称是否匹配,根据判断结果确定各个调用节点的调用记录与接口相对应的调用路径是否匹配。
[0064] 具体地,与该调用指令相关的调用节点即生成该调用指令的实际的调用链中包括的调用节点,例如,直接调用.so文件生成调用指令,则该调用指令相关的调用节点只有1个.so文件调用节点,而调用路径中包含的调用节点即通过合法的调用方式生成该调用指令时的调用链中调用节点,例如,通过合法的方式生成与上述示例中直接调用.so文件生成的调用指令相同的调用指令,其调用链与图2相同,则合法的调用路径中包含的调用节点有3个,分别为安装包节点、应用程序接口节点以及动态链接库节点。该种情况下,与该调用指令相关的调用节点的数量和名称与调用路径中包含的调用节点的数量和名称均不匹配,具体体现在,与该调用指令相关的调用节点存在缺失,则可以确定该调用指令由非法程序生成,应该立即阻断该调用指令对接口的控制。
[0065] 在本发明的另一个具体实施例中,确定针对接口生成的调用指令是否合法的方式为:判断与调用指令相关的各个调用节点所对应的调用函数和/或调用参数与调用路径中包含的各个调用节点所对应的调用函数和/或调用参数是否匹配,根据判断结果确定各个调用节点的调用记录与接口相对应的调用路径匹配。
[0066] 具体地,根据各个调用节点的调用记录确定与调用指令相关的各个调用节点所对应的调用函数和/或调用参数,即在监测结果数据中能够查找到对应生成该调用指令时,各个调用节点实际用到的调用函数和/或调用参数;调用路径中包含的各个调用节点所对应的调用函数和/或调用参数指利用合法的方式生成该调用指令时,调用路径中的各个调用节点需要使用的调用函数和/或调用参数;通过两者的匹配,若存在至少一个调用节点的调用函数和/或调用参数不一致,则可以确定该调用指令由非法程序生成,应该立即阻断该调用指令对接口的控制。该种方式尤其在一个接口能够通过不同的调用指令进行调用以实现不同的功能的情况下效果明显,这种情况下,若只是匹配调用节点的数量和名称,则容易因实现另一功能的调用指令造成干扰,而匹配调用函数和/或调用参数则可以排除这一干扰。
[0067] 在本发明的又一个具体实施例中,确定针对接口生成的调用指令是否合法的方式为:判断与调用指令相关的调用节点之间的调用顺序与调用路径中包含的各个调用节点之间的调用顺序是否匹配,根据判断结果确定各个调用节点的调用记录与接口相对应的调用路径是否匹配。
[0068] 具体地,根据各个调用节点的调用记录确定与调用指令相关的调用节点之间的调用顺序,即在监测结果数据中查找到对应生成该指令时,各个调用节点之间的调用顺序;调用路径中包含的各个调用节点之间的调用顺序指利用合法的方式生成该调用指令时,调用路径中的各个调用节点之间的调用顺序;通过两者的匹配,若与调用指令相关的调用节点之间的调用顺序与利用合法的方式生成该调用指令时的调用路径中的各个调用节点之间的调用顺序不一致,则可以确定该调用指令由非法程序生成,应该立即阻断该调用指令对接口的控制。该种方式尤其生成调用指令的调用路径中的调用节点数量较多的情况下效果明显,这种情况下,若一一去匹配各个调用节点的调用函数和/或调用参数,则运算量较大,匹配各个调用节点之间的调用顺序能够极大的减少运算量,提高识别非法调用的效率。
[0069] 另外,在本发明的另一些具体实施例中,可以将上述三种具体实施方式中的确定针对接口生成的调用指令是否合法的方式组合使用,以达到及时发现非法调用接口的行为,并阻断该非法调用行为以避免汽车车机系统或应用被攻击的目的。
[0070] 本实施例中,IDR工具也可以将监测结果数据上传到汽车卫士平台中进行接口调用行为分析,并对于偏离正常调用路径的行为进行报警,以供IDR工具根据该报警信息响应对应的措施;汽车卫士平台根据分析结果更新接口调用白名单,其中调用白名单为针对接口的合法调用的调用路径,具体包括,调用节点的数量和名称、各个调用节点之间的调用、和/或各个调用节点所对应的调用函数和/或调用参数,并将该白名单同时更新到IDR工具中,以便于当相同的攻击再次发生时,即可直接阻断,从而保护接口调用安全。
[0071] 根据本实施例提供的汽车车机的接口防护方法,利用汽车卫士客户端中的IDR Tools监测汽车车机的接口,及时发现并阻断非法的调用行为以保障接口不被非法的程序调用。本实施例中,在利用IDR Tools进行监测前,首先确定对应各个接口调用的调用路径以及调用路径中的各个调用节点,进而确定了针对各个接口的合法调用的一条完整的调用链,具体地,调用路径中包含调用节点的数量和名称、各个调用节点之间的调用顺序、和/或各个调用节点所对应的调用函数和/或调用参数;在利用IDR Tools进行监测时,针对调用路径中包含的各个调用节点进行监测,生成包含各个调用节点的调用记录的监测结果数据;当监测到针对接口生成的调用指令时,通过判断监测结果数据中包含的各个调用节点的调用记录是否与接口相对应的调用路径匹配来确定调用链是否完整,例如,调用节点的数量和名称是否相同、各个调用节点之间的调用顺序是否一致、和/或各个调用节点所对应的调用函数和/或调用参数一样,若调用链与确定的调用该接口的调用路径匹配,则生成该调用指令的调用合法,若不匹配,则利用IDR Tools直接阻断对应的调用行为以保障接口不被非法的程序调用。利用本实施提供的方案,借助IDR Tools在Root环境下能够与非法攻击行为进行对抗的能力,在静态防护体系失效的情况下,IDR工具依然可以监控接口的调用情况,并将监控结果通过云端的分析功能,快速感知并定位异常的调用行为,通过IDR工具进行快速响应,阻断攻击行为,及时止损,进而实现了汽车车机接口的动态防护。
[0072] 图4示出了本发明又一个实施例的汽车车机的接口防护方法的流程图,其中,该方法针对汽车车机中的多个接口进行接口防护,如图3所示,该方法包括:
[0073] 步骤S410,针对多个接口,分别确定与每个接口相对应的调用路径以及调用路径中包含的各个调用节点,将各个接口所对应的调用路径与该接口的接口标识关联存储到预设的路径库中。
[0074] 在利用IDR Tools对对多个接口进行加接口防护前,针对每一个接口,确定与该接口相对应的调用路径以及调用路径中包含的各个调用节点,并将该接口、与调用该接口对应的调用路径以及该调用路径包含的各个调用节点作为一条数据关联存储到预设的路径库中。
[0075] 步骤S420,针对各个接口的调用路径中包含的各个调用节点进行监测,生成对应每个接口的包含各个调用节点的调用记录的监测结果数据。
[0076] 步骤S430,当监测到针对接口生成的调用指令时,确定与调用指令相对应的接口的接口标识,从路径库中获取与接口标识关联存储的调用路径,判断监测结果数据中包含的各个调用节点的调用记录是否与获取的调用路径匹配。若否,则拦截调用指令。
[0077] 在利用IDR Tools对多个接口进行接口防护时,首先要将各个接口区别开来,本实施例中,在预设的路径库中,存储的每一条数据与接口的接口标识关联。
[0078] 具体地,通过在预设的路径库中查找与生成的调用指令相对应的接口的接口标识关联的存储数据,从该存储数据中获取针对该接口的调用路径和调用路径中包含的各个调用节点,并与实际监测到的监测结果数据匹配,判断调用指令对应的调用方式是否合法。
[0079] 根据本实施例提供的汽车车机的接口防护方法,针对多个接口进行接口防护,利用汽车卫士客户端中的IDR Tools监测汽车车机的接口,及时发现并阻断非法的调用行为以保障接口不被非法的程序调用。利用本实施例提供的方案,借助IDR Tools在Root环境下能够与非法攻击行为进行对抗的能力,在静态防护体系失效的情况下,IDR工具依然可以监控接口的调用情况,并将监控结果通过云端的分析功能,快速感知并定位异常的调用行为,通过IDR工具进行快速响应,阻断攻击行为,及时止损,进而实现了汽车车机的多个接口的动态防护。
[0080] 图5示出了本发明一个实施例的汽车车机的接口防护装置的结构示意图。如图5所示,该装置包括:确定模块510、监测模块520以及判断模块530。
[0081] 确定模块510,适于确定与接口相对应的调用路径以及调用路径中包含的各个调用节点;
[0082] 监测模块520,适于针对调用路径中包含的各个调用节点进行监测,生成包含各个调用节点的调用记录的监测结果数据;
[0083] 判断模块530,适于当监测到针对接口生成的调用指令时,判断监测结果数据中包含的各个调用节点的调用记录是否与接口相对应的调用路径匹配;若否,则拦截调用指令。
[0084] 在一种可选的方式中,调用节点包括以下中的至少一个:安装包节点、应用程序接口节点、动态链接库节点、与接口相连的硬件节点;
[0085] 则监测模块520进一步适于:通过在调用节点处设置挂钩函数的方式监测调用节点,和/或,通过获取并解析与调用节点相对应的节点日志的方式监测调用节点。
[0086] 在一种可选的方式中,判断模块530进一步适于:确定与接口相对应的调用路径中包含的调用节点的数量和名称;
[0087] 根据各个调用节点的调用记录确定与调用指令相关的调用节点的数量和名称;
[0088] 判断与调用指令相关的调用节点的数量和名称与调用路径中包含的调用节点的数量和名称是否匹配,根据判断结果确定各个调用节点的调用记录与接口相对应的调用路径是否匹配。
[0089] 在一种可选的方式中,调用路径中进一步包含各个调用节点之间的调用顺序,则判断模块530进一步适于:
[0090] 根据各个调用节点的调用记录确定与调用指令相关的调用节点之间的调用顺序;
[0091] 判断与调用指令相关的调用节点之间的调用顺序与调用路径中包含的各个调用节点之间的调用顺序是否匹配,根据判断结果确定各个调用节点的调用记录与接口相对应的调用路径是否匹配。
[0092] 在一种可选的方式中,其中,调用路径中进一步包含各个调用节点所对应的调用函数和/或调用参数,则判断模块530进一步适于:
[0093] 根据各个调用节点的调用记录确定与调用指令相关的各个调用节点所对应的调用函数和/或调用参数;
[0094] 判断与调用指令相关的各个调用节点所对应的调用函数和/或调用参数与调用路径中包含的各个调用节点所对应的调用函数和/或调用参数是否匹配,根据判断结果确定各个调用节点的调用记录与接口相对应的调用路径匹配。
[0095] 在一种可选的方式中,其中,确定模块510进一步适于:
[0096] 确定与接口相对应的各种类型的调用指令,分别针对每种类型的调用指令,确定与该类型的调用指令相对应的调用路径以及调用路径中包含的各个调用节点;
[0097] 则判断监测结果数据中包含的各个调用节点的调用记录是否与接口相对应的调用路径匹配的步骤具体包括:
[0098] 根据调用指令的类型,确定与该类型的调用指令相对应的调用路径,判断各个调用节点的调用记录是否与该类型的调用指令相对应的调用路径匹配。
[0099] 在一种可选的方式中,其中,确定模块510进一步适于:
[0100] 针对多个接口,分别确定与每个接口相对应的调用路径以及调用路径中包含的各个调用节点,将各个接口所对应的调用路径与该接口的接口标识关联存储到预设的路径库中;
[0101] 判断模块530进一步适于:确定与调用指令相对应的接口的接口标识,从路径库中获取与接口标识关联存储的调用路径,判断监测结果数据中包含的各个调用节点的调用记录是否与获取的调用路径匹配。
[0102] 在一种可选的方式中,其中,接口包括:空调开关机接口、和/或空调调温接口。
[0103] 上述汽车车机的接口防护装置中的各个模块的构成、工作原理以及作用与方法实施例中的步骤一一对应,具体可参见方法实施例中的描述,在此不再赘述。
[0104] 本申请实施例提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的汽车车机的接口防护方法。
[0105] 图6示出了根据本发明实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
[0106] 如图6所示,该电子设备可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。
[0107] 其中:
[0108] 处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。
[0109] 通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。
[0110] 处理器602,用于执行程序610,具体可以执行上述汽车车机的接口防护方法实施例中的相关步骤。
[0111] 具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
[0112] 处理器602可能是中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
[0113] 存储器606,用于存放程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0114] 程序610具体可以用于使得处理器602执行以下操作:
[0115] 确定与接口相对应的调用路径以及调用路径中包含的各个调用节点;
[0116] 针对调用路径中包含的各个调用节点进行监测,生成包含各个调用节点的调用记录的监测结果数据;
[0117] 当监测到针对接口生成的调用指令时,判断监测结果数据中包含的各个调用节点的调用记录是否与接口相对应的调用路径匹配;
[0118] 若否,则拦截调用指令。
[0119] 在一种可选的方式中,调用节点包括以下中的至少一个:安装包节点、应用程序接口节点、动态链接库节点、与接口相连的硬件节点;
[0120] 则程序610具体可以进一步用于使得处理器602执行以下操作:
[0121] 通过在调用节点处设置挂钩函数的方式监测调用节点,和/或,通过获取并解析与调用节点相对应的节点日志的方式监测调用节点。
[0122] 在一种可选的方式中,程序610具体可以进一步用于使得处理器602执行以下操作:
[0123] 确定与接口相对应的调用路径中包含的调用节点的数量和名称;
[0124] 根据各个调用节点的调用记录确定与调用指令相关的调用节点的数量和名称;
[0125] 判断与调用指令相关的调用节点的数量和名称与调用路径中包含的调用节点的数量和名称是否匹配,根据判断结果确定各个调用节点的调用记录与接口相对应的调用路径是否匹配。
[0126] 在一种可选的方式中,程序610具体可以进一步用于使得处理器602执行以下操作:
[0127] 根据各个调用节点的调用记录确定与调用指令相关的调用节点之间的调用顺序;
[0128] 判断与调用指令相关的调用节点之间的调用顺序与调用路径中包含的各个调用节点之间的调用顺序是否匹配,根据判断结果确定各个调用节点的调用记录与接口相对应的调用路径是否匹配。
[0129] 在一种可选的方式中,调用路径中进一步包含各个调用节点所对应的调用函数和/或调用参数,程序610具体可以进一步用于使得处理器602执行以下操作:
[0130] 根据各个调用节点的调用记录确定与调用指令相关的各个调用节点所对应的调用函数和/或调用参数;
[0131] 判断与调用指令相关的各个调用节点所对应的调用函数和/或调用参数与调用路径中包含的各个调用节点所对应的调用函数和/或调用参数是否匹配,根据判断结果确定各个调用节点的调用记录与接口相对应的调用路径匹配。
[0132] 在一种可选的方式中,程序610具体可以进一步用于使得处理器602执行以下操作:
[0133] 确定与接口相对应的各种类型的调用指令,分别针对每种类型的调用指令,确定与该类型的调用指令相对应的调用路径以及调用路径中包含的各个调用节点;
[0134] 在一种可选的方式中,程序610具体可以进一步用于使得处理器602执行以下操作:
[0135] 根据调用指令的类型,确定与该类型的调用指令相对应的调用路径,判断各个调用节点的调用记录是否与该类型的调用指令相对应的调用路径匹配。
[0136] 在一种可选的方式中,程序610具体可以进一步用于使得处理器602执行以下操作:
[0137] 针对多个接口,分别确定与每个接口相对应的调用路径以及调用路径中包含的各个调用节点,将各个接口所对应的调用路径与该接口的接口标识关联存储到预设的路径库中;
[0138] 则当监测到针对接口生成的调用指令时,判断监测结果数据中包含的各个调用节点的调用记录是否与接口相对应的调用路径匹配的步骤具体包括:
[0139] 确定与调用指令相对应的接口的接口标识,从路径库中获取与接口标识关联存储的调用路径,判断监测结果数据中包含的各个调用节点的调用记录是否与获取的调用路径匹配。
[0140] 在一种可选的方式中,接口包括:空调开关机接口、和/或空调调温接口。
[0141] 在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0142] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0143] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0144] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0145] 此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0146] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的汽车车机的接口防护装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0147] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。