降低密码泄露的三个步骤


以下是您的组织应采取的三个基本步骤来降低开发机密泄漏的风险,以及防止未来密码泄漏发生的最佳实践。

1. 实现对密码的态势感知
态势感知意味着发现您的应用程序代码中隐藏了哪些密码,理解它们的用途,并掌握谁或什么有权使用这些密码。 

密码探测发现工具很常见。GitHub、CircleCI 和其他供应商提供免费工具来扫描公共和私有存储库,您可以找到一系列工具来搜索隐藏的身份验证令牌、环境变量、签名密钥等。不幸的是,密码扫描工具通常“嘈杂”。他们 发现了许多泄露的凭据,其中一些是占位符或诱饵,对网络对手没有任何优势。 

这些误报包括用于测试在线服务或应用程序编程接口 (API) 的常见分布式密钥、用于访问网络服务的占位符凭证,以及所谓的“金丝雀”或“蜜罐”令牌,这些令牌被故意放置在代码中并受到监控以提醒安全团队恶意活动。然而,从在野外部署的金丝雀代币的观察中收集的数据也表明,对于不小心将密码发布到公共存储库的组织的响应宽限期可以以分钟甚至秒为单位来衡量——因此速度至关重要。 

组织需要投资于可以滤除噪音并允许员工将已泄露的活动令牌和机密实例归零的工具。根据他们提供的访问级别对泄露的凭据进行优先级排序是关键。 

2.轮换暴露的密码
在机密泄露的情况下,开发团队必须与安全事件响应团队合作,以快速了解泄露的严重程度。

您应该假设已发现任何暴露的密码,包括身份验证凭据、API 令牌和加密密钥,并立即暂停并重新发布它们。至少应更新硬编码凭据以拒绝对手访问。从中期来看,您应该将这些凭据完全从您的代码中移除。 

确定哪些密码已被发现和利用以及它们提供的访问级别是另一回事。这需要将凭据映射回 IT 资产和数据,并仔细检查访问管理系统维护的日志以发现泄露凭据的使用情况。最后,组织需要将涉及公开密码的任何活动与来源联系起来,以确定它是授权的、可疑的还是恶意的。

您需要查看凭据是否被远程或不受信任的来源发现和使用。

3.管理你的密码
无论开发密码的暴露是在审计过程中发现的,还是在应对泄密事件时发现的,你的组织最终都需要跨越密码管理的态势感知和危机阶段。然后,你的重点应该转向以负责任的方式管理未来的开发密码。

以下是每个组织应该采取的保护功能的秘密最佳做法。

  • 停止硬编码密码
  • 促进开发人员的最佳实践——并监控合规性:现代 DevOps 组织内部的分工让不同的人负责管理 GIT 操作和监督构建。同样,管理机密可能需要专门负责该职责的人。无论如何,将其留给各个开发人员来跟踪和管理他们自己的代码秘密的日子已经结束了。 
  • 改造您设计应用程序的方式:让开发人员在不直接在代码中公开用户凭据的情况下对用户进行身份验证。 
  • 建立端到端的安全性