文章摘要
XZ Utils后门事件自去年3月被发现以来,仍对Docker镜像构成持续威胁。该后门由开发者“Jia Tan”通过长期贡献植入,主要影响liblzma.so库,并通过OpenSSH服务器触发,旨在通过一系列复杂的钩子技术实现恶意功能。尽管已有详细分析,该后门仍未被完全清除,继续对网络安全构成风险。
文章总结
标题:持续风险:XZ Utils后门仍潜伏在Docker镜像中
去年三月底,网络安全界因发现XZ Utils后门而震动。开发者“Jia Tan”通过两年的大量贡献在项目中建立了信誉,随后在xz-utils包中植入了复杂的后门。这一发现促使包括Binarly REsearch团队在内的网络安全专家紧急逆向工程该后门,以了解其范围和潜在影响。
该后门嵌入在OpenSSH服务器使用的liblzma.so库中,当客户端与受感染的SSH服务器交互时触发。恶意代码的最终目标是在sshd进程中安装三个钩子,针对RSA_public_decrypt、RSA_get0_key和EVP_PKEY_set1_RSA函数,从而启用后门功能。这一过程通过修改liblzma.so库中的lzma_crc32和lzma_crc64的IFUNC解析器实现。Binarly随后发布了XZ.fail,一个基于静态分析的工具,用于检测可疑的IFUNC解析器,几乎零误报。
在本文中,我们分享了XZ Utils事件的新发现:在受感染期间构建的多个Docker镜像仍包含该后门。尽管这看似不令人惊讶,因为如果发行版包被植入后门,基于它们的Docker镜像也会被感染,但令人担忧的是,这些受感染的镜像仍在Docker Hub上公开可用,甚至其他镜像基于这些受感染的基础镜像构建,导致它们也被间接感染。
我们共识别出超过35个包含后门的镜像。虽然数量看似不多,但我们仅扫描了DockerHub上发布的一小部分镜像,且仅关注了Debian镜像,因为它们保留了Docker Hub上的历史数据。对于受XZ Utils后门影响的Fedora、OpenSUSE和其他发行版的Docker镜像的影响目前尚不清楚。
在Binarly,我们不断优化工具以应对不断演变的威胁,提供精确、可操作的见解。最近,我们收集了近15TB的Docker镜像数据集,成功增强了我们的秘密发现能力。在此过程中,我们发现Docker Hub上仍有12个Debian Docker镜像包含xz-utils后门,距离后门公开发现已超过一年。
我们还发现,基于这些受感染的Debian镜像构建的其他镜像也可能被感染。尽管Docker API不提供反向索引来映射镜像到所有使用它的基础镜像,我们构建了一个脚本来检查Docker Hub仓库中的所有镜像是否基于受感染的Debian镜像。由于Docker Hub包含近1200万个仓库,扫描整个仓库是不可行的,因此我们手动创建了一个可能使用Debian基础镜像的仓库列表。
我们的发现表明,即使短暂的恶意代码也可能在官方容器镜像中长时间未被发现,并在Docker生态系统中传播。这一延迟强调了这些工件可能通过CI管道和容器生态系统默默存在和传播,强调了持续二进制级别监控的迫切需要,而不仅仅是简单的版本跟踪。
Binarly已通知Debian维护者并要求删除受感染的镜像,但这些镜像仍然存在。尽管用户应依赖最新的镜像,但公开可用的包含潜在网络可访问后门的Docker镜像仍构成重大安全风险。
Binarly透明度平台旨在帮助安全研究人员、产品安全团队和组织有效检测和修复威胁。从第一天起,BTP客户就可以访问我们研究团队开发的精确分析,用于检测基于IFUNC的钩子,这是XZ后门使用的相同技术。我们最近在Black Hat USA上展示了YARA规则的集成,包括一个新的规则游乐场,帮助平台用户开发YARA规则。组织可以在几分钟内使用YARA规则扫描其整个软件组合,无论是内部开发还是来自更广泛的安全社区。
总之,xz-utils后门事件表明,即使是短暂的恶意代码也可能在官方容器镜像中长时间未被发现,并在Docker生态系统中传播。这一延迟强调了这些工件可能通过CI管道和容器生态系统默默存在和传播,强调了持续二进制级别监控的迫切需要,而不仅仅是简单的版本跟踪。
评论总结
主要观点总结:
建议迁移到lzip
- 评论1提出开发者应考虑从xz迁移到lzip,认为lzip是LZMA容器的改进版本。
- 引用:"Devs should consider migrating from xz to lzip, which is an improved LZMA container in multiple ways."
Debian与Docker镜像的区别
- 评论2指出问题并未报告给Debian维护者,因为Debian早已修复,问题主要存在于Docker镜像中。
- 引用:"In DEBIAN this was fixed long ago. The problem persists and was reported to people that work with Docker images."
Docker镜像的安全性问题
- 评论4和评论8强调Docker镜像普遍存在安全问题,甚至认为Docker本身是安全隐患。
- 引用:"Most Docker images have zero security anyway."
- 引用:"Docker is a security hazard, and anything it touches is toxic."
标题的夸大性
- 评论5和评论9认为标题过于夸张,指出XZ后门并未影响Debian稳定版,且旧版Docker镜像中存在漏洞是常态。
- 引用:"This headline is so egregiously sensationalist."
- 引用:"Container images are literally immutable packaged filesystems so old versions of affected packages are in old Docker images for every CVE ever patched in Debian."
使用未维护镜像的风险
- 评论7批评使用未维护的社区镜像,认为这是导致安全问题的根源。
- 引用:"This is one the many problems with using 'community provided', un-curated, other people's pre-baked 'golden master', old garbage."
漏洞触发条件的质疑
- 评论3质疑后门在容器中的实际触发条件,认为需要运行OpenSSH才可能触发,而这并不常见。
- 引用:"Wouldn’t you need to run OpenSSH in the container? It’s not unheard of, but it’s atypical."
总结:
评论主要围绕XZ后门事件展开,涉及对Docker镜像安全性的广泛批评、对标题夸大性的质疑以及对使用未维护镜像的风险的讨论。部分评论建议迁移到更安全的压缩工具,而另一些评论则强调Docker本身的安全隐患。整体上,评论者对事件的实际影响和报道方式存在分歧。