arkanzasfeziii/API-Security-Posture-Scanner
GitHub: arkanzasfeziii/API-Security-Posture-Scanner
一款综合性的 API 安全态势评估 CLI 工具,针对 REST、GraphQL 和 gRPC 端点按 OWASP API Security Top 10 进行系统性安全检查并生成风险评分报告。
Stars: 0 | Forks: 0
# API 安全态势扫描器




一个综合性的 CLI 工具,可持续评估 REST、GraphQL 和 gRPC API 的**安全态势** —— 它超越了特定时间点的漏洞扫描,旨在评估整体的安全基础状况、配置质量以及对 OWASP API Security Top 10 (2023) 的遵循情况。传统的扫描器通常只查找单一的 CVE,而态势评估则会提问:*该 API 在总体上抵御各类攻击的能力究竟如何?*
## 功能
| 检查项 | OWASP 分类 | 严重程度 |
|-------|----------------|----------|
| HTTPS 强制执行 | API8 – Security Misconfiguration | Critical |
| 安全响应头审计 (HSTS, CSP, X-Frame-Options…) | API8 | Medium–High |
| 泄露信息的响应头 (Server, X-Powered-By…) | API8, API9 | Low |
| CORS 策略验证 (通配符 + 凭证) | API8 | High–Critical |
| 危险的 HTTP 方法 (TRACE, DEBUG, TRACK) | API5, API8 | Low–Medium |
| 速率限制响应头检测 | API4 – Unrestricted Resource Consumption | Medium |
| 未经认证的 endpoint 访问 | API2 – Broken Authentication | Medium |
| 通过明文 HTTP 进行 Basic Auth | API2, API8 | Critical |
| 堆栈跟踪 / 错误详情泄露 | API8 | Medium |
| 调试与管理端点暴露 | API9 – Improper Inventory Management | Medium |
| TLS 版本和密码套件审计 | API8 | High |
| 启用了 GraphQL introspection | API8, API9 | Medium |
| GraphQL 查询深度限制 | API4 | Medium |
| GraphQL 查询批量处理滥用 | API4 | Low |
| 错误中的 GraphQL 字段建议 | API9 | Info |
| GraphQL 冗长的错误消息 | API8 | Low |
| 接受 gRPC 不安全通道 | API8 | Critical |
| 启用了 gRPC 反射服务 | API9 | Medium |
## 安装说明
```
git clone https://github.com/arkanzasfeziii/API-Security-Posture-Scanner.git
cd API-Security-Posture-Scanner
pip install -r requirements.txt
```
## 快速开始
```
# 基础 REST API 扫描
python apisecposture.py https://api.example.com
# 带身份验证的 GraphQL
python apisecposture.py https://api.example.com/graphql --type graphql --auth
# Aggressive 模式与 HTML 报告
python apisecposture.py https://api.example.com --aggressive \
--i-understand-legal-responsibilities --output report.html
```
## CLI 选项
| 选项 | 默认值 | 描述 |
|--------|---------|-------------|
| `url` | *(必填)* | 目标 API URL |
| `--type` | `auto` | API 类型: `rest`, `graphql`, `grpc`, `auto` |
| `--headers` | – | 作为 JSON 字符串的自定义 headers |
| `--auth` | – | 用于认证扫描的 Bearer token |
| `--proto` | – | `.proto` 文件的路径 (gRPC) |
| `--timeout` | `10` | 请求超时时间(秒) |
| `--aggressive` | `false` | 启用调试端点探测 |
| `--verbose` | `false` | 调试级别的日志记录 |
| `--output` | – | 导出路径 (`.json` 或 `.html`) |
| `--examples` | – | 打印使用示例并退出 |
| `--i-understand-legal-responsibilities` | – | 跳过交互式授权提示 |
## 输出示例
```
======================================================================
API Security Posture Scanner v1.0.0
======================================================================
Author: arkanzasfeziii
Target: https://api.example.com
API Type: REST
Running security checks...
================================================================================
Security Posture Assessment Summary
================================================================================
Target API https://api.example.com
API Type REST
Scan Duration 4.21s
Total Findings 9
Total Risk Score 42
Severity Breakdown
CRITICAL 1
HIGH 2
MEDIUM 5
LOW 1
Overall Risk Assessment
Risk Level: CRITICAL
Total Risk Score: 42
Immediate action required. Multiple critical issues detected.
```
## 支持的 API 类型
- **REST** — 完整的 headers、TLS、CORS、认证、速率限制和端点检查
- **GraphQL** — Introspection、深度限制、批处理、字段建议、错误详细程度
- **gRPC** — TLS 强制执行和反射服务检测
## 法律免责声明
此工具仅供**授权的安全测试**使用。在扫描任何 API 之前,您必须获得明确的书面许可。作者对滥用行为不承担任何责任。有关负责任的披露政策,请参阅 [SECURITY.md](SECURITY.md)。
标签:API安全, GraphQL, gRPC, JSON输出, OWASP Top 10, Python, REST, 密码管理, 无后门, 逆向工具