基础架构即代码的五大安全风险 – thenewstack


越来越多地采用基础架构即代码(IaC)技术来提供快速配置和部署云环境的功能。IaC技术的示例包括Terraform,AWS云形成模板,Azure资源管理器模板,Chef,Puppet,Red Hat Ansible,Helm Charts,Kubernetes YML文件和OpenFaaS YML。
IaC的力量带来了管理安全风险的责任,如果不遵循最佳实践,可以引入这种风险。不安全的IaC导致不安全的云环境,最终可能导致云中的合规性违规和数据泄露。根据最新的Verizon数据泄露调查报告,云配置错误是事件和破坏的主要原因之一。
那么,由于IaC使用不安全会带来哪些主要的安全风险?在这篇文章中,我们将看看前五名,其余的将在后续文章中跟进。

1.网络暴露
不安全的IaC配置会扩大攻击面,从而可以进行侦察,枚举,有时甚至可以将网络攻击传递到云环境。配置开放式安全组,可公共访问的云存储服务,公共ssh访问以及可从Internet访问的数据库是常见的IaC错误配置示例,它们会增加云中的攻击面。
对IaC进行静态安全分析,并在云部署生命周期的早期消除风险。及早发现并解决这些问题具有很高的成本效益,并减少了残留风险。

2.漏洞
如今,IaC模板通过包含存储在受信任注册表中的基本镜像来用于提供计算实例和容器化实例。这为早期检测和解决此类基础映像中的任何已知漏洞提供了机会,并大大降低了补救成本。
对IaC文件中引用的镜像执行漏洞评估,并在开发生命周期的早期检测漏洞。

3.未经授权的特权升级
IaC已用于提供可能包括Kubernetes,容器和微服务的全栈云环境。开发人员经常使用特权帐户来供应云应用程序和其他层,这会带来特权升级的风险。如果将这种风险与硬编码的机密和网络暴露结合在一起,则攻击者将面临严重的违规路径。
确保在IaC中实施了最低特权原则,并在IaC中检测特权爬升。

4.配置漂移
尽管开发人员可能会遵循IaC最佳做法,但紧急情况可能会迫使运营团队直接在生产环境中进行配置更改。这种行为打破了云基础架构的不变性,这种前提是基于这样的前提,即在部署基础架构后永远不要对其进行修改。如果需要以任何方式更新,修复或修改某些内容,则必须通过代码来提供新的基础结构。更重要的是,配置更改可能会带来风险,从而导致云的状态从提供基础架构之前通过IaC定义的安全状态偏离。
通过监视预配置的云基础架构和IaC之间的状态漂移来保持基础架构的不变性,并减轻引入风险的变更。

5.幽灵资源
标记云资产是确保合规性和治理的关键要求。使用IaC构建的未标记资源会导致幻影资源,这些幻影资源可能会导致在实际云环境中检测,可视化和获得可观察性方面遇到挑战。结果是长期无法察觉的云态漂移,以及补救风险方面的挑战。除了安全后果外,未加标签的资源还使得很难检测对成本,维护和可靠性等操作的影响。