CN106506280B - 智能家居设备的通信协议测试方法及系统 - Google Patents
智能家居设备的通信协议测试方法及系统 Download PDFInfo
- Publication number
- CN106506280B CN106506280B CN201611049525.XA CN201611049525A CN106506280B CN 106506280 B CN106506280 B CN 106506280B CN 201611049525 A CN201611049525 A CN 201611049525A CN 106506280 B CN106506280 B CN 106506280B
- Authority
- CN
- China
- Prior art keywords
- protocol
- measurand
- peer
- data packet
- test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Automation & Control Theory (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种智能家居设备的通信协议测试方法及系统,该方法包括:获取被测对象与对端系统之间基于协议会话的数据包;对数据包进行协议解析,判断被测对象所用通信协议是否为已知协议;当被测对象所用通信协议为非已知协议时,获取数据包的可变字段;根据可变字段对对端系统发给被测对象的基于协议会话的数据包进行变异操作,生成被测对象的测试用例;将测试用例发送给被测对象执行,监测被测对象是否发生异常。本发明适用于智能家居系统通信协议的通信协议测试方法及系统,针对智能家居协议私有、加密等特点,引入包含已知协议模型和异常测试用例生成规则的协议知识库以及加密算法知识库,有效提高了协议解析效率,并支持对加密协议的测试。
Description
技术领域
本发明涉及智能家居设备的测试技术领域,尤其涉及一种智能家居设备的通信协议测试方法及系统。
背景技术
随着物联网、大数据分析等技术的快速发展,智能家居设备应用越来越广泛,给日常生活带来极大便利。与此同时,作为与消费者生活紧密相关的消费领域,其所面临的安全威胁也越来越严峻,针对智能家居的网络攻击种类不断更新、事件层出不穷,通信协议作为智能家居设备互联互通的重要环节,其安全性测试已经引起了业界越来越广泛的关注。
通信协议作为智能家居节点之间完成通信或服务所必须遵循的规则和约定,是智能家居领域的关键实现技术之一,是保证数据在节点之间稳定安全传输的基础。由于数据传播、节点计算、存储、供电能力有限等特点,网络传输过程中面临数据监听、中间人攻击、节点身份伪造、拒绝服务攻击等各类威胁。然而,协议在设计和实现的过程中,由于安全考虑不足、理解有偏差或编码失误等原因,很容易造成纰漏。因此,检测通信协议的安全性,发现协议潜在的安全问题,对于提高智能家居应用的安全性具有非常重要的意义。
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为本发明实施例提供的智能家居设备的通信协议测试方法的流程示意图。如图1所示,上述测试方法主要包括以下步骤:
步骤S1、获取被测对象与对端系统之间基于协议会话的数据包。测试时,需要抓取被测对象与对端系统之间协议会话的数据包,以便后续处理。
步骤S2、对步骤S1中获取的数据包进行协议解析,判断被测对象所用通信协议是否为已知协议。若智能家居设备所用的通信协议为已知协议,则可以按照对已知协议进行测试时的变异规则来生成测试用例对其进行测试。
步骤S3、当被测对象所用通信协议为非已知协议时,获取步骤S1获取的数据包的可变字段。如果被测对象所用的通信协议为私有协议,例如智能家居设备的生产厂家采用非公开的私有协议,且未公开所采用的协议细节,则需要对被测对象与其对端系统之间基于协议会话的数据包进行解析,获取其可变字段。
步骤S4、根据步骤S3中获取的可变字段对对端系统发给被测对象的基于协议会话的数据包进行变异操作,生成被测对象的测试用例。
步骤S5、将步骤S4生成的测试用例发送给被测对象执行,监测被测对象是否发生异常。
本发明实施例适用于智能家居系统通信协议的通信协议测试方法,可针对智能家居协议私有的特点,通过根据被测对象与其对端系统之间基于协议会话的数据包的可变字段生成测试用例的方式,构造被测系统所用通信协议的有效测试用例,大大提高了测试效率。
在一实施例中,步骤S2判断被测对象所用通信协议是否为已知协议时,可调用包含已知协议模型的预设的协议知识库,将步骤S1中获取的数据包与协议知识库中的已知协议模型进行匹配,判断被测对象所用通信协议是否为已知协议。具体实施时,可按照图2所示步骤进行,主要包括以下步骤:
步骤S21、采用多模式匹配算法,将步骤S1中获取的数据包与预设的协议知识库中的已知协议模型进行匹配。
如上述数据包可与协议知识库中的已知协议模型匹配,说明被测对象所用通信协议是已知协议,进行步骤S22。否则,可确定被测对象所用通信协议为非已知协议,即其所用协议为私有协议,利用多序列比对算法猜测步骤S1中获取的数据包的可变字段(步骤S23)。
步骤S22、从协议知识库中调取对应的已知协议的变异规则等信息,此处的变异规则用于生成对应协议的异常测试用例。
步骤S24、将步骤S22获取的已知协议的变异规则等信息,或者或步骤S23中获取的数据包的可变字段信息发送给测试用例生成器以生成测试用例。此处的测试用例生成器用于根据协议解析结果生成被测对象所用通信协议的测试用例。
本发明实施例引入包含已知协议模型和异常测试用例生成规则的协议知识库,提出一种基于知识驱动的协议解析和用例生成方法,有效提高了协议解析效率,并支持对私有协议的测试。
在步骤S23中,利用多序列比对算法猜测数据包的可变字段时,可先采用类型匹配,将同类型的数据包提取出来,作为一个数据包组,然后对这些数据包组中的数据包进行多序列比对,得到反映数据包共性和差异的比对结果,即把不变域和可变域分了出来,得到了数据包的可变字段。
具体实施时,将一个数据包组用序列表示:seqs={seq1,seq2,....,seqn},其中seqi为经过填充空位后的数据包。首先,根据状态转换函数计算上述数据包组中两个数据包的相似值,得到一个相似度矩阵。然后,根据相似度矩阵按照动态规划算法回溯寻找最优的比对Bestmatch(seqi,seqj)。状态转换函数定义如下:
其中,Matrixij表示当前状态得分,mi,j是字节匹配得分,n为连续匹配的字节个数,b为连续匹配奖励,w是空位惩罚值,因为空位不属于原始数据包。
通过比较数据包长度,将长度最为接近的数据包两两分组,构建匹配的向导树。可以按照如下所示算法代码构建向导树:
然后,依据向导树进行渐进比对数据包的结构,从根节点开始,递归调用上面整个流程,将所有的插入空格位置列表gapList应用到叶子节点,最终可以猜测到数据包的可变字段。
在一实施例中,当被测对象所用通信协议为非已知协议时,在利用步骤S4生成测试用例时,可按照图3所示步骤进行:
步骤S41、判断步骤S1中获取的被测对象与对端系统之间基于协议会话的数据包是否为加密数据包。当所述数据包为加密数据包时,进行步骤S42。当所述数据包未加密时,按照步骤S47,在对端系统发给被测对象的基于协议会话的数据包的可变字段处进行变异操作即可,然后跳转至步骤S46,更新经过变异操作的数据包的校验值,即可生成有效的测试用例。
步骤S42、当所述数据包为加密数据包时,重启对端系统,重新获取对端系统发给被测对象的基于协议会话的新数据包。
步骤S43、根据对端系统的加密算法及会话密钥对所述新数据包进行解密。
步骤S44、根据步骤S3中获取的可变字段,在新数据包的所述可变字段处进行变异操作。
步骤S45、利用对端系统的加密算法及会话密钥对经过变异操作的新数据包进行加密。
步骤S46、更新加密后的数据包的校验值,生成被测对象的测试用例。
在对所述数据包进行解密之前,需要预先遍历所述对端系统的内存,定位对端系统的加密处理切入点,获取该对端系统所用的加密算法及会话密钥并存储至一共享加密信息文件中,以便于调用。可选地,还可将将对端系统所用的加密算法存储至一加密算法库中,在共享加密信息文件与加密算法库之间建立映射关系,当获知对端系统所用的加密算法后即可从加密算法库中调用相应的算法来对数据包进行解密。
当被测对象所用通信协议为已知协议时,可直接从协议知识库中调用该已知协议的变异规则等信息,然后判断所述被测对象与对端系统之间基于协议会话的数据包是否为加密数据包,并当所述数据包为加密数据包时,重启对端系统,重新获取对端系统发给被测对象的基于协议会话的新数据包。接着,根据所述对端系统的加密算法及会话密钥对所述新数据包进行解密,再根据所述通信协议的变异规则对所述新数据包进行变异操作。最后利用所述加密算法及会话密钥对经过变异操作的新数据包进行加密,并更新加密后的数据包的校验值,生成被测对象的测试用例。其整体流程与图3类似,不过当被测对象所用通信协议为已知协议时,生成测试用例时需要将图3中所示步骤S44的内容修改为:根据所述通信协议的对应的已知协议的变异规则对重启对端系统后获取的新数据包进行变异操作,还需将步骤S47的内容修改为:根据所述通信协议的对应的已知协议的变异规则对对端系统发给被测对象基于协议会话的数据包进行变异操作。除此两步骤之外,解密操作、加密操作以及校验值更新的步骤与被测对象所用通信协议为私有协议时的解密操作和加密操作大体相同。
另外,如被测对象发生异常,需要将这些异常信息记录下来,将引发异常的测试用例及其对应的变异规则发送给上述的协议知识库,采用自学习算法完善协议知识库中相应通信协议的变异规则。
本发明实施例针对智能家居协议私有、加密等特点,对传统Fuzzing基础框架进行了改进和二次开发,引入包含已知协议模型和异常测试用例生成规则的协议知识库,以及加密算法知识库,提出一种基于知识驱动的协议解析和用例生成方法,实现了对智能家居系统私有、加密通信协议的测试支持,提高测试效率,并具有较强的可扩展性。
基于与图1至图3所示的智能家居设备的通信协议测试方法相同的发明构思,发明实施例还提供了一种智能家居设备的通信协议测试系统,如下面实施例所述。由于该智能家居设备的通信协议测试系统解决问题的原理与智能家居设备的通信协议测试方法相似,因此该智能家居设备的通信协议测试系统的实施可以参见智能家居设备的通信协议测试方法的实施,重复之处不再赘述。
图4为本发明实施例智能家具设备的通信协议测试系统的结构示意图,如图4所示,该测试系统主要包括:数据包获取单元1、协议解析单元2、测试用例生成单元3及异常监测单元4。
其中,数据包获取单元1用于获取被测对象与对端系统之间基于协议会话的数据包。协议解析单元2用于对所述数据包进行协议解析,判断被测对象所用通信协议是否为已知协议,并当被测对象所用通信协议为非已知协议时,获取所述数据包的可变字段。测试用例生成单元3用于根据所述可变字段对对端系统发给被测对象的基于协议会话的数据包进行变异操作,生成被测对象的测试用例。异常监测单元4用于将所述测试用例发送给被测对象执行,监测被测对象是否发生异常。
为了在被测对象发生异常时更精确地定位异常,以及使上述的协议知识库更加完善,本发明实施例提供的测试系统还包括一异常记录单元及自学习单元(图4中未示出),异常记录单元用于当被测对象发生异常时记录异常信息,并将引发异常的测试用例信息及其对应的变异规则发送给所述协议知识库,自学习单元用于采用自学习算法完善所述协议知识库中相应通信协议的变异规则。
本发明实施例针对智能家居协议私有、加密等特点,对传统Fuzzing基础框架进行了改进和二次开发,引入包含已知协议模型和异常测试用例生成规则的协议知识库,以及加密算法知识库,提出一种基于知识驱动的协议解析和用例生成方法,实现了对智能家居系统私有、加密通信协议的测试支持,提高测试效率,并具有较强的可扩展性。
在一实施例中,协议解析单元2包括协议判断模块21(见图5),用于采用多模式匹配算法,将所述数据包与预设的协议知识库中的已知协议模型进行匹配,判断被测对象所用通信协议是否为已知协议。
在协议解析单元2中引入基于知识驱动的预处理机制,采用多模式匹配算法,根据抽取对端系统与被测系统交互的数据包与协议知识库中的协议模型进行匹配,从而区分已知协议与私有协议,并将相关结果信息发送给测试用例生成单元3。具体实施时,需要在协议知识库中预先设置已知协议信息,包括协议逻辑、数据包格式、容易引起异常的变异规则信息等。考虑到智能家居系统通信协议测试对实时性、准确性的需求和处理能力有效的特点,本发明实施例采用多模式匹配算法判断协议是否为协议知识库中的已有协议。
如图5所示,协议解析单元2还包括加密判断模块22及重启模块23,加密判断模块22用于判断所述被测对象与对端系统之间基于协议会话的数据包是否为加密数据包,重启模块23用于当加密判断模块22的判断结果为是时重启对端系统,以使所述数据包获取单元1重新获取对端系统发给被测对象的基于协议会话的新数据包。
传统Fuzzer(如codenomicon等工具)主要利用“旧包”即以前获取的数据包来生成测试用例,但因为智能家居系统中的为了提高会话的安全性通信协议一般采用动态会话密钥的方式,这样“旧包”就不能被重用。因此,当被测对象与其对端系统之间互发的数据包如为加密数据包时,本发明实施例在测试用例生成阶段需要基于协议会话的“新鲜数据包”,为了解决这个问题,本发明实施例提供的测试系统通常作为“中间人”节点,置于对端系统与被测对象的通信链路上,利用重启模块23重启对端系统获取“新鲜数据包”。
测试用例生成单元3根据上一阶段发送的信息,分别调用不同的用例生成处理程序。如果上一阶段匹配结果判断是已知协议,则按照已知协议的变异规则,对抓取的数据包进行变异操作来生成畸形测试用例。如果上一阶段匹配结果判断是已知协议,则按照按可变字段等信息,对数据包进行变异操作形成测试用例。
在一实施例中,测试用例生成单元3包括:解密模块31、变异模块32、加密模块33及重打包模块34,如图6所示。其中,解密模块31用于根据所述对端系统的加密算法及会话密钥对所述新数据包进行解密。变异模块32用于在所述新数据包的所述可变字段处进行变异操作。加密模块33用于利用所述加密算法及会话密钥对经过变异操作的新数据包进行加密。重打包模块34用于更新加密后的数据包的校验值,生成被测对象的测试用例。
在一实施例中,当协议判断模块21的判断结果为已知协议时,上述的变异模块32还用于根据所述通信协议的变异规则对所述新数据包进行变异操作。
为了获取对端系统的加密算法和会话密钥等信息,需要在被测对象与对端系统建立测试会话之前,预先获得对端系统所使用的加密算法、会话密钥等信息,将这些信息写入共享加密文件,测试用例生成单元3在需要时会自动读取共享加密文件信息。该项功能实现,需要对对端系统进行逆向工程并对内存进行遍历,定位加密处理切入点,对程序进行改造。一般智能家居通信协议会采用标准加密算法,因此,本发明实施例提供的测试系统可以外联一个加密算法库提高消息处理效率。只在测试用例生成单元3对加密数据报文进行变异操作时,才会执行解密和重新加密的操作。因此,本发明实施例提供的测试系统还包括一预处理单元(图4中未示出),用于遍历对端系统的内存,定位对端系统的加密处理切入点,以获取该对端系统的加密算法及会话密钥并存储。
在协议解析和测试用例生成阶段,要保持本发明实施例提供的测试系统与被测对象的会话链接,并将所生成的测试用例发送给被测对象进行测试。
由于智能家居终端设备难以安装第三方软件,且由于嵌入式系统计算、存储均受到严格的制约,因此传统调试和日志跟踪方法,不适用于智能家居通信协议的Fuzzing异常监测,所以采用返回信息监测分析的方式,异常监测单元4可使用一个探侧包来确定测试过程中被测对象是否可用,如果被测对象出现异常,则会返回错误信息。异常记录单元会记录下是哪个测试用例触发了异常以及被测对象返回信息,为后续异常的定位和重现提供依据。由于一些智能家居通信协议具有自修复和守护能力,异常发生后会自动重启,因此异常监测单元4的探测包应该达到一定的收发频率,否则无法捕获发生的异常。
本发明实施例提供的测试系统可以采用内联的部署方式,通过ARP欺骗方法,将本发明提供的测试系统插入被测对象与对端实现之间,作为“中间人”采用重放的方式对截获的数据包进行处理。即,在利用本发明实施例提供的测试系统进行测试时,也可按照如下流程进行:1)对端系统向被测系统发起一个新的协议会话;2)协议解析单元2在数据包获取单元1获取足够数据报文时,进行协议字段解析,调用协议知识库信息进行匹配,判断是否为已知协议;3)如非已知协议,则调用多序列比对算法猜测数据包的可变字段;4)将解析到的信息发送测试用例生成单元3;5)当被测对象与对端系统之间互发的数据包为加密数据包时,重启对端系统,开启新会话,向共加密享文件中写入加密算法、密钥和随机数种子,如非加密数据包,则写入空;6)数据包获取单元1拦截对端系统重启后与被测对象互发的新数据包,读取共享加密文件信息,调用加密算法库,对数据报文进行解密和变异操作,重新生成测试用例报文;7)将生成的测试用例发给被测对象;8)异常监测单元4对被测对象返回信息进行分析,判断目标被测系统是否出错;9)如异常则记录出错信息,并将引发异常的测试用例报文及其变异规则发送协议知识库,协议知识库采用自学习算法完善对应协议的变异规则信息;10)如无异常则跳转至步骤5),重复步骤5)~步骤10),直至测试完成。
本发明实施例针对智能家居协议私有、加密等特点,对传统Fuzzing基础框架进行了改进和二次开发,引入包含已知协议模型和异常测试用例生成规则的协议知识库,以及加密算法知识库,提出一种基于知识驱动的协议解析和用例生成方法,实现了对智能家居系统私有、加密通信协议的测试支持,提高测试效率,并具有较强的可扩展性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (14)
1.一种智能家居设备的通信协议测试方法,其特征在于,所述测试方法包括:
获取被测对象与对端系统之间基于协议会话的数据包;
对所述数据包进行协议解析,判断被测对象所用通信协议是否为已知协议;
当被测对象所用通信协议为非已知协议时,获取所述数据包的可变字段;
根据所述可变字段对对端系统发给被测对象的基于协议会话的数据包进行变异操作,生成被测对象的测试用例;
将所述测试用例发送给被测对象执行,监测被测对象是否发生异常。
2.根据权利要求1所述的智能家居设备的通信协议测试方法,其特征在于,对所述数据包进行协议解析,判断被测对象所用通信协议是否为已知协议,具体包括:
采用多模式匹配算法,将所述数据包与预设的协议知识库中的已知协议模型进行匹配,判断被测对象所用通信协议是否为已知协议。
3.根据权利要求1所述的智能家居设备的通信协议测试方法,其特征在于,当被测对象所用通信协议为非已知协议时,所述测试方法还包括:
判断所述被测对象与对端系统之间基于协议会话的数据包是否为加密数据包;
当所述数据包为加密数据包时,重启对端系统,重新获取对端系统发给被测对象的基于协议会话的新数据包。
4.根据权利要求3所述的智能家居设备的通信协议测试方法,其特征在于,根据所述可变字段对对端系统发给被测对象的基于协议会话的数据包进行变异操作,生成被测对象的测试用例,具体包括:
根据所述对端系统的加密算法及会话密钥对所述新数据包进行解密;
在所述新数据包的所述可变字段处进行变异操作;
利用所述加密算法及会话密钥对经过变异操作的新数据包进行加密;
更新加密后的数据包的校验值,生成被测对象的测试用例。
5.根据权利要求3所述的智能家居设备的通信协议测试方法,其特征在于,当被测对象所用通信协议为已知协议时,所述测试方法还包括:
判断所述被测对象与对端系统之间基于协议会话的数据包是否为加密数据包;
当所述数据包为加密数据包时,重启对端系统,重新获取对端系统发给被测对象的基于协议会话的新数据包;
根据所述对端系统的加密算法及会话密钥对所述新数据包进行解密;
根据所述通信协议的变异规则对所述新数据包进行变异操作;
利用所述加密算法及会话密钥对经过变异操作的新数据包进行加密;
更新加密后的数据包的校验值,生成被测对象的测试用例。
6.根据权利要求4或5所述的智能家居设备的通信协议测试方法,其特征在于,在获取被测对象与对端系统之间基于协议会话的数据包之前,所述测试方法还包括:
遍历所述对端系统的内存,定位所述对端系统的加密处理切入点,以获取所述对端系统的加密算法及会话密钥并存储。
7.根据权利要求2所述的智能家居设备的通信协议测试方法,其特征在于,所述测试方法还包括:
如被测对象发生异常,记录异常信息,并将引发异常的测试用例及其对应的变异规则发送给所述协议知识库;
采用自学习算法完善所述协议知识库中相应通信协议的变异规则。
8.一种智能家居设备的通信协议测试系统,其特征在于,所述测试系统包括:
数据包获取单元,用于获取被测对象与对端系统之间基于协议会话的数据包;
协议解析单元,用于对所述数据包进行协议解析,判断被测对象所用通信协议是否为已知协议,并当被测对象所用通信协议为非已知协议时,获取所述数据包的可变字段;
测试用例生成单元,用于根据所述可变字段对对端系统发给被测对象的基于协议会话的数据包进行变异操作,生成被测对象的测试用例;
异常监测单元,用于将所述测试用例发送给被测对象执行,监测被测对象是否发生异常。
9.根据权利要求8所述的智能家居设备的通信协议测试系统,其特征在于,所述协议解析单元包括:
协议判断模块,用于采用多模式匹配算法,将所述数据包与预设的协议知识库中的已知协议模型进行匹配,判断被测对象所用通信协议是否为已知协议。
10.根据权利要求9所述的智能家居设备的通信协议测试系统,其特征在于,所述协议解析单元还包括:加密判断模块及重启模块,所述加密判断模块用于判断所述被测对象与对端系统之间基于协议会话的数据包是否为加密数据包;
所述重启模块用于当所述加密判断模块的判断结果为是时重启对端系统,以使所述数据包获取单元重新获取对端系统发给被测对象的基于协议会话的新数据包。
11.根据权利要求10所述的智能家居设备的通信协议测试系统,其特征在于,所述测试用例生成单元包括:
解密模块,用于根据所述对端系统的加密算法及会话密钥对所述新数据包进行解密;
变异模块,用于在所述新数据包的所述可变字段处进行变异操作;
加密模块,用于利用所述加密算法及会话密钥对经过变异操作的新数据包进行加密;
重打包模块,用于更新加密后的数据包的校验值,生成被测对象的测试用例。
12.根据权利要求11所述的智能家居设备的通信协议测试系统,其特征在于,当所述协议判断模块的判断结果为已知协议时,所述变异模块还用于根据所述通信协议的变异规则对所述新数据包进行变异操作。
13.根据权利要求12所述的智能家居设备的通信协议测试系统,其特征在于,所述测试系统还包括:预处理单元,用于遍历所述对端系统的内存,定位所述对端系统的加密处理切入点,以获取所述对端系统的加密算法及会话密钥并存储。
14.根据权利要求9所述的智能家居设备的通信协议测试系统,其特征在于,所述测试系统还包括:
异常记录单元,用于当被测对象发生异常时记录异常信息,并将引发异常的测试用例及其对应的变异规则发送给所述协议知识库;
自学习单元,用于采用自学习算法完善所述协议知识库中相应通信协议的变异规则。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611049525.XA CN106506280B (zh) | 2016-11-24 | 2016-11-24 | 智能家居设备的通信协议测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611049525.XA CN106506280B (zh) | 2016-11-24 | 2016-11-24 | 智能家居设备的通信协议测试方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106506280A CN106506280A (zh) | 2017-03-15 |
CN106506280B true CN106506280B (zh) | 2019-10-01 |
Family
ID=58328350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611049525.XA Active CN106506280B (zh) | 2016-11-24 | 2016-11-24 | 智能家居设备的通信协议测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106506280B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107944486B (zh) * | 2017-11-20 | 2019-12-10 | 中国电子科技集团公司第四十一研究所 | 适用于自动测试的测试数据识别处理方法及系统 |
CN108874675A (zh) * | 2018-06-25 | 2018-11-23 | 中国电子技术标准化研究院 | 一种基于字段分类的fuzzing测试用例生成方法 |
CN110266554B (zh) * | 2018-08-02 | 2022-10-28 | 青岛威孚测通信息科技有限公司 | 一种私有通信协议的测试方法 |
CN111142399A (zh) * | 2020-01-09 | 2020-05-12 | 四川轻化工大学 | 一种基于计算机的嵌入式智能家居自动化控制测试系统 |
CN112187585B (zh) * | 2020-09-30 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 网络协议测试方法及装置 |
CN114205340B (zh) * | 2021-12-23 | 2024-04-02 | 绿盟科技集团股份有限公司 | 一种基于智能电力设备的模糊测试方法及装置 |
CN114756011B (zh) * | 2022-05-27 | 2023-05-12 | 西安电子科技大学 | 基于tv-pkeet的智能家居异常检测方法 |
CN114706615B (zh) * | 2022-06-08 | 2022-09-06 | 国家工业信息安全发展研究中心 | 一种工业机器人协议的自动化逆向分析方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102111401A (zh) * | 2010-12-16 | 2011-06-29 | 成都市华为赛门铁克科技有限公司 | 协议识别方法、协议识别装置及设备 |
CN103036730A (zh) * | 2011-09-29 | 2013-04-10 | 西门子公司 | 一种对协议实现进行安全测试的方法及装置 |
CN103853650A (zh) * | 2012-11-28 | 2014-06-11 | 西门子公司 | 一种模糊测试的测试用例生成方法及装置 |
KR20140088397A (ko) * | 2013-01-02 | 2014-07-10 | 주식회사 윈스 | 언노운 씨앤씨서버 탐지제어 시스템 및 그 탐지제어 방법 |
CN105991517A (zh) * | 2015-01-28 | 2016-10-05 | 中国信息安全测评中心 | 漏洞发掘方法和装置 |
-
2016
- 2016-11-24 CN CN201611049525.XA patent/CN106506280B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102111401A (zh) * | 2010-12-16 | 2011-06-29 | 成都市华为赛门铁克科技有限公司 | 协议识别方法、协议识别装置及设备 |
CN103036730A (zh) * | 2011-09-29 | 2013-04-10 | 西门子公司 | 一种对协议实现进行安全测试的方法及装置 |
CN103853650A (zh) * | 2012-11-28 | 2014-06-11 | 西门子公司 | 一种模糊测试的测试用例生成方法及装置 |
KR20140088397A (ko) * | 2013-01-02 | 2014-07-10 | 주식회사 윈스 | 언노운 씨앤씨서버 탐지제어 시스템 및 그 탐지제어 방법 |
CN105991517A (zh) * | 2015-01-28 | 2016-10-05 | 中国信息安全测评中心 | 漏洞发掘方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106506280A (zh) | 2017-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106506280B (zh) | 智能家居设备的通信协议测试方法及系统 | |
Helmer et al. | Software fault tree and coloured Petri net–based specification, design and implementation of agent-based intrusion detection systems | |
Dreier et al. | Automated unbounded verification of stateful cryptographic protocols with exclusive OR | |
Ficco et al. | A generic intrusion detection and diagnoser system based on complex event processing | |
CN107040545B (zh) | 工程文件全生命周期安全保护方法 | |
Guttman | Shapes: Surveying crypto protocol runs | |
CN111885041A (zh) | 一种基于蜜罐威胁数据的攻击场景重构方法 | |
Al-Azzoni et al. | Modeling and verification of cryptographic protocols using coloured petri nets and design/CPN | |
CN108337266A (zh) | 一种高效的协议客户端漏洞发掘方法与系统 | |
Meier et al. | Efficient construction of machine-checked symbolic protocol security proofs | |
CN106878339A (zh) | 一种基于物联网终端设备的漏洞扫描系统及方法 | |
US11093367B2 (en) | Method and system for testing a system under development using real transaction data | |
Sheikhi et al. | Cyber threat hunting using unsupervised federated learning and adversary emulation | |
Pan et al. | Model‐Based Grey‐Box Fuzzing of Network Protocols | |
CN116366512A (zh) | 测试用例生成方法、装置及计算机可读存储介质 | |
Wang et al. | A model-based behavioral fuzzing approach for network service | |
López Pimentel et al. | Formal support to security protocol development: A survey | |
Whalen et al. | Hidden markov models for automated protocol learning | |
Khan et al. | Generic verification of security protocols | |
Al Ghazo | A framework for cybersecurity of supervisory control and data acquisition (SCADA) systems and industrial control systems (ICS) | |
CN111385253B (zh) | 一种面向配电自动化系统网络安全的脆弱性检测系统 | |
Doghmi et al. | Completeness of the authentication tests | |
Briland et al. | A language for modelling false data injection attacks in Internet of Things | |
Myers | Detecting cyber attacks on industrial control systems using process mining | |
McCarthy et al. | Cryptographic protocol explication and end-point projection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 100191 No. 40, Haidian District, Beijing, Xueyuan Road Patentee after: CHINA ACADEMY OF INFORMATION AND COMMUNICATIONS Address before: 100191 No. 52 Garden North Road, Beijing, Haidian District Patentee before: CHINA ACADEME OF TELECOMMUNICATION RESEARCH OF MIIT |
|
CP03 | Change of name, title or address |