API密钥和令牌泄露


文档摘要

API 密钥和令牌泄露 API 密钥和令牌是常见的身份验证形式,通常用于管理对公共和私有服务的权限和访问。这些敏感数据一旦泄露,可能导致未经授权的访问、安全受损以及潜在的数据泄露。 摘要 工具 方法论 泄露的常见原因 验证 API 密钥 减少攻击面 参考文献 工具 aquasecurity/trivy - 通用漏洞和错误配置扫描器,同时可搜索 API 密钥/密钥 blacklanternsecurity/badsecrets - 一个库,可在多个平台上检测已知或弱密钥 d0ge/sign-saboteur - SignSaboteur 是一个 Burp Suite 扩展,用于编辑、签名和验证各种签名的 Web 令牌 mazen160/secrets-patterns-db -

API 密钥和令牌泄露

API 密钥和令牌是常见的身份验证形式,通常用于管理对公共和私有服务的权限和访问。这些敏感数据一旦泄露,可能导致未经授权的访问、安全受损以及潜在的数据泄露。

摘要

工具

方法论

  • API 密钥:用于验证与您的项目或应用程序相关请求的唯一标识符。
  • 令牌:安全令牌(如 OAuth 令牌),用于授予对受保护资源的访问权限。

泄露的常见原因

  • 在源代码中硬编码:开发人员可能无意中将 API 密钥或令牌直接写入源代码中。

    # Example of hardcoded API key api_key = "1234567890abcdef"
  • 公共代码库:意外地将敏感密钥和令牌提交到 GitHub 等公开可访问的版本控制系统中。

    ## Scan a Github Organization docker run --rm -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest github --org=trufflesecurity ## Scan a GitHub Repository, its Issues and Pull Requests docker run --rm -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest github --repo https://github.com/trufflesecurity/test_keys --issue-comments --pr-comments
  • 在 Docker 镜像中硬编码:API 密钥和凭据可能被硬编码在托管在 DockerHub 或私有注册表中的 Docker 镜像中。

    # Scan a Docker image for verified secrets docker run --rm -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest docker --image trufflesecurity/secrets
  • 日志和调试信息:密钥和令牌可能在调试过程中被无意中记录或打印出来。

  • 配置文件:将密钥和令牌包含在公开可访问的配置文件中(例如 .env 文件、config.json、settings.py 或 .aws/credentials)。

验证 API 密钥

如果需要帮助识别生成该令牌的服务,可以参考 mazen160/secrets-patterns-db。这是最大的开源数据库,用于检测密钥、API 密钥、密码、令牌等。该数据库包含多种密钥的正则表达式模式。

patterns: - pattern: name: AWS API Gateway regex: '[0-9a-z]+.execute-api.[0-9a-z._-]+.amazonaws.com' confidence: low - pattern: name: AWS API Key regex: AKIA[0-9A-Z]{16} confidence: high

使用 streaak/keyhacks 或查阅相应服务的文档,以找到快速验证 API 密钥有效性的方法。

  • 示例:Telegram Bot API 令牌

    curl https://api.telegram.org/bot<TOKEN>/getMe

减少攻击面

在将更改提交到 GitHub 代码库之前,先检查是否存在私钥或 AWS 凭据。

将以下几行添加到你的 .pre-commit-config.yaml 文件中。

- repo: https://github.com/pre-commit/pre-commit-hooks rev: v3.2.0 hooks: - id: detect-aws-credentials - id: detect-private-key

参考文献

免责声明
本文件由基于人工智能的机器翻译服务翻译而成。尽管我们力求翻译准确,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言版本的文件为准。对于关键信息,建议使用专业的人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。


发布者: 作者: 转发
评论区 (0)
U