如何使用 Deepfence 检测和修复 Log4j2 漏洞

简介: log4j2 漏洞(如 OpenSSL Heartbleed 和 Apache Struts 漏洞之前出现的漏洞)向互联网企业发出了深刻的提醒,一旦补丁可用,通过重新部署应用程序来响应漏洞并不够,您还必须能够发现在您的生产平台中实时利用漏洞并阻止它们。在本教程中,我们将向您展示如何使用 Deepfence ThreatMapper 和 ThreatStryker 来帮助您做到这一点。

在本文中,了解如何在您的生产平台中实时发现被利用的 log4j2 漏洞并阻止它

log4j2 缓解简介

log4j2 漏洞(如 OpenSSL Heartbleed 和 Apache Struts 漏洞之前出现的漏洞)向互联网企业发出了深刻的提醒,一旦补丁可用,通过重新部署应用程序来响应漏洞并不够,您还必须能够发现在您的生产平台中实时利用漏洞并阻止它们。在本教程中,我们将向您展示如何使用 Deepfence ThreatMapper 和 ThreatStryker 来帮助您做到这一点。

Deepfence ThreatMapper是一个开源安全可观察性平台,可在跨容器、Kubernetes、云、无服务器环境、VM 和裸机的生产应用程序中寻找漏洞(包括 log4j2),然后根据漏洞利用风险对其进行排名。ThreatMapper 通过进一步计算每个漏洞的利用风险来消除扫描工具产生的噪音和误报,以便您可以针对对应用程序安全构成最大风险的问题。

Deepfence ThreatStryker】扩展了 ThreatMapper ,并测量攻击者在您的应用程序中的独特行为 - 捕获网络流量,识别何时进行攻击,并通过执行您定义的安全策略立即停止它们。

在本文中,我向您展示了一个演示环境,其中包含 Java 应用程序中存在 log4j2 漏洞的容器镜像,攻击者如何远程利用它,以及如何使用 ThreatMapper 和 ThreatStryker 检测和防御真实的 log4j2 攻击时间。

如何使用 ThreatMapper 找到最容易被利用的漏洞,例如 log4j2

安装 ThreatMapper 并开始您的第一次漏洞扫描(请参阅本文中的步骤 1 到 4)后,您可以在 ThreatMapper 控制台的“可利用漏洞”报告中查看最严重的漏洞。

在下图中,我们向您展示了我们对演示环境的扫描的最可利用漏洞报告的上半部分。从发现的所有潜在漏洞中,ThreatMapper 会突出显示风险最大的漏洞,并显示可能被利用的攻击路径。

您可以在下面看到位于 HAproxy 后面的 log4j 容器(在文本中标出以便于参考)。这是可用于利用 log4j2 漏洞的攻击路径。

当您将鼠标悬停在上述攻击路径中的关键节点上时,您将看到有关该漏洞的其他信息(例如节点
deepfenceio/log4j-vulnerable-app:latest具有Attack Vector type: network,Top CVE: CVE-2021-44228可访问于Port: 8080)。

当您向下滚动页面到您的排名列表时,您还可以一目了然地查看其他信息:

当您单击特定漏洞时,您可以更深入地了解并查看表格和 JSON 视图中查看更多信息。

在我们的演示中,我们单击了排名第一的漏洞 log4j 并查看提供的信息。ThreatMapper 提取 50 多种不同的威胁源,并尽可能为您提供针对特定漏洞的最新威胁信息。ThreatMapper 还包括指向外部资源的链接,以获取有关漏洞的最新信息。

例如,在表格视图中,您可以看到有问题的包、它所在的位置(即运行它的容器)、CVSS 分数、修复它的版本以及其他有助于您理解原因的数据一个严重的漏洞以及如何修复它。

如何识别正在进行的 log4j2 攻击并使用 ThreatStryker 阻止它们

了解诸如 log4j2 之类的最可利用漏洞的存在是非常有用的信息。您可以与开发团队一起优先修复这些漏洞,并且您可能希望应用临时 WAF 规则来限制攻击者访问和利用这些漏洞的方式。

但是,攻击者是否已经领先了您一步?

  • 攻击者在做什么来尝试寻找漏洞?
  • 他们是否已经找到了初始漏洞利用?
  • 他们是否使用它横向扩展并在您的应用程序中获得额外的控制权?
  • 你怎么能立即阻止他们?

这就是 ThreatStryker 的用武之地。ThreatStryker 建立在 ThreatMapper 执行的静态分析之上,添加运行时检查以确定攻击者为利用潜在漏洞所做的工作。

ThreatStryker 从您的应用程序中捕获两种主要类型的运行时遥测数据:

  • 攻击指标:深度数据包捕获,可能表明侦察、横向传播、命令和控制、渗透和其他攻击活动
  • 危害指标:主机上捕获的进程和文件系统异常,可能表明攻击者已成功利用易受攻击的组件

ThreatStryker 数据包捕获在后台运行,对来自所有节点和容器的流量进行采样。出于本演示的目的,我们将手动启动数据包捕获,选择要监控的特定进程:

ThreatStryker 的数据包捕获是在没有代理和内核模块的情况下执行的。ThreatStryker 使用 eBPF 来抓取流量,对其进行采样,然后将其与运行时威胁源进行匹配,以识别侦查和其他类型的恶意流量。

在流量分析和检查收集到足够的数据后,您可以查看作为结果生成的警报。

ThreatStryker 使用Cyber Kill Chain 框架的扩展版本来模拟攻击行为。意图阶段将事件映射到网络杀伤链中的阶段,攻击类型和严重性提供了额外的上下文。然后,单击底部列表中的一个警报会显示更深入的信息。

例如,下面是我们在单击尝试获得管理员权限警报后看到的内容。下半部分包括一个桑基图,该图显示了随着时间的推移而展开的恶意活动,以便您可以追踪、应用策略并了解正在发生的攻击。上半部分包括表格和 JSON 视图中收集的触发警报的详细信息列表,您可以垂直滚动查看大量信息,包括数据包有效负载和违规字符串。在下图中,我们看到臭名昭著的 ${jndi:ldap 字符串处暂停了垂直滚动,该字符串是 log4j2 攻击的签名。

上面的示例显示了入站(或入口)流量检查,该检查导致了对 log4j2 漏洞的管理员权限获得尝试的利用警报。但仅检查入站流量是不够的。ThreatStryker 还检查出站(或出口)流量和各种主机上的异常情况。

让我们看看另一个警报,它是由主机检查产生的:Suspicious tracing event process strace /bin/ls -l:23408 trying to ptrace: 23409

不知何故,一个进程正在尝试执行系统跟踪;正常操作中的不常见事件,并且强烈指示攻击者已找到破坏容器或应用程序的方法:

孤立地看,这些事件中的每一个都可能令人担忧,并表明攻击演变的可能阶段。当 ThreatStryker 为事件分配意图和分类时,它会将这些攻击指标和危害指标关联起来,以讲述攻击如何演变以及漏洞利用风险如何增长的故事。

您可以使用一系列监控工具随时间跟踪 ThreatStryker 事件日志,或者您可以在 ThreatStryker 中配置安全措施,以便在达到确定性阈值时介入并消除正在进行的攻击。

在 ThreatStryker 的保护策略仪表板中定义安全策略(隔离策略和网络策略)以阻止正在进行的攻击,如下所示。

在我们的演示环境中,我们还没有设置任何保护策略,所以让我们创建一些。为此,请单击网络策略选项卡,然后单击右上角的添加策略按钮。您将看到一个选项菜单,您可以在其中选择严重性、警报类型、意图类型等。

然后,您可以在您选择的一段时间内阻止入站和出站流量 - 自定义或无限期。

但仅仅阻止攻击继续进行只能解决一半的问题。ThreatStryker 还可以识别主机上可能表明它已被破坏的事件,包括奇怪的文件系统修改、进程活动或以某种方式表明主机或工作负载已被攻击行为污染的其他行为。在这一点上,我们采用隔离政策。隔离策略使您能够根据自己的喜好冻结、阻止、终止或删除主机,以防止受污染的影响进一步传播。

要创建隔离策略,请前往保护策略仪表板上的隔离策略选项卡,然后单击添加策略开始。这是我们在演示环境中创建的示例策略。

总结

总之,ThreatMapper 是一个开源平台,可以学习应用程序的拓扑结构,识别潜在易受攻击的工作负载,并针对 50 多个不同的威胁源扫描这些工作负载,并为您提供有关每个工作负载可能存在的漏洞的实时、准确信息展示。ThreatMapper 然后将其与攻击面相关联,告诉您像 log4j2 这样的漏洞最容易被利用,以便您知道首先要修复什么。

ThreatStryker 建立在 ThreatMapper 创建的漏洞图和信息之上,以识别攻击行为并阻止和中和攻击者的步骤,防止他们利用您的应用程序。

目录
相关文章
|
1月前
|
安全 Java Apache
修复了log4j 的bug
修复了log4j 的bug
47 0
|
10月前
|
安全 Java 开发者
刚折腾完Log4J,又爆Spring RCE核弹级漏洞
继Log4J爆出安全漏洞之后,又在深夜,Spring的github上又更新了一条可能造成RCE(远程命令执行漏洞)的问题代码,随即在国内的安全圈炸开了锅。有安全专家建议升级到JDK 9以上,有些专家又建议回滚到JDK 7以下,一时间小伙伴们不知道该怎么办了。大家来看一段动画演示,怎么改都是“将军"。
94 1
|
1月前
|
算法
m基于log-MPA检测算法的SCMA通信链路matlab误码率仿真
MATLAB 2022a仿真实现了稀疏码多址接入(SCMA)算法,该算法利用码本稀疏性实现多用户高效接入。每个用户从码本中选取码字发送,接收端采用Log-MPA算法进行多用户检测。由于MAP检测计算复杂度高,故采用Log-MPA降低复杂性。仿真展示了不同迭代次数(1, 5, 10, 30)对误码率(BER)的影响,通过比较各次迭代的BER曲线,研究算法性能与迭代次数的关系。
45 0
|
11月前
|
运维 安全 Java
Log4j2 远程代码执行漏洞——总结
前两天网络有爆料log4j安全漏洞,安全大于天,于是也加入到这个和时间赛跑的临时事件中。对于安全漏洞网上有很多文章,内容都大同小异,不过针对于这件事小编下面的故事一定能让读者有"意外"收获。
|
9月前
|
安全 Java Shell
Apache Log4j2 远程代码执行漏洞
Apache Log4j2是一个·基于Java的日志记录工具,该工具重写了Log4j框架,并且引入大量丰富的特性,该日志框架被大量用于业务系统开发,用来记录日志信息。
71 2
|
8月前
|
安全 Java 大数据
CDH/HDP/CDP等大数据平台中如何快速应对LOG4J的JNDI系列漏洞
CDH/HDP/CDP等大数据平台中如何快速应对LOG4J的JNDI系列漏洞
|
10月前
|
安全 druid Java
【紧急】Apache Log4j任意代码执行漏洞安全风险升级修复教程
近期一个 Apache Log4j 远程代码执行漏洞细节被公开,攻击者利用漏洞可以远程执行代码。经过分析,该组件存在Java JNDI注入漏洞,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
269 1
|
9月前
|
IDE Linux 开发工具
IntelliJ IDEA 2023.2.1 修复版本日志
IntelliJ IDEA 2023.2.1 修复版本日志
|
10月前
|
安全 网络协议 Java
【紧急】Log4j又发新版2.17.0,只有彻底搞懂漏洞原因,才能以不变应万变,小白也能看懂
经过一周时间的Log4j2 RCE事件的发酵,事情也变也越来越复杂和有趣,就连 Log4j 官方紧急发布了 2.15.0 版本之后没有过多久,又发声明说 2.15.0 版本也没有完全解决问题,然后进而继续发布了 2.16.0 版本。大家都以为2.16.0是最终终结版本了,没想到才过多久又爆雷,Log4j 2.17.0横空出世。
318 0
|
11月前
|
Shell Perl
检测网卡流量,并按规定格式记录在日志中
检测网卡流量,并按规定格式记录在日志中
68 2