Log4j Log4Shell漏洞问答

在我们最近的网络研讨会上,Log4j Log4Shell漏洞解释:所有你需要知道的我们的高级主管安全研究专家Shachar Menashe分享了有关安全问题以及如何检测和修复它的信息。
我们很高兴在接下来的问答中分享更多的信息,这些信息是基于在网络研讨会期间提出的问题。
Log4j安全问题
log4j漏洞是如何执行的?
JFrog发表了一篇综合性的博客这就详细解释了这个漏洞。请参阅“什么导致Log4j Log4Shell漏洞?”
我听说log4j API调用也很脆弱。你为什么只关注核心?
log4j-api没有漏洞,只有log4j-core有漏洞。
log4j log4shell漏洞在全球影响方面与Shellshock相比如何?
log4shell和Shellshock都是影响大量系统的远程代码执行漏洞。Shellshock是bash(一种非常常见的Linux shell)中的一个漏洞,它是一个应用程序,而log4shell是log4j库中的一个漏洞。由于多种原因,Log4j安全问题在减轻威胁方面构成了更大的挑战。
要检测Shellshock,只需检查本地系统是否安装了易受攻击的bash版本;Bash本身通常不附带第三方依赖项。
log4shell安全问题更难检测,因为log4j是一个库,所以检测需要检查所有直接和间接(传递/递归)依赖项。此外,log4shell的攻击向量比Shellshock的攻击向量更常见(记录未经处理的输入)(将未经处理的输入传递给bash环境)。
Log4shell也更难修复——因为它是一个库,在较新的版本中更改了几个api,这意味着软件供应商可能不得不修改直接与log4j交互的第一方代码,而不仅仅是升级log4j本身。
最后,较新版本的log4j需要较新版本的Java (Java 8与遗留的Java 6/7),这意味着软件供应商可能也必须升级Java组件,这可能反过来导致与系统上其他基于Java的软件不兼容。
没有漏洞的log4j版本1怎么样?它会受到对log4j版本2的关注浪潮的影响吗?
当前的漏洞不会危及版本1。但是,攻击者现在可能会投入更多的精力来研究log4j组件,试图找到其他漏洞。
查找和修复Log4j的解决方案
您是否有任何特定的工具可以帮助我识别存储库中是否有log4j包?
是的!首先,我们的客户使用JFrogDevOps的平台作为他们的关键任务软件开发生命周期(SDLC)过程的中心部分,已经拥有了快速修复缺陷所需的一切Log4j脆弱性。
您的累积包、二进制文件、映像和元数据在Artifactory的二进制存储库管理,你可以搜索工件和构建在整个软件供应链中发现log4j包的每次使用情况,包括作为传递依赖项的使用情况。你可以创建x射线策略和手表阻止在生产环境中使用log4j包的易受攻击版本的任何进一步构建。
对于广大开发人员社区,JFrog还发布了一组有用的开源工具识别log4j的使用在源代码和本地目录的二进制文件中。
假设我们正在使用一个第三方组件,它在编译时依赖于log4j。是否有任何方法,我们可以摆脱log4j,而使用该组件?
只有当包使用易受攻击的log4j版本时,这才是一个问题。如果是这种情况,则需要获得第三方组件的固定版本。如果您有源代码,您可以使用固定的log4j版本自己编译它。
引用log4j的任何依赖都容易受到这种攻击吗,即使它使用的API库(如Spring Framework)将log4j库引用为依赖项?
这取决于具体的情况,以及正在使用log4j库的哪些部分。虽然log4j-core是脆弱的,但log4j-api是不脆弱的。
为了获得最全面的结果,我们建议使用软件组合分析(SCA)扫描工具,如JFrog Xray,以识别所有软件依赖项中的漏洞——包括与log4j相关的漏洞,以及更多的漏洞。
如果您无法使用这些工具,您可以使用JFrog为社区创建的OSS工具来专门识别源代码和二进制文件中的log4j使用情况(见上文)。
一旦Xray检测到工件易受log4shell攻击,是否有一种方法可以确定该工件的消费者——即,使用Artifactory来跟踪哪些服务/用户访问/下载了易受攻击的工件,从而可以分析这些特定的服务?
绝对的!这就是JFrog平台的目的。您可以使用Xray和Artifactory来识别易受攻击的工件的消费者,并使用以下方法控制它们的使用:
- 在存储库中搜索log4j包的使用
- 搜索CVE-2021-44228
- 在Artifactory中运行build-info查询,列出所有使用log4j-core库作为依赖项的构建
- 定义x射线策略以警告违规或阻止下载易受攻击的包
欲了解更多详情,请参阅我们的博客文章,使用JFrog平台的Log4shell修复食谱,其中讨论了发现、阻止和修复log4shell漏洞的多种方法。
我可以看到用于静态和传递依赖标识的Xray演示吗?
我们会很高兴的!请与我们联系以获得x射线的演示我们将设置一个调用,向您展示如何通过工件的依赖关系的所有层来查看。