在 xz 的上游 tarball 中发现了恶意代码,从版本 5.6.0 开始。通过一系列复杂的混淆,liblzma 的构建过程从一个伪装成测试文件(存在于源代码中)的文件中提取出一个预构建对象文件,然后利用它修改 liblzma 代码中的特定函数。
这导致了一个被修改的 liblzma 库,任何链接到该库的软件都可以使用它,拦截并修改与该库的数据交互。本仓库包含两个快速脚本,用于检查你的 Kubernetes Pods 和 Docker 容器是否受该存在漏洞的最新版本 liblzma5(5.6.0 或 5.6.1)影响。
致谢:https://www.openwall.com/lists/oss-security/2024/03/29/4 提供了我作为基础的检测脚本。
更多详情请查看:
https://nvd.nist.gov/vuln/detail/CVE-2024-3094
https://gist.github.com/thesamesam/223949d5a074ebc3dce9ee78baad9e27
https://www.theregister.com/2024/03/29/malicious_backdoor_xz/
https://sysdig.com/blog/cve-2024-3094-detecting-the-sshd-backdoor-in-xz-utils/
如果你在寻找一个实际存在漏洞的容器进行测试:
https://hub.docker.com/layers/library/debian/experimental-20240311/images/sha256-81992d9d8eb99b5cde98ba557a38a171e047b222a767dc7ec0ffe0a194b1c469?context=explore
使用 Trivy 创建 SBOM:
trivy image --format cyclonedx --output result.json debian:experimental-20240311@sha256:16cc2b09c44d991d36f63153f13a7c98fb7da6bd2ba9d7cc0f48baacb7484970
检查 liblzma5:
cat result.json | grep liblzma5 "bom-ref": "pkg:deb/debian/[email protected]?arch=amd64&distro=debian-trixie%2Fsid", "name": "liblzma5", "purl": "pkg:deb/debian/[email protected]?arch=amd64&distro=debian-trixie%2Fsid", "value": "[email protected]" "pkg:deb/debian/[email protected]?arch=amd64&distro=debian-trixie%2Fsid", "pkg:deb/debian/[email protected]?arch=amd64&distro=debian-trixie%2Fsid", "ref": "pkg:deb/debian/[email protected]?arch=amd64&distro=debian-trixie%2Fsid", "pkg:deb/debian/[email protected]?arch=amd64&distro=debian-trixie%2Fsid", sha256:16cc2b09c44d991d36f63153f13a7c98fb7da6bd2ba9d7cc0f48baacb7484970
使用手动脚本检查容器漏洞虽然能提供信息,但并非最优选择,并且缺乏像 Falco 这样全面的云原生应用保护平台(CNAPP)所具备的可扩展性、全面性和实时监控能力。
CNAPP 提供自动化、持续的安全评估和策略执行,覆盖整个云原生栈,从而在最小的人工干预下实现更强健的安全态势管理。