掌桥专利:专业的专利平台
掌桥专利
首页

一种远程车辆控制系统的安全测试方法和装置

文献发布时间:2023-06-19 16:08:01



技术领域

本发明涉及车联网安全技术领域,具体涉及一种远程车辆控制系统的安全测试方法和装置。

背景技术

目前,随着车联网技术的发展,传统的通过机械方式控制车辆的方式已经逐渐过时,取而代之的则是电气以及网络控制,电气控制以及网络控制在给用户带来便携的同时,也引入了信息安全的问题,一些不法分子可以利用车辆控制系统的漏洞对车辆进行攻击,使得用户的生命财产面临着巨大威胁。

现在主流的远程车辆控制系统由移动终端、服务器端和车辆端组成,通过这三端之间的信息交互从而实现对车辆的控制,现有测试方法主要是对移动终端上的应用程序进行安全测试,仅仅针对应用程序的安全性,这种方法无法检测出存在于移动终端-服务器端-车辆端之间通信以及信号处理机制的漏洞,而目前针对移动终端和服务器端通信之间的漏洞测试方法需要先对应用程序逆向获取加密算法,该步骤繁琐且难以实现。

因此,设计一种能够解决上述问题的远程车辆控制系统的安全测试方法和装置显得尤为重要。

发明内容

本发明的目的在于提供一种远程车辆控制系统的安全测试方法和装置,能够在没有对应用程序逆向获取加密算法的情况下,对移动终端和服务器端通信过程中的安全威胁进行检测。

为实现上述目的,本发明提供了一种远程车辆控制系统的安全测试方法,包括:

获取移动终端中用于控制车辆的应用程序的元素定位信息,所述元素定位信息反映所述应用程序的显示界面中各个元素的位置;

根据所述元素定位信息和测试策略生成测试脚本,所述测试策略包括若干条不同的验证信息,所述验证信息依据预设构成规则生成;

通过所述测试脚本控制所述应用程序按照不同的所述验证信息生成对应的测试请求报文并发送至服务器端。

可选地,所述安全测试方法还包括:

在所述服务器端发送包括验证错误信息的第一响应报文给所述移动终端时,截获所述第一响应报文;

将内容为验证错误信息的所述第一响应报文修改内容为验证正确信息的第二响应报文;

发送所述第二响应报文给所述移动终端。

可选地,所述安全测试方法还包括:

在所述移动终端和所述服务器端的通信之间部署代理服务器;

所述验证正确信息的获取方法包括:

向所述服务器端发送根据正确验证信息生成的请求报文;

通过所述代理服务器抓取所述服务器端返回给所述移动终端的正确响应报文并获取所述正确响应报文中的所述验证正确信息;

所述验证错误信息的获取方法包括:

向所述服务器端发送根据错误验证信息生成的请求报文;

通过所述代理服务器抓取所述服务器端返回给所述移动终端的错误响应报文并获取所述错误响应报文中的所述验证错误信息。

可选地,在所述移动终端和所述服务器端的通信之间部署代理服务器;

控制所述移动终端中的所述应用程序根据至少两个相同的验证信息分别生成请求报文并将生成的请求报文发送给所述服务器端;

通过所述代理服务器抓取所述移动终端发送给所述服务器端的请求报文并将请求报文相互比对。

可选地,在所述移动终端和所述服务器端的通信之间部署代理服务器;

所述测试策略还包括:

将所有生成的所述测试请求报文存储于所述代理服务器;

所述代理服务器将所述测试请求报文逐个发送到所述服务器端;

每生成一个所述测试请求报文便经由所述代理服务器发送到所述服务器端。

可选地,所述元素定位信息包括所述应用程序中键盘上内容输入的位置信息;

将所述验证信息根据所述元素定位信息转换为键盘点击命令;

所述应用程序按照所述键盘点击命令生成与所述验证信息对应的所述测试请求报文。

可选地,所述预设构成规则包括:

所述验证信息的字符组成类型和字符数量。

为实现上述目的,本发明还提供了一种远程车辆控制系统的安全测试装置,包括:

获取模块,用于获取移动终端中用于控制车辆的应用程序的元素定位信息,所述元素定位信息反映所述应用程序的显示界面中各个元素的位置;

生成模块,用于根据所述元素定位信息和测试策略生成测试脚本,所述测试策略包括若干条不同的验证信息,所述验证信息依据预设构成规则生成;

测试模块,用于通过所述测试脚本控制所述应用程序按照不同的所述验证信息生成对应的测试请求报文并发送至服务器端。

为实现上述目的,本发明还提供了一种电子设备,包括:

处理器;

存储器,其中存储有所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行如上所述的远程车辆控制系统的安全测试方法。

为实现上述目的,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的远程车辆控制系统的安全测试方法。

本发明还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述远程车辆控制系统的安全测试方法。

本发明在获取到用于控制车辆的应用程序内的元素定位信息后,可以根据元素定位信息和测试策略生成测试脚本,其中,测试策略内包括若干条不同的验证信息,这些验证信息依据预设构成规则生成,通过执行测试脚本可控制应用程序按照不同的验证信息生成对应的测试请求报文并发送至服务器端,从而实现对移动终端和服务器端之间信息传输过程中的安全测试。由于本发明通过测试脚本直接控制应用程序去生成测试请求报文,因此不需要逆向应用程序去获取加密算法来生成报文,而且只需更改测试脚本的相关参数便可适用不同的应用程序,具有较高的可移植性。

附图说明

图1是本发明实施例远程车辆控制系统的安全测试方法流程图。

图2是本发明实施例通过应用程序内的键盘生成测试报文的方法流程图。

图3是本发明实施例将第一响应报文修改成第二响应报文并作测试的的方法流程图。

图4是本发明实施例将相同验证信息生成请求报文进行比对的方法流程图。

图5是本发明远程车辆控制系统的信息传输图。

图6是本发明WEditor对应用程序的元素进行定位的界面图。

图7是具有验证错误信息的响应报文显示在Mitmproxy的界面图。

图8是具有验证正确信息的响应报文显示在Mitmproxy的界面图。

图9是本发明登录请求报文显示在Mitmproxy的界面图。

图10是本发明实施例远程车辆控制系统的安全测试装置的示意框图。

图11是本发明实施例电子设备的示意框图。

具体实施方式

为了详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。

在远程车辆控制系统的通信过程中,车载端和服务器端、服务器端和营运商以及营运商和移动终端的通信都是较为安全的,攻击者难以获得这些通信过程中的信息,因此,远程车辆控制系统的安全威胁主要存在于服务器端和移动终端的通信过程。为此,本发明公开了一种远程车辆控制系统的安全测试方法,能够对移动终端和服务器端之间的信息传输过程进行安全测试。

具体地,请参阅图1,该安全测试方法包括:

S101、获取移动终端中用于控制车辆的应用程序的元素定位信息,元素定位信息反映应用程序的显示界面中各个元素的位置。

可以理解的是,元素定位信息是指应用程序显示界面中各个元素的位置信息,例如:文本输入框、确定按钮等。

S102、根据元素定位信息和测试策略生成测试脚本,测试策略包括若干条不同的验证信息,验证信息依据预设构成规则生成。

具体地,验证信息可以是登录密码、验证码或者PIN码,只要是用于验证身份的信息皆可,在本发明中不作具体限制。

可以理解的是,预设构成规则包括验证信息的字符组成类型和字符数量。其中,验证信息的字符组成类型为汉字、数字、字母或特殊符号等,验证信息可由上述单一字符类型组成,也可由多种字符类型组合;字符数量为字符的位数。例如,一般的验证码为四位或六位的纯数字验证码,通过该预设构成规则可以生成0000-9999或000000-999999的验证信息。

S103、通过测试脚本控制应用程序按照不同的验证信息生成对应的测试请求报文并发送至服务器端。

具体地,可以遍历生成的验证信息以生成对应的测试请求报文,将生成的测试请求报文发送至服务器端,服务器端接收到测试请求报文后会返回对应的响应报文,可以通过截获该响应报文并判断该响应报文中是否存在验证正确信息,若存在,则表示测试攻击成功,也意味着服务器端和移动终端的通信过程中存在相应的安全威胁;若在所有测试请求报文发送到服务器端后,且服务器端返回的响应报文中都不存在验证正确信息,则表示测试攻击失败,也意味着服务器端和移动终端的通信过程中不存在相应的安全威胁;若返回的响应报文中存在表示验证信息过期或者其他防护验证信息被爆破的信息时,可提前结束测试并认定不存在相应的安全威胁。

请参阅图2,在一些实施例中,安全测试方法还包括:

S201、元素定位信息包括应用程序中键盘上内容输入的位置信息。

S202、将验证信息根据元素定位信息转换为键盘点击命令。

S203、应用程序按照键盘点击命令生成与验证信息对应的测试请求报文。

在进行一些验证信息为PIN码的输入时,由于程序安全保护机制的存在,无法直接通过send_keys函数输入,则需要通过键盘点击命令对应用程序的键盘点击以将验证信息输入到输入框中。

具体地,在移动终端和服务器端的通信之间部署代理服务器,移动终端与服务器端之间的信息经由代理服务器传输,代理服务器中设有抓包工具,可抓取来自移动终端和服务器端的数据包并解析。

在一些实施例中,测试策略还包括:

将所有生成的测试请求报文存储于代理服务器;

代理服务器将测试请求报文逐个发送到服务器端。

每生成一个测试请求报文便经由代理服务器发送到服务器端。

其中,将全部生成的测试请求报文先存储于代理服务器,然后再逐个发送至服务器端,避免一边发送还需要一边生成的过程,可提高测试速度;而每生成一个测试请求报文便发送至服务器端的方式,在遇到响应报文中存在表示验证信息过期或者其他防护验证信息被爆破的信息时,可节省大量测试时间,不需要将测试请求报文全部生成。

请参阅图3,在一些实施例中,安全测试方法还包括:

S301、在服务器端发送包括验证错误信息的第一响应报文给移动终端时,截获第一响应报文。

S302、将内容为验证错误信息的第一响应报文修改成内容为验证正确信息的第二响应报文。

S303、发送第二响应报文给移动终端。

若移动终端接收到第二响应报文后作出与验证正确的动作一致时,则判断存在对应的安全威胁。

具体地,验证正确信息的获取方法包括:

向服务器端发送根据正确验证信息生成的请求报文;

通过代理服务器抓取服务器端返回给移动终端的正确响应报文并获取正确响应报文中的验证正确信息。

具体地,验证错误信息的获取方法包括:

向服务器端发送根据错误验证信息生成的请求报文;

通过代理服务器抓取服务器端返回给移动终端的错误响应报文并获取错误响应报文中的验证错误信息。

请参阅图4,在一些实施例中,安全测试方法还包括:

S401、控制移动终端中的应用程序根据至少两个相同的验证信息分别生成请求报文并将生成的请求报文发送给服务器端。

S402、通过代理服务器抓取移动终端发送给服务器端的请求报文并将请求报文相互比对。

将至少两个相同验证信息生成请求报文进行比对,若请求报文之间内容一致,则认为移动终端和服务器端之间的信息处理机制存在对应的安全威胁。

下面举一具体示例说明本发明的技术方案:

请参阅图5,图中为用户登录应用程序以及通过应用程序开启门锁的信息传输过程,其中,登录过程具体为:移动终端上的应用程序向服务器端发送包括手机号的登录验证码请求,服务器端收到该登录验证码请求后,通过运营商将验证码发送到手机号对应的移动终端;在移动终端接收到验证码后,按照验证码发送登录请求至服务器端,服务器端验证该登录请求,若验证正确则返回登录响应于移动终端,使得使用者能够成功登录应用程序。

开启门锁的过程具体为:移动终端的应用程序向服务器端发送开锁请求,服务器端接收到开锁请求后,向移动终端发送开锁响应,移动终端上的应用程序在接收到开锁响应后要求使用者输入PIN码,使用者输入PIN码生成对应的PIN码验证请求并发送至服务器端,服务器端接收该PIN码验证请求并验证,若验证正确则返回验证通过的PIN码验证响应于移动终端,使得应用程序能够生成带有身份验证的开锁请求至服务器端,服务器端接收到该开锁请求向车辆端发送开锁命令。

为了测试上述远程车辆控制系统,可准备个人计算机用作代理服务器,将个人计算机和安装有需要测试的应用程序的移动终端连接,具体方式可通过USB连接,也可以使得个人计算机处于同一局域网下,当采用局域网的方式连接时,需要在个人计算机上安装ADB调试工具(Android Debug Bridge,安卓调试桥),通过ADB调试工具使个人计算机通过IP地址连接到移动终端。在个人计算机还安装有抓包工具Mitmproxy,在对移动终端和个人计算机进行相关配置后,运行Mitmproxy可抓取服务器端和移动终端之间传输的数据包。

个人计算机上还安装有UIAutomator和WEditor,WEditor用于获取应用程序的元素定位信息,如图6所示,图6中可获取手机号输入框、验证码输入框和登录确定按钮的元素位置信息。根据元素位置信息再通过UIAutomator可编写测试脚本,测试脚本可控制应用程序进行相应测试。

测试脚本可控制应用程序产生大量登录请求报文,若验证码为六位纯数字组成,则可生成一百万条登录请求报文进行安全测试;同理,测试脚本可控制应用程序产生大量PIN码验证请求报文,若PIN码为六位纯数字组成,则可生成一百万条PIN码验证请求报文进行安全测试,由于PIN码无法通过send_keys函数输入,测试脚本可根据WEditor获取的键盘内容输入的位置信息来模拟点击键盘的动作。

通过个人计算机可抓取服务器端接收到登录请求后返回的登录响应报文,并可查看抓取的登录响应报文,如图7和图8所示,其中,根据图7和图8可获知验证错误信息的内容和验证正确信息的内容,在个人计算机上将服务器端返回给移动终端的具有验证错误信息的登录响应报文内的验证错误信息修改成验证正确信息,并将修改后的登录响应报文返回到移动终端,并通过UIAutomator监视应用程序的显示页面是否变化,从而实现安全测试。

如图9所示,个人计算机可抓取移动终端发送给服务器端的登录请求报文并将报文内容显示在Mitmproxy的界面上,控制应用程序重复输入两次相同的验证码以生成对应的登录请求报文并发送,可由个人计算机上比对两次登录请求报文的内容是否一致,以测试移动终端和服务器端之间的信息处理机制是否存在安全威胁。

本发明在获取到用于控制车辆的应用程序内的元素定位信息后,可以根据元素定位信息和测试策略生成测试脚本,其中,测试策略内包括若干条不同的验证信息,这些验证信息依据预设构成规则生成,通过执行测试脚本可控制应用程序按照不同的验证信息生成对应的测试请求报文并发送至服务器端,从而实现对移动终端和服务器端之间信息传输过程中的安全测试。由于本发明通过测试脚本直接控制应用程序去生成测试请求报文,因此不需要逆向应用程序去获取加密算法来生成报文,而且只需更改测试脚本的相关参数便可适用不同的应用程序,具有较高的可移植性。

请参阅图10,本发明实施例还公开了一种远程车辆控制系统的安全测试装置,包括:

获取模块100,用于获取移动终端中用于控制车辆的应用程序的元素定位信息,元素定位信息反映应用程序的显示界面中各个元素的位置;

生成模块200,用于根据元素定位信息和测试策略生成测试脚本,测试策略包括若干条不同的验证信息,验证信息依据预设构成规则生成;

测试模块300,用于通过测试脚本控制应用程序按照不同的验证信息生成对应的测试请求报文并发送至服务器端。

本发明能够实现对移动终端和服务器端之间信息传输过程中的安全测试,而且由于本发明通过测试脚本直接控制应用程序去生成测试请求报文,因此不需要逆向应用程序去获取加密算法来生成报文,而且只需更改测试脚本的相关参数便可适用不同的应用程序,具有较高的可移植性。

请参阅图11,本发明实施例还公开了一种电子设备,包括:

处理器40;

存储器50,其中存储有处理器40的可执行指令;

其中,处理器40配置为经由执行可执行指令来执行如上所述的远程车辆控制系统的安全测试方法。

本发明实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上所述的远程车辆控制系统的安全测试方法。

本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行如上所述的远程车辆控制系统的安全测试方法。

应当理解,在本发明实施例中,所称处理器可以是中央处理模块(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。

以上所揭露的仅为本发明的较佳实例而已,不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,均属于本发明所涵盖的范围。

技术分类

06120114716664