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 安全态势扫描器 ![Python 3.8+](https://img.shields.io/badge/python-3.8%2B-blue.svg) ![MIT License](https://img.shields.io/badge/license-MIT-green.svg) ![CI Lint](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/fc1ee6eb32150904.svg) ![OWASP API Top 10](https://img.shields.io/badge/OWASP-API%20Top%2010-red.svg) 一个综合性的 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, 密码管理, 无后门, 逆向工具