原文中文,约3000字,阅读约需8分钟。
📝
内容提要
本文介绍了密码管理的最佳实践,包括源代码保密、安全存储密码、限制泄露、避免提交、管理部署和执行政策。使用外部密码管理系统、加密密码、限制 API 访问和权限、撤销机密和清理历史记录等方法可以保护密码安全。介绍了 VCS 扫描工具、VCS 钩子、配置管理系统等工具和技术。
🎯
关键要点
-
硬编码凭证被认为是最危险的软件弱点之一,GitHub上有超过600万个公开密码。
-
研究确定了24种管理密码的最佳实践,包括使用本地环境变量和外部密码管理服务。
-
使用模板配置文件可以减少将密码签入版本控制系统的机会。
-
所有数据库应包含.gitignore文件以避免提交敏感文件。
-
服务端实现可以消除在客户端应用程序中保存密码的必要性。
-
外部密码管理系统可以最大限度地减少人工参与,提供动态密码和基于租约的管理。
-
加密密码的实施不需要额外基础设施,但需安全管理加密密钥。
-
私有数据库的密码可能因克隆而传播,需谨慎管理。
-
使用临时密码可以防止未被发现的数据泄露成为威胁。
-
限制API访问和权限可以减少攻击者的横向移动。
-
撤销机密并清理版本控制系统历史记录是必要的安全措施。
-
建议使用VCS扫描工具而非依赖代码审查来检测密码。
-
在VCS中显式添加文件,避免使用通配符命令。
-
使用VCS钩子检查文件可以防止密码被推送到数据库。
-
在CI/CD中使用密码变量,避免硬编码密码。
-
配置管理系统可以协调不同机器的配置并分发密码。
-
为每个环境使用不同的密码,以降低风险。
-
将点文件保存在根目录之外,以避免密码泄露。
-
组织应实施政策以最大限度地减少密码泄露的风险。
🏷️