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

一种针对车载终端系统的漏洞检测方法及系统

文献发布时间:2023-06-19 10:54:12


一种针对车载终端系统的漏洞检测方法及系统

技术领域

本发明属于软件测试领域,具体涉及一种针对车载终端系统的漏洞检测方法及系统。

背景技术

近年来,车联网技术发展迅速,越来越多的汽车使用车载终端系统,如导航系统、智能驾驶、蓝牙音乐等,使人们出行更加方便快捷。然而,新兴的车载终端系统安全防护功能较为低下,且与外界系统直接相连,存在着各种各样的漏洞风险,这些漏洞成为攻击者的主要攻击对象,不仅仅造成车辆财产的损失,更可能会威胁到车辆使用者的生命安全。然而,针对车载终端系统的漏洞检测技术仍处于起步阶段。

现有的漏洞检测技术更多的是针对PC端的检测,针对车载终端的检测技术少之又少,且只能检测若干个孤立的漏洞。然而,漏洞之间往往都是有联系的,这种联系一旦被非法人员所利用攻击主机,将会对主机带来巨大的危害。这种危害不但具有隐蔽性,并且提高了攻击成功的概率。例如,在某车载终端系统中,存在着一个漏洞A,可提升一个远程访问者的权限为系统普通用户,访问者只能查找一些普通的数据,不能访问更多的系统资源,因此,单个漏洞A对系统的威胁可忽略不计。但是,若系统中存在一个可提升普通用户权限为root的漏洞B,那么远程访问者就可能获取该系统的root权限,进而可以获取系统更重要的资料。可以看出,漏洞A造成的后果(提升访问者为用户权限)被漏洞B放大了,这就是组合漏洞,即A->B,它能带来更严重的后果。

发明内容

针对上述技术问题,本发明提供一种针对车载终端系统的漏洞检测方法及系统,能够更好地检测组合型漏洞。

本发明解决上述技术问题的技术方案如下:

第一方面,本发明提供一种针对车载终端系统的漏洞检测方法,包括:

收集车载终端系统的基本信息;

执行谓词分析建模,将所述基本信息抽象为谓词的表示形式,生成谓词形式的日志信息;

对漏洞信息库中开放的漏洞描述进行分析,形成攻击模式形式的漏洞信息;

根据所述谓词形式的日志信息和所述攻击模式形式的漏洞信息实现攻击模式实例化算法,生成攻击图形式的组合漏洞报告。

进一步,所述收集车载终端系统的基本信息,具体包括:

利用TCP协议向车载终端系统中注入漏洞,获取所述车载终端系统返回的已存在的漏洞及开放的端口;

使用Nmap扫描工具,指定目标节点,向所述车载终端系统发送基于UDP协议的请求,获取所述车载终端系统返回的节点主机运行的服务信息;

使用SNMP协议,向车载终端系统发送请求,获取所述车载终端系统返回的指定节点的相关网络拓扑信息。

进一步,所述执行谓词分析建模,具体包括:采用结构体数据结构的方式进行谓词建模。

进一步,所述对漏洞信息库中开放的漏洞描述进行分析,形成攻击模式形式的漏洞信息,具体包括:

提取出漏洞信息库中每个漏洞发生的前提和后果,并抽取出每个所述漏洞的所述前提和后果的共同点,形成攻击模式形式的漏洞信息。

进一步,所述漏洞信息的描述形式为,其中,Name是攻击模式的名称;Vuls集合包含了该攻击模式所能利用的所有漏洞;Var是变量集合,其中的每个变量以向量表示,其中,v是变元,t为该变元所属type的类型,包括:主机IP、服务名、漏洞名称、协议、端口号、访问文件权限;Pre和Eff分别表示该攻击模式可被利用的前提和后果,即发生的前提以及对主机造成的后果。

进一步,所述根据所述日志信息和所述漏洞信息实现攻击模式实例化算法,生成攻击图形式的组合漏洞报告,具体包括:

根据所述谓词形式的日志信息,匹配攻击模式形式的漏洞信息中的前提,若匹配成功,则实例化所述攻击模式形式的漏洞信息,若将所述攻击模式形式的漏洞信息中的后果是其他攻击模式形式的漏洞信息的前提,则将所述攻击模式形式的漏洞信息与其他攻击模式形式的漏洞信息进行关联,如此循环,最终形成有向图结构的原子攻击集合,生成攻击图,输出组合漏洞结果,完成漏洞检测。

进一步,所述根据所述日志信息和所述漏洞信息实现攻击模式实例化算法,生成攻击图形式的组合漏洞报告,具体还包括:

若匹配失败,则终止攻击模式实例化过程,不再对所述攻击模式形式的漏洞信息中的其余前提实例化。

第二方面,本发明提供一种针对车载终端系统的漏洞检测系统,包括:

日志收集模块,用于收集车载终端系统的基本信息;

结构化建模模块,用于执行谓词分析建模,将所述基本信息抽象为谓词的表示形式,生成谓词形式的日志信息;

漏洞数据库模块,用于对漏洞信息库中开放的漏洞描述进行分析,形成攻击模式形式的漏洞信息;

攻击图构建模块,用于根据所述谓词形式的日志信息和所述攻击模式形式的漏洞信息实现攻击模式实例化算法,生成攻击图形式的组合漏洞报告。

进一步,所述日志收集模块,具体用于:

利用TCP协议向车载终端系统中注入漏洞,获取所述车载终端系统返回的已存在的漏洞及开放的端口;

使用Nmap扫描工具,指定目标节点,向所述车载终端系统发送基于UDP协议的请求,获取所述车载终端系统返回的节点主机运行的服务信息;

使用SNMP协议,向车载终端系统发送请求,获取所述车载终端系统返回的指定节点的相关网络拓扑信息。

进一步,所述结构化建模模块,具体用于:采用结构体数据结构的方式进行谓词建模。

进一步,所述漏洞数据库模块,具体用于:

提取出漏洞信息库中每个漏洞发生的前提和后果,并抽取出每个所述漏洞的所述前提和后果的共同点,形成攻击模式形式的漏洞信息。

进一步,所述漏洞信息的描述形式为,其中,Name是攻击模式的名称;Vuls集合包含了该攻击模式所能利用的所有漏洞;Var是变量集合,其中的每个变量以向量表示,其中,v是变元,t为该变元所属type的类型,包括:主机IP、服务名、漏洞名称、协议、端口号、访问文件权限;Pre和Eff分别表示该攻击模式可被利用的前提和后果,即发生的前提以及对主机造成的后果。

进一步,所述攻击图构建模块,具体用于:

根据所述谓词形式的日志信息,匹配攻击模式形式的漏洞信息中的前提,若匹配成功,则实例化所述攻击模式形式的漏洞信息,若将所述攻击模式形式的漏洞信息中的后果是其他攻击模式形式的漏洞信息的前提,则将所述攻击模式形式的漏洞信息与其他攻击模式形式的漏洞信息进行关联,如此循环,最终形成有向图结构的原子攻击集合,生成攻击图,输出组合漏洞结果,完成漏洞检测。

进一步,所述攻击图构建模块,具体还用于:

若匹配失败,则终止攻击模式实例化过程,不再对所述攻击模式形式的漏洞信息中的其余前提实例化。

第三方面,本发明提供一种终端设备,包括:

处理器;以及

存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行上述方法。

第四方面,本发明提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行上述方法。

本发明的有益效果是:在动态分析技术基础上,设计攻击模式形式的漏洞信息库,对系统中的基本信息进行谓词分析建模,匹配漏洞信息库的漏洞信息并构建攻击图,得到漏洞之间的关系,即组合漏洞,从而更好的保证车载终端系统的安全性与可靠性。

附图说明

图1为Nessus体系结构图;

图2为本发明实施例提供的一种针对车载终端系统的漏洞检测系统的运行原理图;

图3为本发明实施例提供的实例化攻击模式算法实现流程图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

现有的漏洞检测技术更多的是针对PC端的检测,针对车载终端的检测技术少之又少,且只能检测若干个孤立的漏洞。主要分为静态分析技术和动态调试技术。静态分析技术主要针对系统程序源码进行分析,找到设计不正确的函数调用和函数返回,往往解决程序设计问题导致的缓冲区溢出、权限提升等危害;动态调试技术通过在系统服务运行时,直接向系统注入漏洞进行测试,使系统暴漏存在的问题,配合已知漏洞库信息,确定漏洞是否存在。如漏洞检测工具Nessus。

Nessus是一种网络漏洞扫描系统。它由五个部分组成:

(1)扫描引擎:扫描引擎根据用户设置的扫描策略选择相应的数据包或相应的扫描插件对目标系统进行全面扫描,发现系统中的安全漏洞。它是扫描器的主要部件。

(2)用户配置控制台:用户通过配置控制台来设置要扫描的目标系统,以及要采用的扫描策略。通常情况控制台可以是客户端或是web浏览器。

(3)扫描知识库:扫描知识库监控当前活动的扫描,将要扫描的漏洞的相关信息提供给扫描引擎,同时还接收由扫描引擎返回的扫描结果。

(4)漏洞数据库(或扫描方法库):漏洞数据库包含了各种操作系统的各种漏洞信息,以及检测漏洞的指令,网络系统漏洞数据库是根据安全专家对网络系统安全漏洞、黑客攻击案例的分析和系统管理员对网络系统安全配置的实际经验而形成的。扫描方法库(插件库)则包含了针对各种漏洞的模拟攻击方法。具体选用哪一种数据库要根据要采用哪一种漏洞检测技术来决定。若采用基于规则的匹配技术则使用漏洞数据库,若使用模拟攻击方法(即插件技术)则使用扫描方法库。

(5)结果存储和报告生成工具:根据扫描知识库中的扫描结果生成扫描报告,并存储。Nessus漏洞扫描工具的体系结构如图1所示。

静态分析技术局限性较大,只能检测关于程序设计方面的漏洞,无法检测系统中服务运行时的漏洞威胁,且只能针对源程序进行分析,非开源程序无法检测。动态调试技术相对于静态分析技术,能够检测出更多的漏洞,但该技术只能检测出系统中存在的孤立漏洞,而对系统造成更大危害的是组合型漏洞,该技术不能更好的检测。

本发明主要解决的问题是提供一种漏洞检测方法及系统。该系统针对于车载终端系统,在动态分析技术基础上,设计攻击模式形式的漏洞信息库,对系统中的基本信息进行谓词(Predicate)分析建模,匹配漏洞信息库的漏洞信息并构建攻击图,得到漏洞之间的关系,即组合漏洞。

图2为本发明实施例提供的一种针对车载终端系统的漏洞检测系统的运行原理图,如图2所示,该系统包括:

日志收集模块,用于收集车载终端系统的基本信息;

具体的,本发明是针对车载终端环境中的车载终端系统进行漏洞检测,车载终端环境有若干个待测试的车载终端系统,狭义的车载终端系统是指提供了导航、播放音乐等交互功能的车载娱乐系统(IVI),从技术角度上看车载终端系统是指汽车上具有计算、传输、存储等功能的电子单元组成的复杂系统。该系统除了IVI,还包含了蓝牙、WI-FI、蜂窝网络、电子控制单元(ECU)、CAN等重要部分。CAN是内部通信的总线,用来连接ECU、IVI等组件,负责将指令传输到各个组件,由组件完成最终的任务;ECU将CAN传来的信息按照内部程序进行计算,并将结果发送给执行部件。IVI直接通过Wi-Fi、移动蜂窝网与外部网络进行交互,存在漏洞的可能性最大,本发明主要对IVI进行漏洞检测。

如图2所示,日志收集模块用来收集车载终端系统上的基本信息,包括当前系统上的服务、开放端口、IP地址、用户权限以及系统已存在的孤立漏洞。对这些信息收集的作用是为后续对信息结构化建模以及组合漏洞的检测提供输入。本发明使用漏洞扫描工具Nessus,利用TCP协议向车载终端系统中注入漏洞,获取系统中已存在的漏洞及开放的端口并返回;使用Nmap扫描工具,指定目标节点,发送基于UDP协议的请求,返回节点主机运行的服务信息;使用SNMP协议,向车载终端系统发送请求,返回指定节点的相关网络拓扑信息,如主机地址等。

结构化建模模块,用于执行谓词分析建模,将所述基本信息抽象为谓词的表示形式,生成谓词形式的日志信息。

具体的,结构化建模模块是对收集到的车载终端系统基本信息的一个抽象化描述,从而与攻击模式进行匹配,检测出能够形成组合漏洞的漏洞,且大大降低构建的复杂度。为了能够形式化的描述车载终端系统的基本信息,本发明使用谓词(Predicate)进行建模,将基本信息抽象为谓词的表示形式,如:vulExists(h:HostID,sn:ServiceName,cveId:VulID)表示主机h上的服务sn具有漏洞cveId。

漏洞数据库模块,用于对漏洞信息库中开放的漏洞描述进行分析,形成攻击模式形式的漏洞信息。

具体的,漏洞数据库模块包含漏洞信息库以及漏洞知识库两部分。漏洞信息库是开放的漏洞数据库,存放目前世界上所有已知CVE漏洞信息。漏洞知识库是通过对漏洞信息库的漏洞信息进行分析和建模,进而存放攻击模式形式的漏洞信息。攻击模式是指在分析大量漏洞信息的基础上,提取出漏洞发生的“前提”和“后果”,并抽取出它们的共同点,形成描述漏洞的一个抽象化形式。攻击模式不是对一个漏洞的描述,而是对一类漏洞的描述。每个攻击模式以描述。Name是攻击模式的名称;Vuls集合包含了该攻击模式所能利用的所有漏洞,若Class取值为β,则Vuls为Φ;Var是变量集合,每个变量以向量表示,其中v是变元,t为该变元所属type的类型,包括:Host(主机IP)、ServiceName(服务名)、CveID(漏洞名称)、Protocol(协议)、Port(端口号)、Access(访问文件权限)。如<8080,Port>表示端口号为8080;表示系统运行mysql服务;Pre和Eff分别表示该攻击模式可被利用的前提和后果,即发生的前提以及对主机造成的后果。

例如,表1是“内存溢出导致获取系统ROOT权限”攻击模式描述。其中,Root_buff是攻击模式名;Vuls描述了该模式是由漏洞CVE-2003-0245、CVE-2006-2372等抽象而来的;Var表示该攻击模式下的所有变量,其中s、d分别表示源主机和目的主机,sn表示主机上运行的服务,cveId表示漏洞ID,pro表示使用的协议,如TCP协议,port表示开放的端口号;Pre表示该攻击模式可产生的前提是:①目的主机d运行着服务sn,使用pro协议,开放port端口号;②目的主机d上运行的服务sn存在漏洞cveId;③源主机s和目的主机d之间开放的端口号port,使用pro协议进行通信;④源主机s可被攻击者使用ROOT权限执行;Eff表示该攻击模式可产生的后果是:①目的主机d被攻击者获取ROOT权限;②目的主机d上的服务sn拒绝服务。

表1内存溢出导致获取系统ROOT权限

攻击图构建模块,用于根据所述谓词形式的日志信息和所述攻击模式形式的漏洞信息实现攻击模式实例化算法,生成攻击图形式的组合漏洞报告。

具体的,攻击图构建模块根据目标环境obj中谓词形式的信息,去匹配攻击模式中的前提(Pre),若匹配上,则实例化该攻击模式,该攻击模式的后果(Eff)可能是其他攻击模式的前提,即一个漏洞造成的后果是其他漏洞产生的前提,从而将漏洞关联起来,如此循环,最终形成有向图结构的原子攻击集合,生成攻击图,输出组合漏洞结果,完成漏洞检测。

本发明提供的一种针对车载终端系统的漏洞检测方法,包括:

步骤1、收集车载终端系统的基本信息。

具体的,本发明所有工作均在一台工作机上完成,通过日志收集模块中收集车载终端系统的基本信息,包括当前系统上使用的服务、开放的端口、系统IP地址以及系统已存在的孤立漏洞等。使用漏洞扫描工具Nessus,利用TCP协议发送ACK请求探测系统中已开放的端口并返回端口信息,再利用TCP协议向开放的端口注入漏洞,暴漏系统的漏洞信息并返回;使用Nmap扫描工具,指定目标节点,发送基于UDP协议的请求,返回节点主机运行的服务信息;使用SNMP协议,向车载终端系统发送请求,返回指定节点的相关网络拓扑信息,如主机地址等。将这些信息统一收集到工作机的basic_logs目录下,作为步骤2的输入。

步骤2、执行谓词分析建模,将所述基本信息抽象为谓词的表示形式,生成谓词形式的日志信息。

具体的,在结构化建模模块中,将步骤1获取的基本信息作为输入,执行谓词分析建模,将系统存在漏洞、已开放的端口、已存在的服务等基本信息抽象为谓词的表示形式,作为步骤4的输入。

本发明采用结构体数据结构的方式进行谓词建模,将基本信息抽象为7种谓词,在数据结构中设计为结构体来更清晰的展示和使用,如结构体vulExists,包含成员变量h、sn、cveId、VulID。具体设计的结构体如表2所示。

表2谓词描述

步骤3、对漏洞信息库中开放的漏洞描述进行分析,形成攻击模式形式的漏洞信息。

具体的,在漏洞数据库模块中,对漏洞信息库中开放的漏洞描述进行分析,形成攻击模式形式的漏洞描述。攻击模式是指在分析大量漏洞信息的基础上,提取出漏洞发生的“前提”和“后果”,并抽取出它们的共同点,形成描述漏洞的一个抽象化形式。每个攻击模式以描述,存放在漏洞知识库中,并作为步骤4的输入。

步骤4、根据所述谓词形式的日志信息和所述攻击模式形式的漏洞信息实现攻击模式实例化算法,生成攻击图形式的组合漏洞报告。

具体的,在漏洞数据库模块中,对漏洞信息库中开放的漏洞描述进行分析,形成攻击模式形式的漏洞描述。攻击模式是指在分析大量漏洞信息的基础上,提取出漏洞发生的“前提”和“后果”,并抽取出它们的共同点,形成描述漏洞的一个抽象化形式。每个攻击模式以描述,存放在漏洞知识库中,并作为步骤4的输入。

图3示出了实例化攻击模式算法实现流程图,详述如下:

在S201中,遍历目标环境obj中的每个谓词f;

在S202中,令关于f的原子攻击集合Ack

在S203中,对于谓词f,遍历漏洞信息库中的每个攻击模式AP,遍历结束执行S201;

在S204中,判断AP.Pre是否匹配上f,若匹配,则执行S205,否则执行S203,继续遍历AP;

在S205中,初始化原子攻击集合Ack=Φ;

在S206中,求出攻击模式AP关于f的值域Φ

在S207中,遍历值域Φ

在S208中,实例化该攻击模式,令Ack.Pre=Φ

在S209中,Ack

重复上述步骤S201-S209,直至算法终止,输出原子攻击集合。

本发明提供一种针对车载终端系统的漏洞检测方法及系统,在动态分析技术基础上,不仅仅检测出若干个孤立的漏洞,更能检测出漏洞之间的组合漏洞,从而更好的保证车载终端系统的安全性与可靠性。

需要说明的是,本发明通过构建攻击图完成组合漏洞的检测,关键点在于目标环境建模技术与漏洞知识库构建技术,本发明采用谓词(Predicate)分析建模与攻击模式构建技术,除此之外,还有AGML建模技术、LAMBDA建模语言、Horn建模语言等技术。本发明提出的建模技术,相对这些方法,能够降低建模的复杂度。

读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述系统实施例中的模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种针对车载终端系统的漏洞检测方法及系统
  • 一种Android车载终端系统漏洞检测系统及方法
技术分类

06120112722298