一种CAN设备安全测试系统及测试方法与流程

文档序号:20162675发布日期:2020-03-24 21:10阅读:247来源:国知局
一种CAN设备安全测试系统及测试方法与流程
本发明涉及一种can设备安全测试系统及测试方法,属于工业信息化管理
技术领域

背景技术
:随着互联网技术的发展,通信技术和控制技术的融合,传统的工业控制系统逐渐向网络化方向发展,更多的信息资源共享、更高效的数据处理技术、更快速的数据传输技术都为传统工控领域带来了飞速发展,但同时也带来了潜在的风险,传统封闭工控网络中的协议设备暴露在互联网中,如果遭到恶意攻击必然会导致整个系统网络不能正常工作,使企业客户遭受重大损失。为提高工控互联网系统的安全性和稳定性,提高系统中工控协议设备的健壮性,对协议设备进行有效地安全检测,及时采取措施是规避风险的有效途径。can是一种用于实时应用、有效支持分布式控制系统的串行通信协议总线,为全球应用最广泛的现场总线之一。can协议最早是由德国博世公司在20世纪80年代专门为汽车行业开发的一种串行通信总线,由于该协议的高性能、高可靠性以及独特的can-bus总线技术而越来越受到重视,被广泛应用于工业控制领域。1991年can总线技术规范(version2.0)制定并发布。其中2.0a给出了can报文标准格式,2.0b给出了标准的和扩展的两种格式,不同之处在于标准帧采用11位标识符,扩展帧采用29位标识符。can总线协议规范描述了五种不同的帧类型:数据帧、远程帧、错误帧、过载帧和帧间隔。数据帧和远程帧结构类似,根据标识符长度分标准帧和扩展帧,一帧传输数据量最大为8字节,这种短帧结构使得can-bus总线实时性很高、抗干扰能力强,适用于汽车和工控应用。can-bus的错误帧共有五种类型:crc错误、格式错误、应答错误、位发送错误和位填充错误。过载帧用于接受节点未做好接收下一帧数据准备时发送给发送节点,由过载标志和过载帧界定符组成。帧间隔用于数据帧或远程帧与前一帧分离,过载帧和错误帧前面没有间隔。can总线的这种短帧结构传输方式的优越性使得现场总线成为工控系统领域发展的必然趋势,基于can总线产生了devicenet和canopen高层协议标准,目前在工控系统中得到广泛应用。devicenet协议是基于can总线技术并符合全球工业标准的开放型通信网络,devicenet规范定义了一个网络通信标准,使得工业控制系统的各个设备之间可以进行数据通信,除了提供iso模型应用层定义以外,还定义了部分物理层和数据链路层。devicenet的应用层协议采用的是通用工业协议cip。canopen是架构在can上的高层通讯协定,是基于can-bus分布式工业控制技术的标准,由生产厂商和用户联合cia共同开发。canopen实现了osi模型中的网络层以上(包括网络层)的协定。canopen已经在广泛的工业通信上建立了标准,canopen标准包括寻址方案、数个小的通讯子协定及由设备子协定所定义的应用层。canopen支持对象字典(对象字典是每个canopen设备中心元素并描述设备的功能)、设备描述(描述自动控制系统中主要设备类型的属性和特点)、使用pdo/sdo进行数据传输(pdo处理段过程数据的快速交换,通过sdo访问对象字典的入口)、网络管理(用来管理网络设备的状态)。以上两个can高层协议都是can总线技术在工业领域的应用,can总线安全风险在于:1、通信缺乏加密和访问控制机制,可被攻击者逆向总线通信协议,分析出协议控制指令,用于攻击指令伪造;2、通信缺乏认证及消息校验机制,不能对攻击者伪造、篡改的异常消息进行识别和预警。鉴于can总线的特性,攻击者可通过物理侵入或远程侵入的方式实施消息伪造、拒绝服务、重放等攻击。如果can高层协议设备本身存在协议安全漏洞,那么攻击很容易造成设备故障,或者信息泄露。随着devicenet和canopen两个can高层协议的广泛使用,对相关设备入网前的测试也越来越受到重视,相关研究主要集中在对协议一致性测试方面,测试can设备协议是否与标准的can高层协议一致,保证can设备间的正常通信。关于协议的安全测试方法研究尚不多,只是对can协议的脆弱性和风险分析,还没有成熟的产品对can协议设备进行系统的安全测试。技术实现要素:本发明所要解决的技术问题是提供一种can设备安全测试系统,基于支持can协议的通信机制,能够对高层协议进行高效测试,针对can被测设备的协议的健壮性,实现稳定验证。本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种can设备安全测试系统,基于面向工控及物联网协议的模糊测试平台,实现对can被测设备的测试,模糊测试平台中的测试引擎通过扩展usbcan接口卡对接can被测设备,实现测试引擎与can被测设备之间基于can通讯通道的相互通讯;模糊测试平台中内置基于其脚本语法规则的预设devicenet协议测试脚本库;基于预设devicenet协议测试脚本库中各测试脚本关键字transport的定义对can设备进行识别,测试引擎结合模糊测试平台中的异常数据库,应用预设devicenet协议测试脚本库中、基于关键字protocol所定义不同can传输帧格式协议的各个预设测试脚本,经扩展usbcan接口卡针对can被测设备进行can传输帧格式协议的测试。作为本发明的一种优选技术方案:所述模糊测试平台中还内置基于其脚本语法规则的预设canopen协议测试脚本库;测试引擎根据模糊测试平台中的异常数据库,应用预设canopen协议测试脚本库中各预设类型报文的测试脚本,经扩展usbcan接口卡针对can被测设备进行can传输帧格式协议的测试。与上述相对应,本发明所要解决的技术问题是提供一种基于can设备安全测试系统的测试方法,基于支持can协议的通信机制,能够对高层协议进行高效测试,针对can被测设备的协议的健壮性,实现稳定验证。本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于can设备安全测试系统的测试方法:定义所述预设devicenet协议测试脚本库中xml测试脚本语言关键字transport=“can”;所述测试方法包括步骤:步骤a.所述扩展usbcan接口卡基于测试脚本为can的devicenet协议或canopen协议,启动can通道,实现测试引擎与can被测设备之间的通讯连接,然后进入步骤b;步骤b.测试引擎根据模糊测试平台中的异常数据库,针对预设devicenet协议测试脚本库中不同can传输帧格式协议的各个预设测试脚本,并结合预设canopen协议测试脚本库中各预设类型报文的测试脚本,解析变异策略、生成帧格式异常数据,并进入步骤c;步骤c.测试引擎根据帧格式异常数据中devicenet协议测试脚本关键字protocol所定义的can传输帧格式协议,调用相应接口经扩展usbcan接口卡向can被测设备发送帧格式异常数据,并进入步骤d;步骤d.判断测试引擎是否发送失败或者未接收到来自can被测设备的返回数据,是则测试引擎重新调用相应接口经扩展usbcan接口卡向can被测设备发送帧格式异常数据;否则进入步骤e;步骤e.测试引擎接收到来自can被测设备的返回数据,并判断返回数据与所发送帧格式异常数据对应的预期返回数据是否相符,是则判定can被测设备不存在协议安全漏洞;否则判定can被测设备存在协议安全漏洞。作为本发明的一种优选技术方案:上述步骤b至步骤e执行测试方法的同时,还执行如下操作:测试引擎以预设频率经扩展usbcan接口卡向can被测设备发送监测脚本,用于获取can被测设备的当前状态,并判断所获当前状态与期望状态是否相符,是则不做任何进一步判定,否则判定can被测设备的状态因攻击性测试而发生改变。作为本发明的一种优选技术方案:所述预设canopen协议测试脚本库中各预设类型报文包括管理报文、服务数据对象sdo报文、过程数据对象pdo报文、预定义报文或者特殊功能对象报文。作为本发明的一种优选技术方案:所述管理报文用于针对测试引擎与can被测设备之间的通讯网络实现网络管理服务,管理报文包括nmt模块控制报文、nmt节点保护报文、nmtboot-up报文。作为本发明的一种优选技术方案:所述服务数据对象sdo报文用于访问设备对象的对象字典,即访问者can设备访问服务器can设备的对象字典或者请求服务,请求报文与应答报文彼此结构相同,服务数据对象sdo报文用于实现请求/应答协议,包括启动域下载、域分段下载、启动域上传、域分段上传和域传送中止。作为本发明的一种优选技术方案:所述过程数据对象pdo报文用于传输实时数据,其中,过程数据对象pdo报文的数据内容由对应can设备的id定义,过程数据对象pdo报文在对象字典中用2个对象描述过程数据对象pdo报文通信参数和过程数据对象pdo报文映射参数,过程数据对象pdo报文的内容是预定义或者在网络启动时配置的,can设备对象字典中描述了过程数据对象pdo报文与应用对象之间的映射关系。本发明所述一种can设备安全测试系统及测试方法,采用以上技术方案与现有技术相比,具有以下技术效果:本发明所设计can设备安全测试系统及测试方法,基于一个现有的工控协议模糊测试平台,开发支持can高层协议的测试套件,测试套件包含基于测试脚本语法规则的devicenet协议测试脚本和canopen协议测试脚本、以及与can被测设备进行协议数据交互的测试引擎,测试引擎能够自动解析包含变异策略的协议数据脚本,生成帧格式的测试数据包,并经扩展usbcan接口卡发送给can被测设备,同时接收到can被测设备的返回数据;整个设计技术方案能够对高层协议进行高效测试,针对can被测设备的协议的健壮性,实现稳定验证。附图说明图1是本发明设计can设备安全测试系统的架构示意图。具体实施方式下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。本发明设计了一种can设备安全测试系统,基于面向工控及物联网协议的模糊测试平台,实现对can被测设备的测试,如图1所示,该模糊测试平台是一个已经研发成功、面向工控及物联网协议的模糊测试平台,该平台支持50多种主流通信协议,目前已经发现了40多个原创0day漏洞,该模糊测试平台在对工控网络协议设备进行测试的过程中,模糊测试平台积累了丰富的变异数据库、敏感数据特征库等等。工业控制应用中,canopen和devicenet是开放式分布系统的主要标准代表,devicenet适合于工厂底层自动化,canopen适合于机械控制的嵌入式应用,它们在信息标识符分配、过程数据交换、点对点通信、网络管理等方面都有不同的实现方案。canopen提供通用的标识符库,可根据设备的需求应用于手动或自动定位标识符的所有设备和中间实例,可以完全由系统设计者决定标识符的使用以及数据通讯系统的实时行为。canopen规定了一个面向设备的标识符分配方案,这种方法可以供127台设备默认连接到一台主设备上,通过四位的功能代码可以区分16种基本功能。基本的devicenet标识符分配方案是面向节点的信息标识符的所有权,对于devicenet系统最多数量为64个的节点,其每一个节点拥有一组出自于3个信息组的标识符。canopen和devicenet为发送过程,与服务/设置数据所提供的通讯机制十分的相同。对于canopen,过程数据通过“过程数据对象(pdos)”传送。对于devicenet,过程数据通过“i/o信息”传送。关于信息触发模式,devicenet支持循环、改变状态和应用对象触发。canopen支持事件、应用请求、或预定义同步信息接收后的触发模式。canopen和devicenet为灵活地将应用数据映射到通讯对象而提供了非常完善的方法。canopen规定了有关应用对象映射。应用对象通过“pdo映射记录”的数据结构映射到pdo中,这个结构以对象标识符列表和数据长度的形式规定了映射的应用对象数据。devicenet中,应用数据的分组是由“集合”对象的实例规定的。“集合”对象的实例定义了发送的应用对象数据格式。关于服务信道,canopen根据cal复合型域协议提供了服务信道,通过服务信道,服务数据对象sdo可以在任何两台设备之间进行交换。devicenet提供了多用途的面向设备的信道和服务,对象属性的读写、对象的控制等均由“显式信息”执行。本发明所设计基于模糊测试平台的can被测设备测试方法中,如图1所示,模糊测试平台中的测试引擎通过扩展usbcan接口卡对接can被测设备,实现测试引擎与can被测设备之间基于can通讯通道的相互通讯;扩展usbcan接口卡实现了总线双向数据传输,实际应用中,扩展usbcan接口卡使用专用的工业级高速32位cpu,接收和发送速度大于8000帧/秒。扩展usbcan接口卡符合iso11898标准,支持can2.0a/b,支持标准帧、扩展帧、数据帧和远程帧。而且扩展usbcan接口卡体积小巧、即插即用等特点,可以使它非常方便地与测试装置集成,而且实际应用中,根据can被测设备的性能特点,可以选择不同配置的接口卡,以匹配被测设备的通信能力。实际应用当中,模糊测试平台基于平台所提供的高效模糊测试语言,开发基于其脚本语法规则的预设devicenet协议测试脚本库、以及预设canopen协议测试脚本库,并内置于模糊测试平台中。应用中,基于预设devicenet协议测试脚本库中各测试脚本关键字transport的定义对can设备进行识别,即transport=“can”,实现对can被测设备的识别,测试引擎结合模糊测试平台中的异常数据库,应用预设devicenet协议测试脚本库中、基于关键字protocol所定义不同can传输帧格式协议的各个预设测试脚本,经扩展usbcan接口卡针对can被测设备进行can传输帧格式协议的测试。同时,测试引擎还可根据模糊测试平台中的异常数据库,应用预设canopen协议测试脚本库中各预设类型报文的测试脚本,经扩展usbcan接口卡针对can被测设备进行can传输帧格式协议的测试。实际应用中,测试脚本示例如下:canopen的核心概念是设备对象字典,对象字典是一个有序的对象组;每个对象采用一个16位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8位的子索引。canopen网络中每个节点都有一个对象字典。对象字典包含了描述这个设备和它的网络行为的所有参数。具体实际应用中,所述预设canopen协议测试脚本库中各预设类型报文包括管理报文、服务数据对象sdo报文、过程数据对象pdo报文、预定义报文或者特殊功能对象报文。其中,管理报文用于针对测试引擎与can被测设备之间的通讯网络实现网络管理服务,管理报文包括nmt模块控制报文、nmt节点保护报文、nmtboot-up报文,管理报文的示例测试脚本如下。服务数据对象sdo报文用于访问设备对象的对象字典,即访问者can设备访问服务器can设备的对象字典或者请求服务,请求报文与应答报文彼此结构相同,服务数据对象sdo报文用于实现请求/应答协议,包括启动域下载、域分段下载、启动域上传、域分段上传和域传送中止。sdo基本结构如下表1所示。byte0byte1-2byte3byte4-7sdo命令字对象索引对象子索引**表1其中,**为最大4字节数据或4字节计数器,或者如下表2所示。byte0byte1-7sdo命令字最大7字节数据表2服务数据对象sdo报文的示例测试脚本如下。过程数据对象pdo报文用于传输实时数据,数据传送长度为1-8字节,其中,过程数据对象pdo报文的数据内容由对应can设备的id定义,过程数据对象pdo报文在对象字典中用2个对象描述过程数据对象pdo报文通信参数和过程数据对象pdo报文映射参数,过程数据对象pdo报文的内容是预定义或者在网络启动时配置的,can设备对象字典中描述了过程数据对象pdo报文与应用对象之间的映射关系。过程数据对象pdo报文的示例测试脚本如下。基于上述所设计can设备安全测试系统,本发明具体设计了基于此系统的测试方法,实际应用中,定义所述预设devicenet协议测试脚本库中xml测试脚本语言关键字transport=“can”,即实现对can被测设备的识别,并与can被测设备进行初始化连接;并执行如下步骤a至步骤e,实现设计测试方法的执行。步骤a.所述扩展usbcan接口卡基于测试脚本为can的devicenet协议或canopen协议,启动can通道,实现测试引擎与can被测设备之间的通讯连接,然后进入步骤b。实际应用中,步骤a具体为若扩展usbcan接口卡识别测试脚本为can的devicenet协议或canopen协议,则配置初始化参数,通信模式、波特率等;然后指定can通道,初始化设备;启动扩展usbcan接口卡的can通道,实现测试引擎与can被测设备之间的通讯连接。步骤b.测试引擎根据模糊测试平台中的异常数据库,针对预设devicenet协议测试脚本库中不同can传输帧格式协议的各个预设测试脚本,并结合预设canopen协议测试脚本库中各预设类型报文的测试脚本,解析变异策略、生成帧格式异常数据,并进入步骤c。步骤c.测试引擎根据帧格式异常数据中devicenet协议测试脚本关键字protocol所定义的can传输帧格式协议,调用相应接口经扩展usbcan接口卡向can被测设备发送帧格式异常数据,并进入步骤d。步骤d.判断测试引擎是否发送失败或者未接收到来自can被测设备的返回数据,是则测试引擎重新调用相应接口经扩展usbcan接口卡向can被测设备发送帧格式异常数据;否则进入步骤e。步骤e.测试引擎接收到来自can被测设备的返回数据,并判断返回数据与所发送帧格式异常数据对应的预期返回数据是否相符,是则判定can被测设备不存在协议安全漏洞;否则判定can被测设备存在协议安全漏洞。上述测试方法执行步骤b至步骤e的同时,还执行如下操作:测试引擎以预设频率经扩展usbcan接口卡向can被测设备发送监测脚本,用于获取can被测设备的当前状态,并判断所获当前状态与期望状态是否相符,是则不做任何进一步判定,否则判定can被测设备的状态因攻击性测试而发生改变。实际应用中,状态监测脚本示例如下:将本发明设计can设备安全测试系统及测试方法,应用于实际当中,can被测设备选取了一款车载模拟诊断器,当测试装置中的扩展usbcan接口卡与can被测设备进行连接,那么装置中的模糊测试平台可以构成can-bus网络中数据处理、数据采集的can-bus网络控制节点。模糊测试平台在现有框架下通过扩展测试引擎支持usbcan接口卡驱动与被测设备车载模拟诊断器建立can通道连接,并以devicenet和canopen等can高层协议为模板发送异常数据对诊断器进行模糊测试,模糊测试平台通过对诊断器返回值进行分析判断诊断器对can高层协议的实现是否存在漏洞。被测设备可以不仅限于车载网络系统中,还可以是现场总线实验室、工业控制、智能小区等can-bus网络中的节点设备,测试装置可根据实际can被测设备的通信性能集成不同的can接口卡完成实际测试。上述技术方案所设计can设备安全测试系统及测试方法,基于一个现有的工控协议模糊测试平台,开发支持can高层协议的测试套件,测试套件包含基于测试脚本语法规则的devicenet协议测试脚本和canopen协议测试脚本、以及与can被测设备进行协议数据交互的测试引擎,测试引擎能够自动解析包含变异策略的协议数据脚本,生成帧格式的测试数据包,并经扩展usbcan接口卡发送给can被测设备,同时接收到can被测设备的返回数据;整个设计技术方案能够对高层协议进行高效测试,针对can被测设备的协议的健壮性,实现稳定验证。上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1