基础设施即代码模板是许多云计算基础设施弱点的根源
一份新的调查报告表明,在云计算部署中,基础设施即代码(IaC)模板配置错误的比例很高,这使它们容易受到攻击。
在云计算时代,需要快速扩展或部署基础设施以满足不断变化的组织需求,新服务器和节点的配置是完全自动化的。这是使用机器可读的定义文件或模板完成的,这是基础设施即代码(IaC)或连续配置自动化(CCA)的过程的一部分。
Palo Alto Networks公司的研究人员对从GitHub存储库和其他地方收集的基础设施即代码(IaC)模板进行了一项新的分析,确定了近20万个包含不安全配置选项的此类文件。使用这些模板可能会导致严重的漏洞,从而使基础设施即代码(IaC)部署的云计算基础设施及其保存的数据面临风险。
研究人员说:“就像人们忘记锁车或打开窗户一样,网络攻击者可以使用这些错误的配置来避开防御措施。如此高的数字解释了在以往的调查报告中发现65%的云计算安全事件是由于客户配置错误引起的。从一开始就没有安全的基础设施即代码(IaC)模板,云计算环境就容易受到攻击。”
广泛的IaC问题
基础设施即代码(IaC)的框架和技术有多种,最常见的基于Palo Alto公司的收集工作是Kubernetes YAML(39%)、HashiCorp的Terraform(37%)和AWS CloudFormation(24%)。其中,42%的已识别CloudFormation模板、22%的Terraform模板和9%的Kubernetes YAML配置文件存在漏洞。
Palo Alto Networks公司的分析表明,使用AWS CloudFormation模板的基础设施部署中有一半的配置是不安全的。调查报告进一步按受到影响的AWS公司的云计算服务的类型进行了分类:Amazon弹性计算云(Amazon EC2)、Amazon关系数据库服务(RDS)、Amazon简单存储服务(Amazon S3)或Amazon弹性容器服务(Amazon ECS)。
例如,模板中定义的S3存储桶的10%以上是公开的。过去,安全性不高的S3存储桶是许多调查报告中的数据泄露的根源。
缺少数据库加密和日志记录对于保护数据和调查潜在的未经授权的访问非常重要,这也是CloudFormation模板中常见的问题。其中一半不启用S3日志记录,另一半不启用S3服务器端加密。
亚马逊公司的Redshift数据仓库服务也观察到了类似情况。11%的配置文件生成了公开的Redshift实例,43%的用户未启用加密,45%的用户未打开日志记录。
支持多种云计算提供商和技术的Terraform模板并没有表现得更好。默认情况下,大约有66%的Terraform配置的S3存储桶未启用日志记录,26%的AWS EC2实例已将SSH(端口22)对外公开,并且有17%的模板定义的AWS安全组默认允许所有入站流量。
Terraform模板中发现的其他常见错误配置包括:
- AWS身份和访问管理(IAM)密码不符合行业最低标准(40%);
- 没有CPU或内存资源限制的容器(64%);
- 具有公开的SSH的Azure网络安全组(NSG)(51%);
- 未启用日志记录的谷歌云平台存储(58%);
- 未启用安全传输的Azure存储(97%)。
Kubernetes YAML文件中不安全配置的发生率最小,但确实如此。在发现的不安全的YAML文件中,有26%的Kubernetes配置以root用户或特权帐户运行。
Palo Alto Networks公司研究人员说:“以容器为根目标的配置为网络攻击者提供了拥有该容器几乎所有方面的机会。这也使执行攻击容器的过程更加容易,从而使主机系统面临其他潜在威胁。安全和DevOps团队应确保容器不使用root用户或特权帐户运行。”
IaC配置错误反映在实际部署中
基础设施即代码(IaC)模板配置错误的类型及其普遍性(缺少数据库加密和日志记录或公开暴露的服务)与Palo Alto Networks公司在过去的调查报告中涵盖并在实际的云计算基础设施部署中检测到的问题类型一致:
- 76%的组织允许公共访问端口22(SSH);
- 69%的组织允许公共访问端口3389(RDP);
- 64%的人员无法为其数据存储启用日志记录;
- 62%的用户未对数据存储启用加密;
- 47%的组织未将跟踪功能用于无服务器功能。
这表明在自动化基础设施部署过程中使用基础设施即代码(IaC)模板而不首先检查它们是否存在不安全的配置或其他漏洞,这是导致在观察到云计算弱点的一个重要因素。