方法论:我们如何发现超过18,000个API密钥令牌
方法论:我们如何发现超过18,000个API密钥令牌
今年伊始,我们的安全研究团队便全力投入到识别当前API安全挑战的工作中。通过深入分析,我们发现了API密钥和令牌暴露的惊人现象,并揭示了其可能带来的重大安全隐患。本文将详细介绍我们采用的方法论,帮助您了解如何有效应对API密钥泄露问题。
方法论
蜘蛛网的发展
为了应对扫描100万个域名的复杂任务,我们开发了一种专用的网络蜘蛛工具。该工具使用Golang构建,得益于其卓越的I/O吞吐量、并发支持和开发效率,能够高效处理大规模网络数据。
此外,我们还整合了一个基于自然语言处理服务,通过gRPC**接口访问。这一服务帮助我们分析和处理现代Web应用中关键的JavaScript代码。
整个解决方案部署在Kubernetes集群上,利用其强大的编排能力实现高效的任务分配和资源管理。
数据收集策略
为确保分析的全面性,我们选择了100万个最受欢迎的域名作为研究对象。虽然这一方法可能存在一定的偏差,例如较大网站通常拥有更完善的安全措施,而较小网站则更容易出现安全问题,但我们的研究重点在于评估主流领域的安全现状。
我们基于最新的Majestic数据集,开展了一次性数据收集工作。在此过程中,我们刻意排除了一些领域(如政府、教育和医疗相关网站),以确保研究符合法律和道德规范。
通过聚焦公众可访问的领域,我们得以全面评估互联网中API密钥泄露的现状,并揭示其对不同行业和平台的潜在影响。
数据收集过程
我们的数据收集过程规模庞大且技术复杂。为高效完成任务,我们在Kubernetes集群上部署了容器化的网络蜘蛛,支持150个并发工作实例。这一架构使我们能够以每秒分析4个域名的速度,在69小时内完成了对100万个域名的扫描。
最终,我们访问了超过1.89亿个URL,并对每个域名及其子域进行了平均32秒的深入分析。这种全面的方法确保了我们对网络环境的全貌有更清晰的了解。
值得一提的是,我们的团队仅用三天时间开发了这一工具,并以不到100美元的计算成本完成了整个项目。这一成果展示了在有限资源下实现高效解决方案的可能性。
数据清理和验证
为了提高发现的准确性,我们优化了启发式方法,专注于高熵密钥的识别。这些密钥通常代表专有的、未记录的令牌,因此更容易对安全构成威胁。
在验证阶段,我们仅在系统对发现结果高度自信时,才会向相关代币所有者发出警报。这一过程需要在避免误报和确保警报准确性之间取得平衡。
通过细致的清理和验证,我们能够为潜在受影响的用户提供可靠且可操作的安全建议。
结论
API的安全性管理是一个复杂的挑战,而当密钥和令牌在现实环境中意外暴露时,风险更是成倍增加。我们的研究表明,API密钥泄露问题普遍存在于各类网站和行业中,即使是技术领先的企业也难以幸免。
为降低风险,组织应采取以下措施:
- 集中管理代币;
- 实施密钥轮换策略;
- 细化访问权限;
- 加强安全培训;
- 使用自动化测试工具。
通过这些最佳实践,您可以显著提升API的安全性,减少潜在威胁的影响。
原文链接: https://escape.tech/blog/how-we-discovered-over-18-000-api-secret-tokens/