如何扫描 GitHub 存储库的凭据?

保护你的 GitHub 仓库:查找敏感信息的综合指南

你是否担心你的 GitHub 仓库中可能存在密码、密钥等敏感信息?你不是一个人。无数的开发者在 GitHub 上托管和分享代码,这既带来了便利,也带来了风险。一不小心,就可能将机密信息泄露到公共仓库中,造成严重的后果。

GitHub 上泄露机密数据的事件屡见不鲜,人为错误难以避免,但我们可以采取措施降低这种风险。如何确保你的仓库不包含任何敏感信息呢?

最简单的答案:不要直接存储敏感信息。最佳实践是使用专门的秘密管理软件来存储所有敏感数据。

然而,在团队协作中,我们无法控制每个人的行为。此外,如果使用 Git 来初始化和部署应用程序,会生成一个 .git 文件夹。如果这个文件夹可以通过互联网访问,可能会暴露敏感的配置信息。因此,应该考虑屏蔽对 .git URI 的访问。

以下是一些可以帮助你查找仓库中潜在风险的解决方案:

秘密扫描

GitHub 的秘密扫描功能是一项强大的工具,它能检测代码中隐藏的意外秘密,有效地防止数据泄露。无论是公共仓库还是私人仓库,它都能仔细扫描每一个角落,查找泄露的秘密。

更重要的是,一旦发现秘密,GitHub 会立即通知相应的服务提供商,促使他们快速降低潜在风险。对于私人仓库,GitHub 会通知组织所有者或管理员,确保团队中的相关人员第一时间了解情况。

为了持续提供可见性,警告会显眼地显示在仓库中,提醒你和你的团队迅速采取行动。GitHub 的秘密扫描功能就像一位警惕的盟友,努力确保没有秘密被忽视,保障你的项目安全。

现在,你可以自信地使用代码,因为你知道你的敏感信息受到了周全的保护。

Git Secrets

现在,我来介绍一下 git-secrets,一个可以防止我们不小心将秘密添加到 Git 仓库的工具。它会扫描提交、提交消息和合并操作,避免我们的代码中出现秘密泄露。

在 Windows 上,只需运行 install.ps1 PowerShell 脚本即可安装。它会将必要的文件复制到安装目录,并将其添加到用户的 PATH 环境变量中。这样,就可以在开发环境中的任何位置轻松访问 git-secrets。

安装后,git-secrets 会像守卫一样,检查是否有任何提交、提交消息或合并历史与预先配置的禁止模式匹配。如果检测到匹配,它会拒绝提交,防止敏感信息泄露。

我们可以通过在仓库根目录中添加一个 .gitallowed 文件,并使用正则表达式模式来微调 git-secrets 的行为。这有助于过滤掉那些可能触发警告但实际合法的代码行,在安全性和便利性之间取得平衡。

在扫描文件时,git-secrets 会提取所有与禁止模式匹配的行,并提供详细信息,包括文件路径、行号和匹配的行内容。它还会检查匹配的行是否与注册的允许模式匹配。如果允许模式取消了所有标记的行,则提交或合并操作会被认为是安全的。但如果任何匹配的行与允许模式不匹配,git-secrets 会阻止该过程。

使用 git-secrets 时,我们需要格外谨慎。禁止模式不应过于宽泛,允许模式也不应过于宽松。可以使用 `git secrets –scan $filename` 命令来临时测试模式,确保其按预期工作。

如果你想深入了解 git-secrets,或者想为其开发做出贡献,可以在 GitHub 上找到该项目。这是一个开源项目,欢迎社区成员的参与。加入进来,做出你的贡献!

有了 git-secrets,我们可以更有信心地编写代码,因为你知道,意外的秘密不会威胁到我们的项目。让我们使用这个工具来保护我们的敏感信息。

Repo Supervisor

Repo-supervisor 是一款出色的工具,可以检测代码中的秘密和密码。安装它非常简单,只需将 webhook 添加到你的 GitHub 仓库即可。Repo-supervisor 提供两种模式:扫描 GitHub 上的 Pull Request 或者从命令行扫描本地目录。选择最适合你的模式即可。

要开始使用 git-secrets,只需访问 GitHub 仓库并下载最新版本。你会发现为 AWS Lambda 部署量身定制的捆绑包,以及用户友好的 CLI 模式。使用 CLI 模式无需额外设置即可直接使用,而 Pull Request 模式则需要部署到 AWS Lambda。根据你的需求选择合适的选项,开始使用 git-secrets 来提高代码库的安全性!

在 CLI 模式下,你需要提供一个目录作为参数。Repo-supervisor 会扫描支持的文件类型,并使用特定的标记器来处理每个文件。它会对提取的字符串进行安全检查,并以纯文本或 JSON 格式提供清晰的报告。

对于 Pull Request 模式,Repo-supervisor 会处理 webhook 负载,提取修改后的文件,并对提取的字符串进行安全检查。如果发现问题,它会将 CI 状态设置为错误,并提供指向报告的链接。如果没有问题,CI 状态则会显示成功。

Repo-supervisor 是一款出色的代码检查器,可以保护我们的秘密和密码安全。它保障了代码库的完整性,这对我们的职业生涯至关重要。

快来试试 Repo-supervisor 吧!安装它,配置 webhook,然后让它扫描秘密和密码,享受额外的安全保障。

Truffle Hog

让我为你介绍 Truffle Hog,一个神奇的工具。它可以看作你忠实的代码伙伴,努力嗅探你的仓库中潜藏的任何敏感信息。Truffle Hog 擅长深入分析项目的历史,仔细扫描可能泄露的 API 密钥和密码等有价值的秘密。

凭借其高熵检查和正则表达式模式,这个工具可以挖掘隐藏的“宝藏”,确保你的代码保持安全。告别秘密泄露,拥抱 Truffle Hog 的警惕保护!

最棒的是,Truffle Hog 的最新版本包含了很多强大的新功能。它现在拥有 700 多个凭据检测器,可以主动验证相应的 API。它还支持扫描 GitHub、GitLab、文件系统、S3、GCS 和 Circle CI,用途广泛。

不仅如此,Truffle Hog 现在还原生支持使用其先进的 Driftwood 技术,针对数百万 GitHub 用户和数十亿 TLS 证书即时验证私钥。它甚至可以扫描二进制文件和其他文件格式,确保不遗漏任何细节。

此外,Truffle Hog 可以作为 GitHub Actions 和 Pre-commit Hook 使用,可以无缝集成到你的开发流程中。它使用方便,并且提供了额外的安全层,不会造成不必要的麻烦。

有了 Truffle Hog,你可以自信地保护你的代码,避免意外泄露,并让你的秘密保持私密性。快来试试 Truffle Hog,让它来保护你的项目吧!

Git Hound

GitHound 通过利用 GitHub 代码搜索、模式匹配和提交历史搜索,超越了其他工具的限制。它不仅可以搜索特定的仓库、用户或组织,还能搜索整个 GitHub。是不是很酷?

现在,让我们深入了解它的强大功能。Git Hound 利用 GitHub/Gist 代码搜索,精准地定位散布在 GitHub 上任何人上传的敏感信息。这就像拥有一张藏宝图,可以发现潜在的漏洞。

但 GitHound 的功能不止于此。它通过使用模式匹配、上下文信息和字符串熵来检测敏感数据。它甚至会深入挖掘提交历史,查找被不当删除的秘密,确保万无一失。

为了简化你的生活,GitHound 集成了一个评分系统,可以过滤掉常见的误报,并优化搜索,从而更有效地挖掘仓库。它旨在为你节省时间和精力。

你猜怎么着?Git Hound 还具备 base64 检测和解码能力。它可以揭示以 base64 格式编码的隐藏秘密,在查找敏感信息时为你提供额外的优势。

更重要的是,GitHound 提供了将其集成到更大系统中的选项。你可以根据你的特定需求生成 JSON 输出并自定义正则表达式。一切都是为了让你更灵活,并让你能够在其基础上进行构建。

现在,我们来谈谈它令人兴奋的用例。在企业界,GitHound 在搜索公开的客户 API 密钥方面非常宝贵。它有助于保护敏感信息,确保最高级别的安全性。

对于漏洞赏金猎人来说,Git Hound 是一款改变游戏规则的工具。它可以搜索泄露的员工 API 令牌,帮助你发现漏洞并获得应有的赏金。Git Hound 是不是很神奇?

Gitleaks

Gitleaks 旨在让你的生活更轻松。它是一款易于使用的一体化解决方案,可以检测秘密,无论它们是隐藏在你的代码的过去还是现在。告别在项目中暴露密码、API 密钥或令牌的风险。

安装 Gitleaks 非常简单。你可以根据自己的喜好使用 Homebrew、Docker 或 Go。此外,它还提供了灵活的部署选项。你可以将其直接设置为你仓库的预提交钩子,或者使用 Gitleaks-Action 将其无缝集成到你的 GitHub 工作流中。一切都是为了找到最适合你的配置。

现在,我们来谈谈 Gitleaks 提供的命令。首先,我们有“检测”命令。这个强大的命令可以让你扫描仓库、目录和单个文件。无论你是在自己的机器上还是在 CI 环境中工作,Gitleaks 都能满足你的需求。它可以确保没有秘密泄露。

但这还不是全部。Gitleaks 还提供了“保护”命令。这个命令可以扫描 Git 仓库中尚未明确提交的更改。它是你最后一道防线,可以防止秘密被意外泄露。它是保持代码清洁和安全的保护措施。

Tines 是一家业内值得信赖的公司,它赞助了 Gitleaks。在他们的支持下,Gitleaks 不断发展和改进,为你提供最好的秘密检测能力。

所以,朋友们,不要让秘密危及你的项目。安装它,配置它,然后让它来完成扫描和保护你的仓库的艰巨工作。

Repo Security Scanner

Repo 安全扫描器是一个非常重要的命令行工具,旨在帮助识别 Git 仓库中不小心提交的敏感数据,例如密码、令牌、私钥和其他机密信息。

这款强大的工具可以让你主动检测和解决由于不小心将机密信息包含在代码库中而引起的潜在安全漏洞。通过使用 Repo 安全扫描器,你可以确保存储库的完整性,并保护你的敏感数据不被未经授权的访问。

Repo Security Scanner 可以轻松地深入分析整个仓库的历史,并快速呈现全面的扫描结果。通过进行全面扫描,你可以主动识别并迅速解决可能由开源软件中暴露的秘密引起的潜在安全漏洞。

Git Guardian

GitGuardian 是一款强大的工具,可以帮助开发人员、安全和合规团队实时监控 GitHub 活动,并识别由于暴露的秘密(如 API 令牌、安全证书、数据库凭据等)而导致的漏洞。

GitGuardian 允许团队在私有和公共代码以及其他数据源中实施安全策略。

GitGuardian 的主要特点是:

  • 该工具可以帮助查找敏感信息,例如私有源代码中的秘密。
  • 识别并修复公共 GitHub 上敏感数据泄露的问题。
  • 它是一款高效、透明且易于设置的秘密检测工具。
  • 覆盖范围更广,拥有全面的数据库,涵盖几乎所有存在风险的敏感信息。
  • 改进发现过程和有效性的复杂模式匹配技术。

结论

我希望这篇文章能帮助你了解如何在 GitHub 仓库中查找敏感数据。如果你使用的是 AWS,可以查看这篇文章,了解如何扫描 AWS 的安全性和配置错误。请继续关注更多令人兴奋的工具,它们将帮助你提升职业生涯。祝你编码愉快,并安全地保管好你的秘密!🔒