fleury-bryan/api-security-scanner

GitHub: fleury-bryan/api-security-scanner

一个轻量级的 API 安全扫描器,通过对 OpenAPI 规范进行静态分析并结合 HTTP 安全头检查,帮助团队在 CI 阶段拦截常见的接口设计层安全风险。

Stars: 0 | Forks: 0

# api-security-scanner 一个轻量级的 **API 安全扫描器**。它对 **OpenAPI / Swagger** 规范进行静态分析,以检测常见的 API 风险(缺少身份验证、不安全的传输、 易受 BOLA/IDOR 攻击的 object-id endpoint、未记录的 auth 响应、缺少速率 限制),并 - 可选地针对实时的 base URL - 检查 **HTTP 安全 header**。检查结果按严重程度排名并提供了具体的修复方案,CLI 在遇到 High 级别的检查结果时会以非零状态退出,因此可以用于拦截 CI。 ## 为什么值得关注 - **`scanner/rules.py`** — 对 OpenAPI 文档进行静态检查: **没有身份验证**的 endpoint、未经过身份验证的 ** mutating **操作、 易受 **BOLA/IDOR** 攻击的 `{id}` 路径、缺失的 `securitySchemes`,以及缺少速率 限制 - 每一项都映射到 OWASP API 风险及其修复方案。 - **`scanner/headers.py`** — 纯粹的安全 header 检查(HSTS、CSP、 `X-Content-Type-Options`、`X-Frame-Options`、版本信息泄露)。 - **`scanner/report.py`** — 严重程度排名 + 遇到 High 级别退出码非零,因此 可以直接无缝接入 pipeline。 ## 运行它 ``` python -m venv venv && . venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt # 扫描 spec(捆绑的不安全样本) python -m scanner.cli examples/petstore-insecure.yaml # 同时检查实时的 security headers python -m scanner.cli examples/petstore-insecure.yaml --base-url https://example.com ``` ## 测试 ``` pytest -q ``` ## Docker ``` docker build -t api-security-scanner . docker run --rm -v "${PWD}/examples:/app/examples" api-security-scanner examples/petstore-insecure.yaml ``` ## 范围 / 诚实声明 这是一个**轻量级、规范优先**的扫描器,旨在尽早捕获设计层面的问题 并讲解这些检查规则 - 它不能替代完整的 DAST 工具。其动态 检测部分仅限于安全的、只读的 header 检查。
标签:API安全, HTTP安全头, JSON输出, OpenAPI规范, Python, 安全检测工具, 安全规则引擎, 无后门, 请求拦截, 逆向工具, 静态扫描