近日,Lightspin安全分析师在Amazon ECR(弹性容器注册表)公共库中发现一个严重漏洞,允许攻击者删除任何容器映像或将恶意代码注入其他AWS账户的镜像。
Amazon ECR Public Gallery是容器镜像的公共存储库,用于共享即用型应用程序和流行的Linux发行版,例如Nginx、EKS Distro、Amazon Linux、CloudWatch代理和Datadog代理。
研究者透露,利用该漏洞,攻击者可通过滥用未记录的API操作来修改其他用户的现有公共映像、层、标签、注册表和存储库。
研究人员于2022年11月15日向亚马逊网络安全部门报告了该漏洞,亚马逊在24小时内推出了修复程序。
虽然没有迹象表明这个漏洞在野外被滥用,但威胁行为者本可以将其用于针对许多用户的大规模供应链攻击。
ECR Public Gallery中下载量最高的前六个容器映像的下载量超过130亿次,因此其中的任何恶意注入都可能导致“失控式”感染。
研究者的分析显示,26%的Kubernetes集群至少有一个pod可以从ECR公共库中提取镜像,因此潜在影响面极大。
利用未记录的API操作
研究人员发现,ECR Public Gallery公共库有几个内部API操作,用于支持特定的命令和用户操作,但不会公开。
下面列出的其中四个API操作没有任何触发器,但它们在平台上仍然处于活动状态,因此可以调用。
DeleteImageForConvergentReplicationInternal
DeleteTagForConvergentReplicationInternal
PutImageForConvergentReplicationInternal
PutLayerForConvergentReplicationInternal
分析师成功找到了让恶意API请求获得通过的方法:用Amazon Cognito的临时凭证对ECR内部API进行身份验证。
当然,要使上述方法可行,请求应具有有效的JSON结构,并且由于没有这些API调用的文档,因此推断它需要进行一些实验。
在Lightspin报告提供的概念验证示例中,该请求使用“DeleteImage”API调用以及公开可用的存储库和镜像ID来擦除研究人员上传的公开镜像。
研究人员将漏洞利用步骤编写到Python脚本中,可以自动滥用未记录的API来攻击公共镜像。
亚马逊的回应
亚马逊告诉BleepingComputer,他们立即修复了Lightspin发现的问题,内部调查没有发现恶意行为者利用的迹象。
根据日志分析,亚马逊表示确信没有客户帐户或其他资产受到损害。
亚马逊的完整声明如下:
2022年11月14日,一位安全研究人员报告了Amazon Elastic容器注册表(ECR)公共库中的问题,这是一个用于查找和共享公共容器镜像的公共网站。研究人员确定了一个ECR API操作,如果调用该操作,则可以修改或删除ECR公共库上可用的镜像。
截至2022年11月15日,亚马逊已修复该问题。我们对所有日志进行了详尽的分析。我们相信我们的审查是决定性的,与这个问题相关的唯一活动是研究人员拥有的账户,没有其他客户的帐户受到影响,也不需要客户执行任何操作。我们要感谢Lightspin报告此问题。