模糊测试框架

https://blueprints.launchpad.net/tempest/+spec/fuzzy-test

负面测试框架以基于 JSON schema 的方式自动测试 API 服务器的单个方面。使用此功能可以创建模糊测试,但重点不同。

问题描述

Tempest 缺乏对安全方面的覆盖。使用此类框架检测安全漏洞将是 Tempest 的一个重要的新测试领域。

提议的变更

此框架的重点是漏洞识别和拒绝服务 (DoS) 攻击。它可以将 API schema 定义作为输入来生成有缺陷的请求。

拒绝服务

DoS 模式易于验证,被认为是第一步。 某个服务会产生一部分有缺陷的请求以及有效的请求,例如身份验证。为了验证 DoS 攻击是否成功,可以使用一组常规的 Tempest API 测试来完成此目的。为了产生所需的负载,可以使用 Tempest 的压力测试框架来提高负载率。

漏洞识别

安全问题的识别可能非常复杂,自动检测只能完成非常有限的工作。为了识别可能存在的漏洞,需要分析以下数据

  • 请求结果:成功代码或内部服务器错误是潜在的威胁,需要由框架进行分析和记录。

  • 系统可用性:可以检查所有 OpenStack 组件是否可用,作为验证。

  • 请求日志:Tempest REST 客户端记录所有请求。这对于识别导致威胁的请求或场景至关重要。

数据生成

数据生成应支持不同的来源,并且这可能是与第三方模糊测试产品的接口。借助负面测试框架的多后端功能(参见 https://review.openstack.org/#/c/73982/),可以使用不同的测试生成器。这些生成器必须遵循基类中定义的接口 (tempest.common.negative.base)。

替代方案

使用第三方产品进行模糊测试生成,不要将其集成到 Tempest 中。

实现

负责人

主要负责人

Marc Koderer (mkoderer)

里程碑

完成目标里程碑

Juno-3

工作项

将在

https://etherpad.openstack.org/p/bp_fuzzy_test

依赖项

无。