AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1380427
Accepted
minisaurus
minisaurus
Asked: 2021-12-12 02:21:04 +0800 CST2021-12-12 02:21:04 +0800 CST 2021-12-12 02:21:04 +0800 CST

我的 Ubuntu 18.04.6 上有 log4j 吗?

  • 772

我显然很担心这个漏洞,但我想知道我的机器上是否有这个库?

这台机器是一个运行几个node expressjs框架的网络服务器nginx,外加一个geoserver

sudo apt update && sudo apt upgrade我今天用:修补了机器ubuntu-advantage-tools,openssl并libssl1.1进行了升级。

我的java版本是: openjdk version "1.8.0_292" OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~18.04-b10) OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)

这geoserver是 v2.13.0,我相信它是唯一可能使用 log4j 的程序。我的地理服务器是独立于平台的二进制版本(不是 Tomcat 版本),jetty我认为它用作它的网络服务器。

我怎样才能知道我是否拥有 log4j 以及什么版本?

java
  • 4 4 个回答
  • 12951 Views

4 个回答

  • Voted
  1. eyal_katz
    2021-12-12T21:46:54+08:002021-12-12T21:46:54+08:00

    您可以检查它是否安装在apt中:

    apt list --installed | grep -i log4j
    

    但是您仍然必须检查它以查找可能在某处运行的可能文件:

    locate log4j
    

    此外,最好检查您是否在服务器上运行 java 运行时:

    java -version
    

    如果您甚至没有运行 java 运行时,log4j 可能与此服务器无关,因为它是一个 java 库。

    可能还有其他地方可以检查。

    • 6
  2. Best Answer
    Jackson Pfeffer
    2021-12-18T02:10:28+08:002021-12-18T02:10:28+08:00

    更新:2021-12-18...

    请记住始终从下面列出的资源中查看最新信息

    CVE-2021-45105 ... 2.16.0 和 2.12.2 不再是有效的补救措施!当前的修复版本是 2.17.0 (Java 8) 和 2.12.3 (Java 7)。所有其他 Java 版本都必须采取权宜之计(从 log4j-core JAR 中删除/删除 JndiLookup.class 文件。
    我已相应地更新了下面的消息。


    直接回答问题:
    转到Reddit 线程:log4j_0day_being_exploited 和ctrl+ ffor .class and .jar recursive hunter。在那里运行程序,如果发现任何问题,请修复。

    然后去同一个网站和ctrl+f为Vendor Advisories. 搜索这些列表以查看您是否正在运行任何受影响的软件。如果您是并且有可用的更新,请更新。

    • 更多资源
      • https://www.reddit.com/r/blueteamsec/comments/rd38z9/log4j_0day_being_exploited/
        • 这个有大量有用的信息,包括检测器、更多资源链接、非常容易理解的修复步骤等等
      • https://www.cisa.gov/uscert/apache-log4j-vulnerability-guidance
      • https://github.com/cisagov/log4j-affected-db
      • https://logging.apache.org/log4j/2.x/security.html

    补救措施:
    CVE-2021-45046 ... CVE-2021-44228 ... CVE-2021-45105
    虽然大多数需要知道的人可能已经足够了解他们需要做的事情,但我想我还是会把这个如果...

    • 遵循这些资源中的指导......它可能会改变,但是

    截至 2021 年 12 月 18 日

    基本上是

    • 如果可能,删除 log4j-core JAR 文件
      • 从两台正在运行的机器上立即修复和
      • 在您的源代码/源代码管理文件中,以防止将来的构建/发布/部署覆盖更改
    • 如果这是不可能的(由于依赖),请升级它们
      • 如果您运行的是 Java 8,那么您可以升级到 log4j 2.17.0+
      • 如果您运行的是 Java 7,那么您可以升级到 log4j 2.12.3
      • 如果您运行的是旧版本的 Java,则需要升级到最新版本的 Java,然后使用最新版本的 Log4J
      • 同样,这些更改必须同时发生在正在运行的机器和代码中
    • 如果由于某种原因这些都不可能……那么从 log4j-core JAR 中删除 JndiLookup.class 文件是非补救性的。
      • zip默认情况下,使用大多数 Linux 发行版附带 的命令,在 Linux 上有一个止损选项的单线。
        • zip -q -d "$LOG4J_JAR_PATH" org/apache/logging/log4j/core/lookup/JndiLookup.class
      • 在撰写本文时,Windows 上的权宜之计选项的大多数在线指南都说要执行以下操作(再次...假设您无法执行上述删除 JAR 或升级选项之一):
        • 安装类似 7-zip 的东西
        • 找到所有 log4j-core JAR 文件,并为每个文件执行以下操作...
        • 重命名 JAR 以将扩展名更改为.zip
        • 使用 7-zip 解压 JAR(现在有.zip扩展名)
        • 从解压缩的文件夹中找到并删除 JndiLookup.class 文件
          • 路径是\\path\\to\\unzippedFolder\\org\\apache\\logging\\log4j\\core\\lookup\\JndiLookup.class
        • 删除旧的 JAR 文件(现在扩展名为 .zip)
        • 使用 7-zip 重新压缩文件夹
        • 重命名新的 .zip 文件夹以将扩展名更改为.jar
      • 还有一些使用 Power Shell 的选项
        • Reddit 线程:log4j_0day_being_exploited
        • ctrl+f代表“PowerShell”

    如果您只有 1 或 2 个 JAR 文件要处理并且您不介意安装 7-zip 或者您有 PowerShell 可用,这很好。但是,如果您有很多 JAR 文件,或者您不想安装 7-zip 并且无权访问 Power Shell,我创建了一个开源 VBS 脚本,无需安装即可为您完成任何附加软件。https://github.com/CrazyKidJack/Windowslog4jClassRemover

    阅读自述文件和发行说明https://github.com/CrazyKidJack/Windowslog4jClassRemover/releases/latest

    • 2
  3. evoelise
    2021-12-20T02:10:38+08:002021-12-20T02:10:38+08:00

    请注意,只有 log4j v2 存在此漏洞。较旧的 log4j v1 不受此漏洞的影响。

    重要的是,您不会在您的 apt 列表中找到它(如已接受的答案中所述),因为它通常不会作为独立的应用程序或服务安装。log4j 是一个应用程序使用的 java 日志库,因此它将与另一个 (Java) 应用程序一起安装。

    您需要在磁盘上的任何位置搜索名为 log4jv2*.jar 的文件以确定。locate如果安装 else 会这样做sudo find / -iname log4j2*.jar。

    请注意,某些应用程序还会重命名 log4j2 JAR 文件。

    另请注意,截至今天(2021 年 12 月 19 日),Log4J v2 发现了一个进一步的漏洞,该漏洞可能允许远程拒绝服务,并且修补到 v2.16 的每个人现在都应该修补到 v2.17。

    https://logging.apache.org/log4j/2.x/security.html#CVE-2021-45105

    • 0
  4. Jeremiy Siror
    2022-09-05T00:59:27+08:002022-09-05T00:59:27+08:00

    你可以搜索log4j:

     find / -type f -name log4*
    

    输出将有 log4j 相关的 jar 文件。最重要的是核心文件。

    阅读有关如何在 ubuntu 和 Centos 中更新 log4j的 README

    • 0

相关问题

  • 如何使用类似 Qt 的 UI 在 KDE 中运行 Java 应用程序?

  • 如何安装 Minecraft?

  • 如何从命令行重新启动 java/flash?

  • Java和ALSA问题[关闭]

  • 无法安装 openSDK 6 - ubuntu 10.04

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve