defensics是一个模糊测试工具,百度百科对模糊测试(Fuzzing)的定义是,是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。它是通过异常输入的方式触发原来未知的漏洞。
模糊测试的测试用例生成方式有两种:基于生成和基于变异的。基于变异的模糊测试,使用实际的输入,通过随机修改样本或基于样本结构的方式生成测试用例。而基于生成的模糊测试中,需要对被测协议或文件格式有较好的理解,对被测协议或文件格式建立起模型,然后模糊测试工具根据模型生成测试用例,对协议功能有一个完美的覆盖。
defensics公司的一个文档中曾经在测试用例,执行时间和发现漏洞等方面对基于生成和基于变异的模糊测试进行了对比,基于生成的测试执行时间要短很多,测试用例数量要少很多,但是发现的漏洞数却要多很多。
公司利用defencisc主要是做基于TCP/IP协议模糊测试。现阶段主要是利用Condenomicon提供的测试suite来进行的,还未针对公司内部的协议做模糊测试。
defensics是由Codenomicon 科诺斯公司提供的,它也提供了常见协议的test suite,可以到公司网站下载最新的test suite,目前用得比较多的是ARP Server/Client Test Suite,IPv4 test suite,TCP for IPv4 Server/Client Test Suite,ICMPV4 Test Suite等test suite。最多的一个test suite可能有上百万个测试用例,最少的也得上万个。
defensics主要是针对协议,输入一些变异的,异常的,不合法的协议数据,从而检验系统对这些异常数据的处理能力。比如将TCP协议的端口字段增加一个字节,TCP协议的窗口长度为0等,每个test suite是针对一个协议的各个方面的异常数据的总和。
如TCP for TPV4 server test suite的组织结构为:
TCP for TPV4 server test suite:
active-close --named group
wait-close
SYNACK-Reset
Established-Reset
Sockstress
known-Attacks
已经出现过的漏洞的地方往往还存在脆弱点。
如果不确定当前被测试系统是否能支持test suite或者group,可以自动扫描是否支持。
如果不用官网提供的test suite,自己很难写出比较全面的系统的模糊测试用例。
defensics也是一个较好的自动化测试工具,所有的测试用例从运行到结果的显示到report都是自动化的,一个suite的测试用例多达百万个,如果不能全自动的运行,也是一件特别伤脑筋的事情。
defensics可以记录不用level的log。如valid case and failed case,valid case and anomally messages,debug trace(full logging),no trace等,一般选择valid case and failed case,如果全部log都保存下来也需要不少空间啊,关键是分析也费劲。
模糊测试的测试用例生成方式有两种:基于生成和基于变异的。基于变异的模糊测试,使用实际的输入,通过随机修改样本或基于样本结构的方式生成测试用例。而基于生成的模糊测试中,需要对被测协议或文件格式有较好的理解,对被测协议或文件格式建立起模型,然后模糊测试工具根据模型生成测试用例,对协议功能有一个完美的覆盖。
defensics公司的一个文档中曾经在测试用例,执行时间和发现漏洞等方面对基于生成和基于变异的模糊测试进行了对比,基于生成的测试执行时间要短很多,测试用例数量要少很多,但是发现的漏洞数却要多很多。
公司利用defencisc主要是做基于TCP/IP协议模糊测试。现阶段主要是利用Condenomicon提供的测试suite来进行的,还未针对公司内部的协议做模糊测试。
defensics是由Codenomicon 科诺斯公司提供的,它也提供了常见协议的test suite,可以到公司网站下载最新的test suite,目前用得比较多的是ARP Server/Client Test Suite,IPv4 test suite,TCP for IPv4 Server/Client Test Suite,ICMPV4 Test Suite等test suite。最多的一个test suite可能有上百万个测试用例,最少的也得上万个。
defensics主要是针对协议,输入一些变异的,异常的,不合法的协议数据,从而检验系统对这些异常数据的处理能力。比如将TCP协议的端口字段增加一个字节,TCP协议的窗口长度为0等,每个test suite是针对一个协议的各个方面的异常数据的总和。
如TCP for TPV4 server test suite的组织结构为:
TCP for TPV4 server test suite:
active-close --named group
wait-close
SYNACK-Reset
Established-Reset
Sockstress
known-Attacks
已经出现过的漏洞的地方往往还存在脆弱点。
如果不确定当前被测试系统是否能支持test suite或者group,可以自动扫描是否支持。
如果不用官网提供的test suite,自己很难写出比较全面的系统的模糊测试用例。
defensics也是一个较好的自动化测试工具,所有的测试用例从运行到结果的显示到report都是自动化的,一个suite的测试用例多达百万个,如果不能全自动的运行,也是一件特别伤脑筋的事情。
defensics可以记录不用level的log。如valid case and failed case,valid case and anomally messages,debug trace(full logging),no trace等,一般选择valid case and failed case,如果全部log都保存下来也需要不少空间啊,关键是分析也费劲。
测试用例运行完成之后,在result里面可以看到,如果测试用例全部通过,则文件夹标记为绿色,如果有测试用例没有通过,这文件夹标记为红色。
result文件夹里主要有三个文件,main.log, notes.xml和statistics.csv。main.log记录的是被测系统和测试系统之间的数据包,点开可以看到每个数据包的具体数据。statistics.csv里面会显示pass和fail的测试用例,点开fail的测试用例,也可以看到数据包并了解数据包是在哪里发生了变异。
一下是defensi