AI 边界测试引擎

Chaos-Tester

模型适配器: OpenAI

任务输入

发起撞击

密钥环境变量: OPENAI_API_KEY
防御评分

防御完整度

70%

总数

10

防住

7

击穿

3

崩溃雷达

3 个风险

红色项代表目标 API 返回 5xx、泄露敏感错误信息、超时,或接受了高风险 payload。

/日志/chaos-runner

已防住#01

SQL 注入

查询参数 SQL 注入

$ 发射载荷 --method GET https://api.example.com/v1/users?id=1%27%20OR%20%271%27%3D%271

HTTP 状态

400 / 安全拒绝

耗时

42ms

判定

PASS

预期行为:拒绝恶意参数,且不能泄露数据库细节。

分析:目标 API 以 HTTP 400 安全拒绝了恶意输入。

查看响应体预览
{"error":"invalid input"}
已防住#02

NoSQL 注入

NoSQL 操作符注入

$ 发射载荷 --method POST https://api.example.com/v1/users

HTTP 状态

422 / 安全拒绝

耗时

57ms

判定

PASS

预期行为:将操作符当作普通数据处理,并拒绝畸形过滤条件。

分析:目标 API 以 HTTP 422 安全拒绝了恶意输入。

查看响应体预览
{"error":"schema validation failed"}
已防住#03

超大载荷

超大 metadata 载荷

$ 发射载荷 --method POST https://api.example.com/v1/users

HTTP 状态

413 / 安全拒绝

耗时

64ms

判定

PASS

预期行为:拒绝超大载荷,且不能耗尽内存。

分析:目标 API 以 HTTP 413 安全拒绝了超大载荷。

查看响应体预览
{"error":"payload too large"}
已击穿#04

Unicode 边界

零宽字符用户名

$ 发射载荷 --method POST https://api.example.com/v1/users

HTTP 状态

201 / 已接受

耗时

88ms

判定

FAIL

预期行为:安全地归一化或拒绝混淆性 Unicode 字符。

分析:目标 API 用成功响应接受了高风险边界载荷。

查看响应体预览
{"id":"usr_491","name":"admin\u200b\u200b"}
已防住#05

数值边界

负数年龄边界

$ 发射载荷 --method POST https://api.example.com/v1/users

HTTP 状态

400 / 安全拒绝

耗时

33ms

判定

PASS

预期行为:用明确的 4xx 响应拒绝负数值。

分析:目标 API 以 HTTP 400 安全拒绝了恶意输入。

查看响应体预览
{"error":"age must be greater than zero"}
已防住#06

类型混淆

数组冒充对象

$ 发射载荷 --method POST https://api.example.com/v1/users

HTTP 状态

415 / 安全拒绝

耗时

51ms

判定

PASS

预期行为:当接口预期对象结构时,应拒绝数组请求体。

分析:目标 API 以 HTTP 415 安全拒绝了类型错误的请求体。

查看响应体预览
{"error":"unsupported body shape"}
已击穿#07

鉴权异常

畸形 Bearer Token

$ 发射载荷 --method GET https://api.example.com/v1/users

HTTP 状态

401 / 安全拒绝

耗时

39ms

判定

FAIL

预期行为:拒绝畸形令牌,且不能暴露鉴权内部实现。

分析:响应疑似暴露了错误堆栈或敏感实现细节。

查看响应体预览
JsonWebTokenError: malformed jwt at verifyToken (/srv/auth/token.ts:42)
已防住#08

异常方法

异常 DELETE 方法

$ 发射载荷 --method DELETE https://api.example.com/v1/users

HTTP 状态

405 / 安全拒绝

耗时

28ms

判定

PASS

预期行为:返回 405,且不能修改任何状态。

分析:目标 API 以 HTTP 405 安全拒绝了异常方法。

查看响应体预览
{"error":"method not allowed"}
已击穿#09

结构违规

重复 role 参数

$ 发射载荷 --method POST https://api.example.com/v1/users?role=user&role=admin

HTTP 状态

200 / 已接受

耗时

76ms

判定

FAIL

预期行为:稳定拒绝重复的敏感字段。

分析:目标 API 用成功响应接受了高风险边界载荷。

查看响应体预览
{"role":"admin","created":true}
已防住#10

限流/重放

限流重放突刺

$ 发射载荷 --method POST https://api.example.com/v1/users

HTTP 状态

429 / 安全拒绝

耗时

24ms

判定

PASS

预期行为:对重复载荷限流,且不能崩溃。

分析:目标 API 以 HTTP 429 安全拒绝了高频请求。

查看响应体预览
{"error":"too many requests"}