如果作为开发人员、系统管理员、全栈工程师或站点可靠性工程师的您,日常工作涉及到 Git 推送、提交和拉取到 GitHub 以及部署到 Amazon Web Services (AWS),那么安全性始终是一个令人担忧的问题。 幸运的是,有开源工具可以帮助您的团队避免可能使您的组织损失数千美元的常见错误。
本文介绍了四种开源工具,它们可以帮助您在使用 GitHub 和 AWS 进行开发时改进安全实践。 此外,本着开源的精神,我与三位安全专家携手合作撰写本文,他们是:Travis McPeak,Netflix 高级云安全工程师; Rich Monk,红帽高级首席信息安全分析师; 以及 Alison Naylor,红帽首席信息安全分析师。
我们已按场景对每个工具进行了划分,但它们并非互斥。
1. 使用 Gitrob 查找敏感数据
您需要找到团队 Git 存储库中存在的任何潜在敏感信息,以便将其删除。 对于您来说,使用专注于使用红/蓝团队模型攻击应用程序或系统的工具可能是有意义的,在这种模型中,信息安全团队分为两个:攻击团队(又名红队)和防御团队(又名蓝队)。 拥有一个红队来尝试渗透您的系统和应用程序,远胜于等待对手这样做。 您的红队可能会尝试使用 Gitrob,这是一款可以克隆和爬取您的 Git 存储库以查找凭据和敏感文件的工具。
尽管像 Gitrob 这样的工具可能被用于恶意目的,但这里的想法是让您的信息安全团队使用它来查找意外泄露的属于您组织的敏感数据(例如 AWS 密钥对或其他因错误提交的凭据)。 这样,您就可以修复您的存储库并清除敏感数据——希望在对手找到它们之前。 请记住,不仅要删除受影响的文件,还要 删除其历史记录!
2. 使用 git-secrets 避免提交敏感数据
虽然在 Git 存储库中查找和删除敏感信息很重要,但最好还是从一开始就避免提交这些秘密,不是吗? 错误时有发生,但您可以使用 git-secrets 来保护自己免受公开尴尬。 此工具允许您设置钩子,扫描您的提交、提交消息和合并,以查找秘密的常见模式。 选择与您的团队使用的凭据相匹配的模式,例如 AWS 访问密钥和密钥。 如果找到匹配项,您的提交将被拒绝,潜在的危机也将避免。
为您现有的存储库设置 git-secrets 非常简单,您可以应用全局配置来保护您初始化或克隆的所有未来存储库。 您还可以使用 git-secrets 扫描您的存储库(以及所有以前的版本),以在公开之前搜索秘密。
3. 使用 Key Conjurer 创建临时凭据
拥有一点额外的保险来防止意外发布存储的秘密固然很棒,但也许我们可以通过完全不存储凭据来做得更好。 通常,跟踪凭据(包括谁有权访问它们、它们存储在哪里以及上次轮换时间)很麻烦。 但是,以编程方式生成临时凭据可以完全避免许多这些问题,巧妙地避开了在 Git 存储库中存储秘密的问题。 输入 Key Conjurer,它的创建就是为了解决这一需求。 有关 Riot Games 创建 Key Conjurer 的原因以及他们如何开发它的更多信息,请阅读Key conjurer:我们的最小权限策略。
4. 使用 Repokid 自动应用最小权限
任何上过安全 101 课程的人都知道,最小权限是基于角色的访问控制配置的最佳实践。 可悲的是,在学校之外,手动应用最小权限策略变得非常困难。 应用程序的访问需求随时间而变化,开发人员太忙而无法手动减少他们的权限。 Repokid 使用 AWS 提供的关于身份和访问管理 (IAM) 使用情况的数据来自动调整策略大小。 Repokid 帮助即使是最大的组织也能在 AWS 中自动应用最小权限。
工具,而非银弹
这些工具绝不是银弹,但它们只是工具! 因此,在尝试实施任何这些工具或其他控制措施之前,请务必与您组织的其他部门合作,了解您的云服务的使用案例和使用模式。
熟悉所有云和代码存储库服务记录的最佳实践也应认真对待。 以下文章将帮助您做到这一点。
对于 AWS
对于 GitHub
最后但并非最不重要的一点是,请联系您的信息安全团队; 他们应该能够为您提供想法、建议和指导,以帮助您的团队取得成功。 始终记住:安全是每个人的责任,而不仅仅是他们的责任。
1 条评论