张光华,石晓朦,李仁浩,任 军
(1.河北科技大学信息科学与工程学院,河北石家庄 050018;2.西安电子科技大学电子工程学院,陕西西安 710126;3. 河北省教育考试院,河北石家庄 050091)
NFC协议的模糊测试优化方案
张光华1,石晓朦1,李仁浩2,任 军3
(1.河北科技大学信息科学与工程学院,河北石家庄 050018;2.西安电子科技大学电子工程学院,陕西西安 710126;3. 河北省教育考试院,河北石家庄 050091)
针对NFC协议进行模糊测试方案时产生大量不符合协议规范的无效测试用例而导致测试效率较低的问题,应用图论思想,提出了基于生成的策略与深度优先算法融合后的模糊测试方案。在基于生成的策略下构造测试用例的过程中,遍历由协议规范连接成的测试需求图,以深度优先算法搜索图中覆盖点较多的生成路径,精简测试用例的生成路径,保证生成的测试用例能够接近协议规范。实验分析表明,所提出的模糊测试方案能够有效地减少无效测试用例的生成,提高测试效率。
算法理论;通信网络;NFC协议;漏洞挖掘;模糊测试;图论算法
NFC(near field communication)是能够利用2个NFC设备之间电磁场的耦合感应,在短距离的情况下自动进行高速非接触式数据通信的技术[1-2]。NFC技术被广泛应用于移动平台的同时,安全漏洞也成为了网络攻击者首要攻击的目标。根据对已知漏洞CVE-2008-5825[3]和CVE-2008-5826[4]的总结发现,NFC技术应用安全漏洞的产生主要来自对NFC协议脆弱点的攻击。因此,挖掘NFC协议的安全漏洞成为保障NFC技术应用安全的重要手段之一[5-7]。
目前,针对NFC协议进行的漏洞挖掘方案主要分为2个方向:模糊测试方向与静态分析方向。模糊测试是一种动态分析技术, 它使用大量半有效的数据作为应用程序的输入, 以被测应用是否出现异常作为标志, 来发现网络协议中可能存在的脆弱点。其中半有效的数据是指测试用例的必要标示部分和大部分数据是有效的, 但同时该数据的其他部分是无效的,接收到这样数据的应用程序就有可能发生错误, 这种错误可能导致应用程序的崩溃或者触发相应的安全漏洞。而静态分析技术多采用源代码审计的方法查找漏洞, 因为可以获得待测软件的全部源代码,所有可能的代码路径都可以被审核。
通过对NFC协议这种已知RFC规范的通信协议,选择模糊测试技术进行漏洞挖掘的可行性较高。所以针对NFC协议进行的漏洞挖掘方案主要依靠模糊测试技术,主要进行如下研究。
MILLER[8]提出了基于变异的策略和生成的策略融合后的模糊测试用例构建策略,以期达到增加NFC协议漏洞的检出率,降低测试的漏报率,优化测试效率的效果。MULLINER[9]设计了一种在移动平台直接对应用软件进行测试的软件测试方案,方案直接运行于Android平台,以手工编造测试用例的方法针对软件进行模糊测试。WIEDERMANN[10]开发了针对NFC技术的漏洞挖掘工具Fuzzing-to-go,将技术成熟的开源测试框架移植到Android平台针对NFC应用进行测试。
基于以上文献分析可以得出,以往的研究者们进行NFC协议模糊测试时,在针对优化模糊测试的测试效率问题上通常以增强漏洞检出率作为提高效率的途径,往往忽视了大量无效测试用例的生成,导致测试用例有效性较低,使得方案优化后测试效果达不到预期设想。为了解决测试效率较低的问题,本文针对构造测试用例这一过程,提出了在基于生成的策略基础下融合深度优先算法进行测试用例生成的模糊测试方案。
1.1 总体设计思想
模糊测试技术的核心思想是使用大量畸形数据作为输入来针对程序进行测试,并且记录下测试过程中目标程序执行的状态,筛选出可能存在的安全漏洞,供人们继续分析[10-15]。模糊测试的关键问题是测试用例的生成[16]。测试用例的生成方法可分为两大类:基于变异的方法和基于生成的方法。前者针对已有数据样本强制性变异来创建新的测试用例;后者通过分析目标特征从头开始产生测试用例[17]。
基于生成策略[18-19]的模糊测试方案中测试用例的生成算法往往采用了数据块关联模型,以数据块为基本元素,将数据块之间的关联性视作联系数据块的纽带。基于生成策略往往是根据遍历由数据块与其关联性形成的路径进行测试用例的生成。本文选择的基础框架Sulley平台是一款基于生成策略下的模糊测试框架,其沿用了基于块的生成思想,并且通过添加属性标签,扩大了字段间依赖关系的描述。Sulley中内置的图形工具将数据块根据彼此的关联性连接成为树形结构,由根节点逐级进行节点的遍历,同时根据生成树的信息进行测试用例的生成。
NFC协议的模糊测试就是被测目标与模糊测试框架进行的一次通信过程,发送的畸形数据不符合协议规范会造成通信过程的失败。在强制性的模糊测试方案中,基于变异的策略下通过对测试脚本进行随机性的变异,生成的部分测试用例协议普遍解析度不高,测试过程中测试用例的代码覆盖率较低,冗余测试用例的产生降低了测试方案的效率。
不同于基于变异的测试用例生成策略,基于生成的策略下,进行NFC协议模糊测试时,需根据NFC协议的规范构造出一组用于生成测试用例需求脚本。相较于基于变异的策略,基于生成的策略有方向性,并且规范了构造测试用例生成的路径。
本文以基于生成的测试用例构造策略作为NFC协议的模糊测试方案构造测试用例的基本策略,采用模糊测试框架Sulley作为基础框架。在数据块关联模型的描述下,协议格式就是对协议构成单元词法、语法和语义的规定。词法为数据单元的符号特征;语法为数据单元的组织规则;语义为数据单元的具体解释。这些网络协议的协议规范具有一定的关联性,Sulley框架根据事先由人工构造出的一组协议规范为脚本,内置pGraph[20]部分会自动根据协议脚本中协议规范点之间的相关性连接成有向图,其拓扑结构如图1所示。
图1 协议规范的拓扑结构Fig.1 Topology diagram of protocol specification
图1中的节点代表着协议规范点。在基于生成策略下通常随机进行图的遍历。协议模糊测试不同于文件模糊测试,目标应用在接收畸形测试用例时会进行校验和比对。例如,遍历图中a—b—c路径终止向下搜索直接生成测试用例,但是目标应用部分需要对e进行校验,不包含e生成测试用例是被拒绝接收的。所以在测试的过程中往往产生大量不能通过验证的冗余测试用例。冗余测试用例产生的原因通常是如上例所述,在遍历有向图时所选择的生成路径没有覆盖较多的协议规范点。
所以在基于生成的策略下,虽然测试用例的构造减少了一定的盲目性,但是为了进一步解决测试效率较低的问题,本文在基于生成策略的基础上提出基于生成策略和深度优先算法融合后的模糊测试方案。深度优先算法减少了路径遍历的随机性,在进行图的遍历时筛选出尽可能覆盖较多节点的生成路径。以图1为例进行说明,从根节点a开始,然后访问a节点下的第1个子节点 b,接下来访问b节点的子节点 c,再访问c节点的子节点e,e节点为叶子节点,则访问e节点后,访问e节点父节点的下一个兄弟节点,如果父节点没有下一个兄弟节点,则访问祖父节点的下一个兄弟节点,继续上述过程,直到访问的下一个节点与根节点相同,则所有节点访问完成。根据以上方法,图1 中各节点访问序列为a—b—c—e—d—f。根据这条路径生成的测试用例相较于根据a—b,b—c生成的测试用例更加贴近于真实的协议,减少了冗余测试用例的生成。
1.2 算法设计与分析
NDEF协议具有3种记录类型:Text型用于连通其他的记录和提供文本说明;URI型描述了一种在NFC标签中保存URI数据结构的类型,并且在2个NFC设备之间可以通过 NDEF消息传输这些数据结构;Smart Poster记录类型可以看作是URI类型的一种特例,一个Smart Poster只要包含1个URI记录,其他内容可以作为可选项。NDEF协议采用的是“类型-长度-值”的格式来描述信息。所以那些描述类型或者长度的字段就显得十分重要。NDEF 记录一般可分为头字段、ID长度字段、类型长度字段、有效载荷长度字段、ID 字段、类型字段、有效载荷字段几个方面进行协议规范的描述。
深度优先算法是一种用于图遍历时搜索路径的算法。深度优先算法所遵循的搜索策略是沿着单一方向深入地搜索图中的生成路径,直至连通路径上所有节点被标记。
通过构造实例具体说明算法过程。例如,通过上述几个方面对NDEF协议Text型进行模糊测试,测试文本信息“Hello,world”。如表1所示,对Text型记录协议规范进行分析,总共分析出7个协议规范点。
表1 Text型NDEF协议规范
设定NFC模糊测试中的协议规范图为G,以协议规范图G抽象描述7个协议规范点之间的连通关系,分别定义表中7个协议规范点为V1—V7,如图2所示。
图2 Text型记录协议规范图GFig.2 Text type record protocol specification G
算法的具体步骤如下:
1)初始化协议规范图G,以图中的节点V7作为出发点,访问并标记该节点为已访问节点;
2)以路径为信息搜索V7当前的邻节点Vi,访问和标记邻节点Vi为已经遍历;
3)以Vi为当前顶点,重复上述步骤,搜索Vi节点的下一个邻节点,依次类推,直至所有邻节点被标记,输出搜索的路径;
4)返回源点V7,重复以上步骤,直至图中节点都被标记。
深度优先搜索算法进行过程中,深入挖掘测试需求之间的关系,包含关联性的测试需求越多,测试用例越容易被判定为有效测试用例。算法的时间复杂度为O(V+E),V为节点数,E为边数,测试需求图的数据量较小,使用该算法的时间复杂度较低,不会增加方案的复杂度。
1.3 NFC协议模糊测试优化方案的实现
本文选择开源框架Sulley作为基层开发框架。Sulley框架是针对网络协议进行测试的模糊测试框架,源代码运行于Python语言环境,含有多个组件,可扩展性良好。Sulley框架在基于生成的策略下以基于数据块的方式进行数据生成,构造数据的能力较为优秀简洁,同时,能够实时监控和记录测试目标的运行状况。
改进后的方案框架如图3所示。首先,需要对NDEF协议进行分析,得出协议的基本格式后,手工构造需要的测试脚本,在测试需求时集中等待会话管理模块的调用;然后,通过会话管理模块将测试需求连接成有向无环图,使用深度优先算法对图进行生成路径的搜索,结合生成器进行测试用例的生成;最后,将生成的模糊数据发送到Android虚拟设备上的NFC API中运行,代理模块和辅助模块记录异常数据反馈到模糊测试端,结束测试。本文提出的方案中,针对模糊测试中生成部分遍历测试需求会话图的盲目性进行改进,基于图论的思想,提出了以深度优先算法纵深搜索协议规范点,以筛选测试用例的生成路径,保证每条生成路径中可以覆盖尽量多的测试需求,生成的测试用例尽量贴近协议规范,以达到减少冗余测试用例生成的目的。
图3 NFC协议模糊测试优化方案框架Fig.3 Framework of NFC protocol fuzzy test optimization
基于以上方案框图,下面给出NFC协议的模糊测试优化方案的具体方案流程。
Step1 构造测试需求集。通过NFC的协议规范分析出Text型的NDEF协议记录的7个协议规范点,然后在方案框架的数据管理部分进行测试用例的构造与存储。数据管理模块部分以Sulley框架自带的数据构造语法对协议规范点进行描述,并把描述后的协议规范文件存储在Sulley框架的会话管理部分。
Step2 构造会话图。在基于生成的策略下,会话管理部分调用Requests文件,读取文件中的协议规范点,根据协议规范之间的相关性将协议规范点连接成有向图,存储在Sulley框架的会话管理部分。
Step3 深度优先算法进行图的遍历。深度优先算法由Python语言编写,存储在Sulley文件夹中。深度优先算法模块部分提取PGraph中的测试需求图,依据算法特性深度遍历图中的路径,逐步输出搜索后的路径。
Step4 生成模糊测试所需测试用例。框架中primitives.py部分负责由上述搜索路径生成测试用例。这部分根据协议规范中可以模糊的字段和不可模糊的字段分别进行测试用例的生成,生成的数据为半有效畸形数据,保证生成的半有效数据尽可能通过被测程序部分校验和验证。
Step5 进行模糊测试。这一部分完成模糊测试工具与被测目标的通信过程。再次调用会话管理模块定义通信会话,同时启动network_monitor.py和process_monitor.py两个模块进行测试用例的发送以及被测目标的监测。被测目标为Android虚拟设备的NFC API,模糊测试过程的进行是Android虚拟设备与模糊测试框架进行的Socket通信过程。
Step6 代理模块和辅助模块进行进程的监控与记录。在上一步进行时设定端口5678是Android虚拟设备的映射端口,代理模块监听端口5678获取测试信息。
本文针对3种NDEF记录类型分别设计进行了2次针对NFC协议的模糊测试实验,分别是改进前的模糊测试方案和改进后的模糊测试方案,通过这2次模糊测试实验来进行方案有效性和正确性的验证,结果证明了本文提出检测方法的效果更优。
2.1 实验环境
实验环境在内存为4 GB,处理器为Intel(R) Core(TM)i3Quad 2.67 GHz的机器上完成。实验方案的验证是在Windows7-64位系统下完成的。方案框架实现采用Sulley源代码作为基础框架,IDA Python,调试工具Windbg,MinGW等完成算法实现以及监视记录的过程,目标虚拟设备采用Android SDK工具实现,主要针对Android系统中的NFC API进行测试。测试过程相当于完成1次Socket通信。NFC API测试流程图如图4所示。
图4 NFC API测试流程图Fig.4 NFC API test flow chart
测试中需要绑定的IP地址为127.0.0.1,监视端口为5678。本文将前面提出的算法使用Python语言进行实现。在测试中所需要的测试脚本也由Python算法实现。客户端Android虚拟设备的设置由Java语言和C++语言完成。
2.2 实验结果与分析
NFC协议模糊测试方案的测试效率与测试用例的有效性相关。评价一个模糊测试方案的有效性主要依靠有效数据的对象效率,即所构造的畸形数据通过目标应用的个数与总共生成的畸形数据之比。设定有效数据对象效率为V,生成的测试用例的个数为∑Pi,有效的测试用例个数为∑Pv,给出评估模糊测试方案有效性的公式为
v=∑Pv/∑Pi。
(1)
本文选择NDEF协议的3种记录类型——Text型,URI型, Smart Poster型分别进行改进前后的模糊测试。表2—表4,分别为改进前和改进后针对Text型记录进行的2种测试方案的对比结果,针对URI型记录进行的2种测试方案的对比结果,以及针对Smart Poster型记录进行的2种测试方案的对比结果。
针对Text型NDEF记录进行模糊测试时,首先分析后得出Text型NDEF记录由头字段、ID长度字段、类型长度字段、有效载荷长度字段、ID 字段、类型字段、有效载荷字段描述的协议规范。算法根据如图1所示的协议规范之间的关联,沿代表文本内容“Hello,world”的节点开始向下搜索最深的生成路径,直到7个协议规范点都被标记为已遍历。基于生成的策略,根据搜索到的生成路径构造相应的测试用例,已生成的测试用例启动模糊测试,记录结果如表2所示。
表2 Text型记录方案测试结果对比
方案生成的测试用例分为可接收和不可接收两部分,如表2所示。改进前方案生成2 080个测试用例,改进后方案生成1 537个测试用例,改进后方案所生成的测试用例的总数与改进前的测试用例总数相比减少了543个测试用例。其中不能接收的冗余测试用例减少了548个。与改进前的测试用例集相比减少了26.01%,相应的缩小了模糊测试的测试用例样本规模。从可接收的测试用例数量上看,由式(1)计算有效数据效率,改进前的有效数据效率为32.9%,改进后的有效数据效率为44.8%,优化有效数据效率11.9%。
同理于上述实验,使用NDEF的另外2种类型URI型NDEF记录,以及Smart Poster型NDEF记录针对方案进行验证。同样进行协议规范的分析后分别得出协议规范点,将测试用例脚本写入Sulley框架的Requests部分,启动2次模糊测试后得出的结果如表3和表4所示。
表3 URI型记录方案测试结果对比
表4 Smart Poster型方案测试结果对比
如表3所示,改进前方案总共生产了2 153个测试用例,改进后方案总共生成了2 083个测试用例,针对URI型NDEF记录,改进后方案所生成的测试用例的总数与改进前的测试用例总数相比减少了70个测试用例,其中不能接收的冗余测试用例减少了252个,缩小了模糊测试的用例样本规模。从表3数据发现改进后可接收数据较之改进前增加了182个,可接收的测试用例数量上看,由式(1)计算有效数据效率,改进前的有效数据效率为24.7%,改进后的有效数据效率为34.3%,优化有效数据效率9.6%。
从表4的数据可以得出,针对Smart Poster型记录进行测试时2次实验的结果都是接收所有产生的畸形数据并且没有报错。证明了NFC API无法对Smart Poster型记录进行正确的校验。
综合以上3个实验得出的结果,改进前方案共产生4 768个测试用例,其中可被接收的测试用例为1 683个。改进后方案共产生3 844个测试用例,其中可被接收的测试用例为1 630个。改进后的方案较之改进前的方案总共减少了924个冗余测试用例。根据式(1)得到改进前方案的有效数据效率为35.3%,改进后方案的有效数据效率为42.4%。后者的有效数据效率相较前者提高了7.1%。以有效数据效率作为评价模糊测试方案效率的指标,通过以上数据证明了在基于图论思想提出的基于生成策略与深度优先算法融合后的NFC协议模糊测试方案,有效减少了测试用例的生成路径,降低了冗余测试用例的生成,提高了有效的测试用例生成概率,优化了测试方案的有效性。
通过调用不可解析的测试用例分析,如表5所示,在Text型测试用例343的测试用例总长度为37字节,有效载荷的长度用0x21指定,因此进行测试集合在33字节的有效载荷之后被截断。当计算实际有效载荷长度时,判断该字节溢出,结果显示该测试用例不可解析。构造函数的解析是按照有效载荷长度字段存储的长度值进行截断的,这也反映了NDEF协议的构造函数在生成对象时的策略,即直接按照有效载荷长度对输入数据进行截取,如果载荷的内容大于声明的有效载荷长度,则直接按照声明的长度把多余的载荷数据截断丢弃。
表5 测试用例实例分析
本文主要测试NFC 应用接口是NdefMessage类的构造函数。分析一些不能解析的Text型用例和URI型用例,可总结出以下结论。
1)类型长度字段被置为0x00的测试用例不能解析,证明构造函数对这个字段进行了校验。
2)URI测试用例的有效载荷长度字段里面的值大于实际使用的长度,说明构造函数对有效载荷长度进行了校验,不处理那些声明长度大于实际长度的记录。
3)对首字节变异的多数测试用例也不能被处理,证明构造函数对首字节也进行了相应的校验。
分析以上结论可以发现,NFC API只能对数据的类型长度字段、有效载荷长度字段以及首字节字段进行校验。其中第1个实验采用的Text型记录可以和其他记录类型结合使用,最主要的功能是提供解释性文本。对比实验结果不难看出,选择Text型记录达到的效果明显优于其他实验。因为在第1个实验中使用的Text型记录相较URI型记录以及Smart Poster型记录更为基本。这个结果证明了NFC应用接口在处理数据时也只能进行较为原始的校验。从表2和表3得出的数据也可以看出,仍然有超过一半的畸形数据被构造成为符合NDEF协议的对象,通过了NFC API的校验并交给应用程序做进一步处理,由于NFC API部分不能识别更加复杂的畸形数据,也就不能切实保证NFC协议在实际应用的安全性,说明了Android平台的安全性较差的特点,所以在后续针对Android APP进行的NFC协议漏洞挖掘工作仍需深入研究。
为了解决NFC模糊测试效率较低的问题,本文提出了以深度优先算法筛选出覆盖较多协议规范点的测试用例的生成路径,以达到减少测试用例生成算法的随机性,减少冗余测试用例生成的目的。仿真实验证明,本文方案具有一定的有效性,减少了一部分冗余测试用例的生成,提高了测试用例的有效性,并且根据不能接收的测试用例的回放数据也显示出部分NFC协议的脆弱点,说明NFC协议存在安全问题。方案在PC端实现,测试方案实现比较简洁。但是本文实现的方案需人工构造测试脚本,没有实现自动化的测试功能。下一步工作主要包括:首先,因为NFC API只能对数据进行简单的校验,不能进行更复杂的验证,所以接下来需要以含有NFC功能的Android APP为主体进行模糊测试,进一步验证协议的安全性;其次,本文进行的模糊测试结果依赖于人工构造的测试用例脚本,没有实现自动化的方案,所以接下来将对NFC协议模糊测试方案的自动化程度进行研究,减少对人工的依赖,保证测试的精确性。
/References:
[1] HAMEED S, JAMALI U M, SAMAD A.Protecting NFC data exchange against eavesdropping with encryption record type definition[C]//15th IEEEE/IFIP Network Operations and Management Symposium(noms). Istanbul:[s.n.],2016:94-100.
[2] ROSTAM N A, ZULKIFFLI N F, GHAZALI N H,et al. The acceptance study of NFC technology:A survey of models and user acceptance[C]// 2015 International Symposium on Technology Management and Emerging Technologies (ISTMET). Langkawi: [s.n.],2015:53-57.
[3] NVD.Vulnerability summary for CVE-2008-5825[EB/OL].http://web.nvd.nist.gov/view/vuln/detail?vuln Id=CVE-2008-5825,2015-01-09.
[4] NVD.Vulnerability summary for CVE-2008-5826[EB/OL].http://web.nvd.nist.gov/view/vuln/detail?vuln Id=CVE-2008-5826,2015-01-09.
[5] 张玉清,王志强,刘奇旭,等.近场通信技术的安全研究进展与发展趋势[J].计算机学报,2016, 39(6):1190-1207. ZHANG Yuqing, WANG Zhiqiang, LIU Qixu,et al.Research progress and trends on the security of near field communication[J]. Chinese Journal of Computers,2016,39(6):1190-1207.
[6] 张翔, 李雅峰, 张自宾,等. 网络入侵检测技术漫谈[J]. 河北工业科技, 2004, 21(2):30-32. ZHANG Xiang,LI Yafeng,ZHANG Zibin,et al. Discussion of intrusion detection technology[J].Hebei Journal of Industrial Science and Technology,2004, 21(2):30-32.
[7] 任军, 贾克. 基于隔离和免疫的蠕虫传播模型及稳定性分析[J]. 河北工业科技, 2015, 32(4):326-330. REN Jun,JIA Ke.Stability analysisof a worm propagation model with quarantine and vaccination[J].Hebei Journal of Industrial Science and Technology,2015,32(4):326-330.
[8] MILLER C. Exploring the NFC Attack Surface[R].[S.l.]:[s.n.],2012.
[9] MULLINER C. Vulnerability analysis and attacks on NFC-enabled mobile phones[C]//2009 International Conference on Availability, Reliability and Security. Fukuoka:[s.n.], 2009: 695-700.
[10]WIEDERMANN N.Fuzzing-to-go: A Test Framework for Android Devices [D]. München: Technische Universiat München, 2012.
[11]王志强,刘奇旭,张玉清. Android 平台NFC 应用漏洞挖掘技术研究[J]. 通信学报, 2014(sup2): 117-123. WANG Zhiqiang, LIU Qixu, ZHANG Yuqing. Research of discovering vulnerabilities of NFC applications on Android platform[J]. Journal on Communications, 2014(sup2):117-123.
[12]SUTTON M, GREENE A, AMINI P. Fuzzing: Brute Force Vulnerability Discovery[M]. Boston: Pearson Education, 2007.
[13]李红辉,齐佳,刘峰,等.模糊测试技术研究[J].中国科学:信息科学,2014,44(10): 1305-1322. LI Honghui, QI Jia, LIU Feng, et al.The research progress of fuzz testing technology[J]. Scientia Sinica( Informationis),2014,44(10): 1305-1322.
[14]刘奇旭,张玉清.基于Fuzzing的TFTP漏洞挖掘技术[J].计算机工程, 2007, 33(20): 142-144. LIU Qixu, ZHANG Yuqing. TFTP vulnerability exploiting technique based on Fuzzing[J]. Computer Engineering, 2007,33(20): 142-144.
[15]马金鑫,张涛,李舟军,等. Fuzzing过程中的若干优化方法[J].清华大学学报(自然科学版), 2016,56(5):478-483. MA Jinxin, ZHANG Tao, LI Zhoujun, et al.Improved fuzzy analysis methods[J].Journal of Tsinghua University(Science and Technology), 2016,56(5):478-483.
[16]吴志勇,夏建军,孙乐昌,等.多维Fuzzing 技术综述[J].计算机应用研究, 2010, 27(8): 2810-2813. WU Zhiyong,XIA Jianjun, SUN Lechang,et al. Survey of multi-dimensional Fuzzing technology[J]. Application Research of Computer, 2010,27(8): 2810-2813.
[17]孔(王莹). 基于静态分析技术的Web 漏洞挖掘[D]. 北京:中国科学院研究生院, 2012.
[18]闫斌. 一种二进制程序漏洞挖掘技术的研究与实现[D]. 北京:北京邮电大学, 2013. YAN Bin. Research and Implementation of A Binary Program Vulnerabilities Mining Technology[D]. Beijing:Beijing University of Posts and Telecommunications, 2013.
[19]张赛丹. 基于Fuzzing算法的网络漏洞挖掘研究[D]. 北京:北京邮电大学, 2014. ZHANG Saidan. Vulnerability Mining for Network Protocols Based on Fuzzing [D]. Beijing :Beijing University of Posts and Telecommunications, 2014.
[20]AMINI P.PAIMEI[EB/OL].http://pedram.redhive.com/PyDbg/dos,2008-10-06.
Fuzzy test optimization scheme for NFC protocol
ZHANG Guanghua1, SHI Xiaomeng1, LI Renhao2, REN Jun3
(1.School of Information Science and Engineering, Hebei University of Science and Technology, Shijiazhuang, Hebei 050018, China; 2.School of Electronic Engineering, Xidian University, Xi’an, Shaanxi 710126, China; 3.Hebei Education Examination Authority, Shijiazhuang, Hebei 050091, China)
Aiming at the problem that when the NFC protocol in under fuzz testing scheme, there is a large number of invalid testing cases which are incongruent with agreements, causing lower test efficiency. By applying the thought of graph theory, a fuzz testing which is based on the generated strategy and Depth-First-Search is introduced. It is proceeding based on the procreative strategy and constructive testing cases, and then traversed test requirements diagrams which is connected with agreement norms. It is used by depth-first algorithm to search the generate path which is covered by major cover points, and to simplify the cases generate path, which guarantees the cases to close to the agreements. According to the experimental analysis, the fuzz test can reduce invalid tests cases effectively and enhance the test's efficiency.
algorithm theory; communication network; NFC protocol; vulnerability discovery; fuzz testing; graph theory algorithm
1008-1534(2017)03-0155-07
2017-02-26;
2017-04-17;责任编辑:陈书欣
国家自然科学基金(61572255);中国博士后科学基金(2015M582622);物联网信息安全技术北京市重点实验室开放课题(J6V0011104)
张光华(1979—),男,河北深州人,副教授,博士,主要从事信任管理、无线网络安全方面的研究。
E-mail:xian_software@163.com
TP393
A
10.7535/hbgykj.2017yx03001
张光华,石晓朦,李仁浩,等.NFC协议的模糊测试优化方案[J].河北工业科技,2017,34(3):155-161. ZHANG Guanghua, SHI Xiaomeng, LI Renhao, et al.Fuzzy test optimization scheme for NFC protocol[J].Hebei Journal of Industrial Science and Technology,2017,34(3):155-161.