探索安全边界:OpenAPI Security Scanner
随着Web应用程序的复杂性日益增加,授权安全性问题成为了一个不容忽视的挑战。在Shopify,LINE,NordVPN等知名公司的经验中,我们发现这些漏洞通常不是由常规安全扫描器检测到的,因为它们主要针对SQL注入、XSS和RCE等攻击。为了解决这个问题,OpenAPI Security Scanner应运而生,它是一个专为发现授权安全漏洞设计的自动化工具。
项目简介
OpenAPI Security Scanner通过自动化和手动审查相结合的方式来探测潜在的安全隐患。这个工具就像一个外部单元测试工具,确保你的Web应用按预期运行。它基于Schemathesis构建,能够帮助开发者和安全研究员更加高效地管理和监控API的安全状况。
技术分析
该工具的工作流程相当直观。首先,你需要准备目标API的OpenAPI YAML文件,然后定义要测试的端点和变量,并生成不同用户的多套凭证进行测试。设置完成后,启动扫描器,结果将保存在工件中。你还可以定期运行并自定义通知方式以应对扫描结果的变化。
应用场景
对于开发者来说,集成OpenAPI Security Scanner可以提供额外的安全保障,确保每次代码部署后API的行为都是正确的。而对于bug赏金猎人,这个工具可以帮助他们持续追踪目标API,因为即使某个接口之前没有漏洞,也可能由于各种原因在未来变得脆弱。
项目特点
- 自动化与手动审查结合:既能自动扫描大量边缘情况,也支持人工深入检查。
- 灵活配置:可以自定义API端点、用户凭证和路径变量,覆盖各种测试场景。
- 实时监测:可集成到GitLab CI/CD流程中,随代码部署自动触发扫描。
- 可视化的扫描结果:清晰的报告便于理解和分析问题。
使用步骤
- 替换
api.yaml
为你自己的OpenAPI YAML文件。 - 在GitLab项目设置中添加必要的环境变量。
- 配置凭证(OPENAPI_CREDS)、端点(OPENAPI_ENDPOINTS)和路径变量(OPENAPI_PATHS)。
- 添加私有访问令牌(PRIVATE_TOKEN),用于下载扫描结果。
- 设置基础URL(OPENAPI_BASE_URL)。
此外,项目还提供了一个演示,展示如何对GitHub API执行简单的权限测试,包括Slack通知和扫描结果的可视化展示。
警告与限制
请注意,在使用前确保获得了扫描目标API的授权。目前,该工具仅支持测试GET
方法的端点,对于响应变化不定的API,可能无法有效检测变化。
参与贡献
欢迎任何形式的贡献,无论是修复错误、新增功能还是改进文档,只需按照贡献指南进行操作即可。
许可证
该项目遵循MIT许可,详细信息请查看LICENSE
文件。
联系方式
如有任何疑问或建议,可以联系创建者@ngalongc,或者直接访问项目页面:https://gitlab.com/ngalog-gitlab/openapi_security_scanner。
OpenAPI Security Scanner,让您的Web应用安全无虞!