解决方案需求
数字化转型正在成为社会发展的新常态,智能AI技术、大数据和5G网络新技术将推动社会各行各业迈入数字新基建的新时代,构建一套完美的解决方案方能扬帆领航。
了解更多了解更多

数据库智能模糊测试

作者:容域科技 发布时间:2022-12-05
数据库智能模糊测试系统是智能化的数据库质量与安全检测工具,可以自动生成测试用例,对关系型数据库、实时数据库等各类系统进行高效漏洞挖掘,有效检测各类高危漏洞。

1.1测试框架

数据库智能模糊测试系统针对数据库测试场景特点,在智能模糊测试基础上,针对性提出了数据库测试能力优化技术,可以有效提高漏洞挖掘能力。如下为数据库智能模糊测试系统的测试框架:
 

1.2测试优化:

数据库智能模糊测试系统对于黑盒测试、灰盒测试、覆盖率收集、SQL用例生成和实时缺陷分析都有进行优化。

1.2.1黑盒测试优化

黑盒测试是指在没有数据库源代码,只有可执行文件的情况下,对数据库系统进行测试。黑盒测试的使用门槛比较低,配置容易,并且可以测第三方以可执行程序形式提供的数据库系统。
系统在两个方向对黑盒测试进行了效果优化,其一是纯二进制模式的覆盖率收集,其二是纯二进制模式的内存检查机制。通过这两个机制,即使在没有源码的环境下,也可以高效的进行模糊测试。

1.2.2灰盒测试优化

系统支持灰盒测试模式,在有数据库源代码,并且可以从源码编译为可执行程序的条件下,对数据库系统进行测试。灰盒测试可以进行更高效的插桩和内存检测,测试效果会更好。
灰盒要求有全套源码和编译环境,使用者也必须熟悉数据库的编译步骤,使用条件比较高。我们建议初步可以从黑盒上手使用,在深入使用本产品后,再应用灰盒优化。

1.2.3覆盖率收集优化

现有的模糊测试覆盖率收集技术,通常只能针对单进程的程序,不同的程序分支覆盖率还会有冲突的可能。而数据库系统往往是多进程、分布式的,针对单进程的方案无法使用。并且数据库系统复杂性比较高,如果采用有冲突的方案,会造成冲突概率很高。这些问题都会影响到覆盖率收集的效果,导致难以高效引导测试数据变异生成。数据库智能模糊测试系统基于全程序分析技术,对于多进程、分布式的程序,也可以保证采集的覆盖率全局无冲突的。达到了优化测试数据生成质量,提高测试覆盖率的效果。

1.2.4SQL用例生成优化

传统模糊测试方法中,由于对语法无感知,可能生成大量无效的测试用例。而当前针对数据库改进的测试工具中,虽然引入了语法描述,却带来了较高的适配成本。数据库智能模糊测试系统基于文法文件实现了SQL语句的自动变异生成,一方面有效避免了无效用例,提升测试用例鲁棒性,同时可以大大减少适配成本。

1.2.5实时缺陷分析

现有工具中,面对数据库系统多状态、多进程的特点,难以实现全面的错误信息收集与缺陷分析。数据库智能模糊测试系统基于轻量级调试器技术,对崩溃上下文进行保存,可实现全面的异常监控及深入分析,并支持基于详细上下文进行自动bug去重,输出精准缺陷报告。

1.3使用流程

数据库智能模糊测试系统有编译流程和测试流程两个步骤。灰盒测试需要先编译再测试,黑盒测试则不需要编译。

1.3.1 编译流程

编译流程只有灰盒测试的场景需要进行,黑盒测试场景可以直接跳过本节。首先用户需要在待测目标环境安装SDK,其中就包含了编译所需的编译器和运行时库。其次用户需要编写编译配置文件,指定编译参数。最后,使用build命令,配合原本的编译命令,即可完成编译器的自动替换,编译出带有插桩的二进制程序。

1.3.2 测试流程

首先,用户需要编写测试配置文件,其中包含了数据库的初始化、启动服务端、启动客户端这几个流程的命令或脚本。然后就可以使用SDK启动测试。
启动测试后,数据库智能模糊测试系统会基于模型自动生成海量的测试数据,通过覆盖率动态监控智能提升测试深度,生成结果分析报告,最终将精准缺陷报告反馈给用户,并支持可视化统计查看。除手动测试之外,系统也可以基于CLI与API,集成至CI工具链,实现代码提交、自动构建、自动测试、报告反馈。
 
XFUZZ自动化测试流程

以上为数据库智能模糊测试系统的基本介绍,如有其他疑问请联系交流讨论。
 

全部方案

数字新基建
等保云灾备