Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
kubernetes-log4j-cve-2021-44228-node-agent — Kubernetes DaemonSet,用于对 JVM 进行热修补,以缓解 Log4j2 漏洞(CVE-2021-44228、CVE-2021-45046),通过禁用 JNDI 查找提供临时保护,直至依赖项更新完毕。 | Kitploit
工具/GitHubGitHub/aws-samples/kubernetes-log4j-cve-2021-44228-node-agent
漏洞扫描器容器安全漏洞分析云安全DevSecOps事件响应Archived
GitHubaws-samples/kubernetes-log4j-cve-2021-44228-node-agent

kubernetes-log4j-cve-2021-44228-node-agent

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →

Kubernetes DaemonSet,用于对 JVM 进行热修补,以缓解 Log4j2 漏洞(CVE-2021-44228、CVE-2021-45046),通过禁用 JNDI 查找提供临时保护,直至依赖项更新完毕。

查看仓库
216264年前尚未审核
分享

!!!! 弃用通知 !!!!

该项目将按如下所述逐步弃用。

  • 2023-01-01 - 此仓库将不再更新
  • 2023-04-01 - 此仓库将被永久弃用

自2023-01-01起,该项目将不再接受问题反馈,也不会再更新。此后,该项目将不再受支持,不会生成新的版本或相关工件。

项目仓库将于2023-04-01永久归档(设为只读)。

正如原始项目文档中指出的,这始终只是一个临时措施,旨在帮助Kubernetes用户,并且它只提供了针对Log4j2 CVE-2021-44228和CVE-2021-45046安全风险的缓解方案。强烈建议所有Log4j用户更新到已修补版本的项目,以完全消除与这些CVE相关的任何风险。

如果我还想使用这个呢?

最新版本的相关发布工件将永久保留,供继续将其部署到Kubernetes环境中的项目消费者使用。具体来说,DaemonSet清单和ECR Public容器镜像将在弃用后继续可用,但不再受支持或更新。

Apache Log4j2 CVE-2021-44228 节点代理

AWS开发了一个RPM,它执行JVM级别的热补丁,禁用Log4j2库中的JNDI查找,以缓解Log4j2 CVE-2021-44228和CVE-2021-45046。

Apache Log4j2 CVE-2021-44228节点代理是一个由AWS Kubernetes团队构建的开源项目。它旨在以DaemonSet方式运行,减轻Log4j2 CVE-2021-44228的影响,该漏洞影响运行Apache Log4j2版本<2.15.0且处理来自不可信源输入的应用。运行此DaemonSet将修补容器内以及主机上运行的JVM。

它的作用: 在每个工作节点上安装一个cron条目,该条目运行一个进程,查找正在运行的JVM并注入一个代理来缓解Log4j2 CVE。所有JVM,包括容器中运行的JVM,都将以这种方式进行热补丁。目前,热补丁进程配置为每30分钟运行一次,并带有15分钟的抖动。有效窗口范围在15到45分钟之间。

注意: 你可以在AWS安全公告中找到关于Log4j2漏洞和AWS响应的更多信息。

注意: 在2022年4月20日,镜像(v0.0.16)已更新了针对Amazon Linux 1和2的最新补丁。如果您之前安装了此DaemonSet的旧版本并且它仍在运行,您应该重新应用daemonset.yaml文件以安装最新的RPM。如果您不再需要log4j补丁,您应该删除DaemonSet并卸载RPM,因为旧版本的RPM(<1.1-16)存在一个漏洞,可能允许攻击者从容器中逃逸并获取底层主机的访问权限。

注意: 版本1.3-5解决了ALAS2-2022-1806和ALAS-2022-1601。有关更多信息,请参见Amazon Linux "log4j hotpatch" <1.3-5 local privilege escalation to root。

安装说明

  1. 应用清单:
kubectl apply -f https://raw.githubusercontent.com/aws-samples/kubernetes-log4j-cve-2021-44228-node-agent/main/daemonset.yaml
  1. 检查一个或多个DaemonSet Pod的日志。

抽查单个Pod:

kubectl get pods -l job=node-patch-installer -n node-configuration-daemonset
kubectl logs <pod-name> -c node-patch-installer -n node-configuration-daemonset

或获取每个节点的确认:

kubectl logs -l job=node-patch-installer -c node-patch-installer -n node-configuration-daemonset | grep 'installed'

如果安装成功,日志文件的最后一行将显示installed and verified,否则会记录错误。

注意事项

  • 该项目旨在作为一个临时的、尽力而为的缓解措施,直到您能够将所有基于Java的Kubernetes应用程序中的Log4j2依赖更新到至少Log4j版本2.15.0。不要依赖此代理作为长期缓解方案。当无法立即更新依赖时,该工具可能有助于缓解风险。
  • DaemonSet支持Amazon Linux (AL)、Amazon Linux 2 (AL2)和Debian Linux发行版(如Ubuntu)。不支持Bottlerocket,因为它不包含shell或包管理器。如果您在Bottlerocket上运行log4j,该CVE将由Hotdog解决。
  • 由于DaemonSet不在AWS Fargate上运行,因此此代理不会修补在Amazon EKS集群的Fargate上运行的任何Pod。
  • 默认运行频率为30分钟,因此该代理更适合长时间运行的容器。
  • RPM仅适用于以下Java发行版:
    • Credo
    • Corretto
    • OpenJDK
  • 如果您的工作节点处于没有互联网连接的沙箱环境中,您可以从ECR拉取镜像并推送到私有仓库。或者,您可以修改镜像目录中的makefile来构建并推送生成的镜像到您的私有仓库。编辑daemonset.yaml文件中的DaemonSet spec.template.spec.initContainers.image,将其指向新的URI:tag,然后将清单应用到您的集群。

关于 CVE-2021-44228

Apache Log4j2 < 2.15.0版本中用于配置、日志消息和参数的JNDI功能未对攻击者控制的LDAP和其他JNDI相关端点提供保护。当启用消息查找替换时,能够控制日志消息或日志消息参数的攻击者可以从LDAP服务器执行任意代码。从Log4j2版本<2.15.0开始,此行为默认已禁用。完整详情请参见CVE公告。

您可以在AWS安全公告中找到关于Log4j2漏洞的更多信息。

工作原理

AWS开发了一个RPM,执行JVM级别的热补丁,禁用Log4j2库中的JNDI查找,从而缓解适用于主机上JVM以及容器中运行JVM的Log4j2问题。该项目将该RPM打包为Kubernetes DaemonSet。

安装后,在每个工作节点上会运行一个进程,查找正在运行的JVM,并向JVM注入一个代理以缓解Log4j2漏洞。该代理尝试修补所有已加载的org.apache.logging.log4j.core.lookup.JndiLookup实例的lookup()方法,使其无条件返回字符串Patched JndiLookup::lookup()。这旨在无需重新启动Java进程即可解决Log4j2中的CVE-2021-44228远程代码执行漏洞。

默认情况下,该进程配置为每30分钟运行一次,将为尚未使用更新Log4j2依赖进行修补的应用程序提供一层保护。

您可以在AWS开源博客中找到有关热补丁的更多详细信息。

容器镜像托管在aws-containers ECR Public仓库中。

下载工具