繁体   English   中英

如何避免 Log4J 漏洞利用

[英]How to Avoid Log4J exploit

Log4J 中存在一个严重的安全漏洞,该漏洞显然已被修补。 但是我还没有找到一个可以理解的解释,说明日志框架中甚至可能存在安全漏洞。

它似乎与“查找”有关。 https://logging.apache.org/log4j/2.x/manual/lookups.html

但那是在配置文件中,而不是可以注入的日志文件中?

问题。 我如何一劳永逸地杀死所有聪明的东西以防止任何未来的攻击? 我只想记录。

闻起来像我需要删除任何“$”符号,但这只是一个猜测。 (还应该删除任何 \ns 以避免日志文件欺骗。我总是为日志编写一个非常简单的包装器,以便能够执行此类操作。)

防止查找引起的漏洞的唯一方法是完全禁用它们。

根据 log4j2 团队的说法,这样做的方法是附加 Java 参数

-Dlog4j2.formatMsgNoLookups=true

不幸的是,即使您使用参数或记录异常堆栈跟踪,查找也会应用于记录的序列。 代码中的查找序列并不危险,因为它们是可控的。 但是来自用户的那些是不可预测的。 如果您记录“错误的用户名:xxx”,您不知道用户可以键入什么来利用另一个漏洞。

但是,您不能确定框架中没有其他严重错误,因此切换到其他日志记录框架是合理的。

一个不错的候选是Logback ,它是由 Log4j 的原作者启动的。 开发者明确表示,他的框架与 Log4j2 中引入的安全问题无关:

除非另有说明,当我们说 log4j 时,我们指的是 log4j 1.x。 我们还想强调一下,logback 与 log4j 2.x 无关。 它不与 log4j 2.x 共享代码或漏洞。

对于像这样的安全问题,将最新信息保存在一个地方是有意义的。

Please refer to the official Log4j information about this vulnerability here: https://logging.apache.org/log4j/2.x/security.html The document states several mitigation measures applicable for different versions of Log4j.

我意识到,一般而言,StackOverflow 约定是在 StackOverflow 上的答案中有明确的步骤和示例,而不是链接到外部文档,但我认为敏感的安全漏洞应该是一个例外。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM