Defensics 健壮性测试工具测试方案1.前言本文档就 CodenomiconDefensics 的工控安全测试方案提供说明,就测试原理,测试组网,支持的协议以及测试流程提供帮助,指导测试的进行。2.测试日程安排N/A3.产品功能介绍CodenomiconDefensics 是基于协议级别的专门进行 fuzzing 测试的健壮性测试工具,专门用于发掘产品当中的未知漏洞。当前随着 APTs 高级持续攻击的日益猖獗,网络及工控安全面临前所未有的挑战,大部分的攻击利用的都是设备或系统当中的零日漏洞,这类漏洞由于缺少相应的防护措施以及补丁,往往成为黑客攻击的首选。而黑客在寻找零日漏洞时往往采用的就是 fuzzing 技术,Defensics 能够先敌而动,在黑客攻击之前发现产品当中隐含的零日漏洞,帮助客户弥补潜在的安全隐患。CodenomiconDefensics 通过构造有序的异常用例集合,来查看系统是否会出现中断或服务失败等现象。通过采用基于协议建模的构建方法,可以保证对协议所有状态机和字段的覆盖。而通过智能高效的用例生成策略,可以使测试人员从无限的数据源中摘取出容易诱发系统服务失败的数据。作为黑盒测试,Fuzzing 测试不需要访问源代码,因此可在第三方软件上使用。通过自动化的用例生成、管理和执行,最大限度地提升测试效率,保证产品的安全质量。4.测试原理模糊测试(Fuzzing),是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。目前国际上公认找寻未知漏洞的最佳途径就是通过 Fuzzing。Codenomicon 公司主推的 Defensics 产品就是一款基于黑盒的专门针对网络协议进行 Fuzzing 的安全性/健壮性测试平台。我们会选取出一系列的有组织的异常数据(畸形报文)发送给被测设备,并通过正常报文的探测来观察被测设备是否还处于正常工作状态。这里所谓的“有组织的异常数据”是通过一下两个方向来形成的:•缓冲区溢出/溢进,边界值,等等(后续会有具体分类);•根据某种特定网络协议的规约(比如 RFC)来对该协议的每一个具体字段,以及整个状态机的所有报文顺序进行遍历,确保代码的高覆盖率。以下是 Defensics 进行 Fuzzing 的原理,如图所示,一个完整的测试场景一般可以分为三个步骤:•互通性测试,互通性测试的目的是检测工具和被测物之间的配置一致性和连通性是否正常。工具会发送一组正常的协议报文用例到被测物,每个用例都是一个完成的报文交互过程,通过这样一组正常用例,可以覆盖协议所有的状态机和字段,在发送异常...