尽管 IaC 有很多优势,但配置不当的 IaC 也会在整个系统中迅速传播错误配置。IaC 的自动化配置能够提高效率,也可以放大错误,而这些错误通常会对安全产生不利影响。坚持 IaC 最佳实践是降低成功供应链网络攻击和漏洞风险的有效方法,考虑以下8个 IaC 最佳实践,为企业安全保驾护航。
扫描 IaC 代码,排查错误配置
IaC 是一个功能强大的工具,但同时也存在一定安全风险,例如在整个云基础设施中传播小的配置错误。错误配置可能的形式有:不安全的默认配置,可公开访问的 S3 buckets 或未加密的数据库。
SAST 和 SCA 扫描是特征代码的最佳方式,然而很少有企业优先考虑用此类方式保护 IaC。对 IaC 代码进行安全扫描可以有效减少由于配置错误导致的暴露和漏洞。此外,可以通过扫描新的 commit 以查找对云部署的更改,来检测和更正与其原始模板匹配的基础结构。
将自动化 IaC 安全扫描嵌入开发工作流程
识别并纠正环境偏移
环境偏移可能是由粗心的错误引起的,而由此造成的问题修复难度高并且可能导致业务宕机,造成巨大损失。通过将 IaC 与实际生产配置进行比较来识别偏移,但手动完成此操作既繁琐又耗时。因此,偏移检测是 IaC 安全扫描工具的不错选择。
防止硬编码密钥渗透到 IaC 中
减少代码泄漏的时间和影响
建立协议以避免代码泄漏,同时制定应急计划,以防发生泄漏。应调查潜在的可疑用户活动,例如使用 IaC 下载、克隆或分叉存储库。强制实施最小特权策略有助于减少代码泄漏风险。此外执行定期检查,防止源代码继续发布到公共存储库或代码共享站点,并确保快速处理任何源代码泄漏。公开专有 IaC 代码的时间越长,恶意攻击者就越有可能借此进行发起攻击。因此,设置警报机制,能够尽可能降低代码泄漏发生的风险。
建立一致的工具管理机制标准
实现策略的一致实施是 IaC的最佳做法之一。Google 的 SLSA 框架(Supply chain Levels for Software Artifacts) 包含有关确保源代码完整性的具体指南,此指南旨在减少代码篡改的机会,并防止恶意活动被忽视。这些要求旨在使对 IaC 的更改可跟踪和审查。建立一致的管理标准,要求软件供应链中的每个系统都是安全的,用户无法在没有额外监督的情况下更改系统。
防止 IaC 代码篡改
关键代码监控是降低 IaC 篡改风险的另一个途径。从本质上讲,关键代码监控是在每次发生更改时的发出警报,对于特征代码,必须谨慎使用关键代码监控。但 IaC 代码是为应用程序初始化和部署的基础结构的模板,因此使用关键代码监控再合适不过。因为基础架构通常不会更改,但发生更改时应具有高可见性,以确保更改不是恶意的。
全面了解安全环境
繁冗复杂的环境是保障安全的最大阻碍。全面了解安全环境非常重要,因为这能有效减少修复安全问题所需的响应时间。通过改善安全环境,保障开发安全,避免代码泄漏或代码被篡改。此外,可以通过多个事件和工具的环境更有效地确定修复的优先级。这种方法可以产生深度防御,从而降低产生漏洞的风险以及在漏洞对企业和组织产生的影响。
参考链接:
Supply chain Levels for Software Artifacts
https://github.com/slsa-framework/slsa