智能家居设备的通信协议测试方法及系统技术方案

技术编号:14854165 阅读:105 留言:0更新日期:2017-03-18 21:03
本发明专利技术提供了一种智能家居设备的通信协议测试方法及系统,该方法包括:获取被测对象与对端系统之间基于协议会话的数据包;对数据包进行协议解析,判断被测对象所用通信协议是否为已知协议;当被测对象所用通信协议为非已知协议时,获取数据包的可变字段;根据可变字段对对端系统发给被测对象的基于协议会话的数据包进行变异操作,生成被测对象的测试用例;将测试用例发送给被测对象执行,监测被测对象是否发生异常。本发明专利技术适用于智能家居系统通信协议的通信协议测试方法及系统,针对智能家居协议私有、加密等特点,引入包含已知协议模型和异常测试用例生成规则的协议知识库以及加密算法知识库,有效提高了协议解析效率,并支持对加密协议的测试。

【技术实现步骤摘要】

本专利技术涉及智能家居设备的测试
,尤其涉及一种智能家居设备的通信协议测试方法及系统
技术介绍
随着物联网、大数据分析等技术的快速发展,智能家居设备应用越来越广泛,给日常生活带来极大便利。与此同时,作为与消费者生活紧密相关的消费领域,其所面临的安全威胁也越来越严峻,针对智能家居的网络攻击种类不断更新、事件层出不穷,通信协议作为智能家居设备互联互通的重要环节,其安全性测试已经引起了业界越来越广泛的关注。通信协议作为智能家居节点之间完成通信或服务所必须遵循的规则和约定,是智能家居领域的关键实现技术之一,是保证数据在节点之间稳定安全传输的基础。由于数据传播、节点计算、存储、供电能力有限等特点,网络传输过程中面临数据监听、中间人攻击、节点身份伪造、拒绝服务攻击等各类威胁。然而,协议在设计和实现的过程中,由于安全考虑不足、理解有偏差或编码失误等原因,很容易造成纰漏。因此,检测通信协议的安全性,发现协议潜在的安全问题,对于提高智能家居应用的安全性具有非常重要的意义。Fuzzing是一种常用的网络协议测试技术,通过不断生成大量畸形数据来检验网络协议等测试对象中存在于输入验证和应用逻辑中的安全脆弱点,具有自动化程度高、适用性广等特点。通过Fuzzing测试可以快速有效地发现协议或程序的漏洞,近年来已被开发商和安全研究者应用推广,统计数据表明大约20%~25%的安全漏洞是通过Fuzzing测试发现的。一般来说Fuzzing测试包括协议解析、测试用例生成、测试用例执行、异常捕获和定位四个步骤。协议解析是通过网络数据流量分析或程序二进制动态跟踪分析等方法对协议实现进行逆向,获取包括协议的层次、字段结构、会话过程等在内的协议结构信息的;测试用例生成阶段需要依据协议解析阶段整理出来的字段结构,采用变异的方式生成畸形测试用例;测试用例执行阶段将生成的变异用例发向被测对象并执行;异常捕获和定位阶段是指通过多种探测手段发现由测试用例出发的异常,并获取保存异常相关信息辅助异常定位。由于实际应用中各步骤所采用的具体方法各异,不同Fuzzing测试的执行效率也会有很大区别。生成测试用例对目标对象执行路径的覆盖率,以及异常触发率是影响Fuzzing测试方法有效性的两个关键指标。目前,国内尚没有专门针对智能家居通信协议的Fuzzing测试框架提出。现有的Fuzzing测试框架分为两类,一类是通用Fuzzing测试框架,需要根据目标协议特征进行二次开发,要求使用者精确了解网络协议细节并通过繁重的手工配置工作来构造大量测试数据集,一般来说手工配置方法所获得的测试用例覆盖率有限,且执行效率较低;另一类是针对具体某一种协议如智能家居领域的蓝牙、Zigbee等协议提出的具体Fuzzing测试框架,此类框架局限性较大,通用性不高且开发周期长。另外,面向智能家居通信协议的Fuzzing测试由于自身特点还面临其它两方面挑战:1)许多智能家居厂商采用非公开的私有协议,且未公开所采用的协议细节,针对这类未知协议,已有的测试框架暂不能支持有效的自动化测试;2)由于智能家居系统中,通信协议具有面向控制的特点,为了保证传输信令的CIA特性,协议一般引入身份认证、会话加密等机制,加大了协议解析和变异数据包的难度,目前尚无较好的解决方案。Fuzzing测试框架的有效性主要基于所生成测试用例对测试对象执行路径的覆盖率和异常触发率,因此Fuzzing测试系统的关键是需要产生路径覆盖深且多的测试用例。传统Fuzzing测试方法按照测试用例生成方式,大致可分为三类:1)基于变异的Fuzzing测试方法。即通过用户端配置和网络抓包,收集典型输入数据,然后通过插入畸形字节或变换字节的方式生成测试用例。这类方法不需要任何先验知识,但后续生成的变异测试用例对初始值有着很强的依赖性,容易导致代码覆盖率较低;2)基于生成的Fuzzing测试方法。即通过分析被测对象的形式化模型,来分析构造测试用例,这类方法需要在已知协议逻辑描述的前提下,进行分析建模,需要手工配置,难度和工作量较大;3)基于白盒的Fuzzing测试方法。即通过对被测系统的源代码进行分析,构造测试用例,这类方法需要获取被测对象源代码,具有一定局限性。目前,国内尚无针对智能家居系统通信协议安全性分析和测试的专用工具。且对于私有或加密的通信协议的Fuzzing测试也尚无有效方案,一般只能依靠人工对协议进行逆向分析,效率非常低。传统对于私有协议的测试,一般会选择基于变异的非智能Fuzzing测试方法,这样虽然可以避开对协议解析的艰难过程,但是由于缺少对协议本身的认识,可能会因为盲目构造数据包导致产生大量无效测试用例,从而大幅降低测试效率。而对于加密协议,传统方法只能通过逆向分析手段先将其解密,该过程实现困难较大,且在测试用例执行阶段还需要重新把数据恢复成加密形式发送给目标对象,使得整个Fuzzing过程时耗较大。
技术实现思路
为解决上述技术问题,本专利技术提供了一种智能家居设备的通信协议测试方法及系统。本专利技术实施例一方面提供了一种智能家居设备的通信协议测试方法,所述测试方法包括:获取被测对象与对端系统之间基于协议会话的数据包;对所述数据包进行协议解析,判断被测对象所用通信协议是否为已知协议;当被测对象所用通信协议为非已知协议时,获取所述数据包的可变字段;根据所述可变字段对对端系统发给被测对象的基于协议会话的数据包进行变异操作,生成被测对象的测试用例;将所述测试用例发送给被测对象执行,监测被测对象是否发生异常。本专利技术实施例还提供了一种智能家居设备的通信协议测试系统,所述测试系统包括:数据包获取单元,用于获取被测对象与对端系统之间基于协议会话的数据包;协议解析单元,用于对所述数据包进行协议解析,判断被测对象所用通信协议是否为已知协议,并当被测对象所用通信协议为非已知协议时,获取所述数据包的可变字段;测试用例生成单元,用于根据所述可变字段对对端系统发给被测对象的基于协议会话的数据包进行变异操作,生成被测对象的测试用例;异常监测单元,用于将所述测试用例发送给被测对象执行,监测被测对象是否发生异常。本专利技术适用于智能家居系统通信协议的通信协议测试方法及系统,可针对智能家居协议私有、加密等特点,对传统Fuzzing基础框架改进和二次开发,引入包含已知协议模型和异常测试用例生成规则的协议知识库,以及加密算法知识库,提出一种基于知识驱动的协议解析和用例生成方法,有效提高了协议解析效率,并支持对加密协议的测试。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例智能家居设备的通信协议测试方法的流程示意图;图2为本专利技术实施例判断被测对象所用通信协议是否为已知协议的流程示意图;图3为本专利技术实施例当数据包加密时生成可用测试用例的流程示意图;图4为本专利技术实施例智能家居设备的通信协议测试系统的结构示意图;图5为本专利技术实施例协议解析单元2的结构示意图;图6为本专利技术实施例测试用例生成单元3的结构示意图。具体实施方式下面将结合本发本文档来自技高网
...
智能家居设备的通信协议测试方法及系统

【技术保护点】
一种智能家居设备的通信协议测试方法,其特征在于,所述测试方法包括:获取被测对象与对端系统之间基于协议会话的数据包;对所述数据包进行协议解析,判断被测对象所用通信协议是否为已知协议;当被测对象所用通信协议为非已知协议时,获取所述数据包的可变字段;根据所述可变字段对对端系统发给被测对象的基于协议会话的数据包进行变异操作,生成被测对象的测试用例;将所述测试用例发送给被测对象执行,监测被测对象是否发生异常。

【技术特征摘要】
1.一种智能家居设备的通信协议测试方法,其特征在于,所述测试方法包括:获取被测对象与对端系统之间基于协议会话的数据包;对所述数据包进行协议解析,判断被测对象所用通信协议是否为已知协议;当被测对象所用通信协议为非已知协议时,获取所述数据包的可变字段;根据所述可变字段对对端系统发给被测对象的基于协议会话的数据包进行变异操作,生成被测对象的测试用例;将所述测试用例发送给被测对象执行,监测被测对象是否发生异常。2.根据权利要求1所述的智能家居设备的通信协议测试方法,其特征在于,对所述数据包进行协议解析,判断被测对象所用通信协议是否为已知协议,具体包括:采用多模式匹配算法,将所述数据包与预设的协议知识库中的已知协议模型进行匹配,判断被测对象所用通信协议是否为已知协议。3.根据权利要求1所述的智能家居设备的通信协议测试方法,其特征在于,当被测对象所用通信协议为非已知协议时,所述测试方法还包括:判断所述被测对象与对端系统之间基于协议会话的数据包是否为加密数据包;当所述数据包为加密数据包时,重启对端系统,重新获取对端系统发给被测对象的基于协议会话的新数据包。4.根据权利要求3所述的智能家居设备的通信协议测试方法,其特征在于,根据所述可变字段对对端系统发给被测对象的基于协议会话的数据包进行变异操作,生成被测对象的测试用例,具体包括:根据所述对端系统的加密算法及会话密钥对所述新数据包进行解密;在所述新数据包的所述可变字段处进行变异操作;利用所述加密算法及会话密钥对经过变异操作的新数据包进行加密;更新加密后的数据包的校验值,生成被测对象的测试用例。5.根据权利要求3所述的智能家居设备的通信协议测试方法,其特征在于,当被测对象所用通信协议为已知协议时,所述测试方法还包括:判断所述被测对象与对端系统之间基于协议会话的数据包是否为加密数据包;当所述初始数据包为加密数据包时,重启对端系统,重新获取对端系统发给被测对象的基于协议会话的新数据包;根据所述对端系统的加密算法及会话密钥对所述新数据包进行解密;根据所述通信协议的变异规则对所述新数据包进行变异操作;利用所述加密算法及会话密钥对经过变异操作的新数据包进行加密;更新加密后的数据包的校验值,生成被测对象的测试用例。6.根据权利要求4或5所述的智能家居设备的通信协议测试方法,其特征在于,在获取被测对象与对端系统之间基于协议会话的数据包之前,所述测试方法还包括:遍历所述对端系统的内存,定位所述对端系统的加密处理切入点,以获取所述对端系统的加密算法及会话密钥并存储。7.根据权利要求2所述的智能家居设备的通信协议测试方法,其特征在于,所述测试方法还包括:如被测对象发生异常,记录异...

【专利技术属性】
技术研发人员:刘陶罗璎珞宁华詹维骁孙龙
申请(专利权)人:工业和信息化部电信研究院
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1