》近日,Log4J爆出高危安全漏洞,不少客户GarageInnovation(ClientEngineering)GCG团队,急客户之所急,从产品全生命周期出发,提出一套防漏补缺组合冲,可以消除无形中的风险,车库创新团队立足于市场前沿,与客户并肩作战,梳理痛点,创造快速验证的解决方案,并以此为契机,充分赋能客户的创新实践和数字化转型。”——于冬即使你不在安全圈,最近也可能经常看到Log4Shell这个词,很多媒体形容它是“点燃互联网”、“危及数百万Java应用程序”、“最严重的漏洞”过去十年”。什么是Log4Shell2021注定是不平凡的一年,机遇与挑战并存,我们在挑战中蜕变,在蜕变中前行。年底,一场“核弹级”IT界爆出的漏洞:Log4Shell,已经一个多月了,影响还在发酵,新的相关漏洞也陆续出现,很多公司都给予了前所未有的关注,给IT行业带来了巨大的影响。IT行业,什么是Log4Shell?简单来说,Log4Shell是Java日志框架log4j支持的LookupJNDI(JAVANamingandDirectoryInterface)造成的漏洞,这个JNDI支持LDAP数据源,可以获取cor根据用户通过LDAP指定的Key响应内容(数据或对象)。如果获取的内容是从第三方服务器下载的Java对象(该对象可能具有破坏性),那么在加载该Java对象并执行代码时,可能会对应用程序造成不可估量的破坏。由于log4j应用广泛,涉及面广,一下子掀起了一阵波澜。Log4Shell全周期反补丁集成IBM作为安全领域的领导者,一直视用户应用和数据安全为生命。IBM客户工程作为一线团队,从产品的全生命周期出发,提出了一套防漏补漏的组合拳,可以在无形中消除这个漏洞的风险。如下图所示,以下章节讨论了从产品开发到上线应用的整个生命周期:开发、部署、使用和维护。从漏洞预防、检测、管理、响应四个方面入手,为用户的应用程序全程保驾护航。组合一:Instana和QRadar是现代应用程序性能管理工具。Instana在亚秒级链接跟踪和不丢失任何链接请求的非采样方面绝对领先。Log4Shell发起API请求配合log4j的JNDI:LDAP漏洞达到攻击目的,这也是Instana能够发现漏洞攻击的天然优势。同时,QRadar可以提供快速准确的态势感知,检测企业内部和云环境中的威胁并评估其安全风险,并提供快速调查所需的实时分析和管理。因此,Instana和QRadar的结合可以对用户安全提供更全面的评估和响应。Log4Shell漏洞攻击分析为阐明Instana发现Log4Shell漏洞攻击的原理和方法,我们进行了Log4Shell漏洞模拟攻击实验,得出以下两个结论:Instana可以实时检测到任何由Log4Shell漏洞发起的攻击。Instana可以发现具有Log4Shell漏洞的应用程序/服务。这个结论是怎么得来的?首先我们通过下图回顾一下如何利用Log4Shell漏洞发起攻击。从上面的过程我们可以看出,应用需要同时满足以下条件才能被攻击,否则该漏洞不会对系统造成威胁:Java应用使用log4j(版本<2.15),并且启用了查找功能StatusLogger打印变量包括外部请求变量Instana和QRadar,用于监控和响应漏洞攻击,如下图所示。如果漏洞被利用和攻击,我们可以很容易地从Instana接口或TraceData中获取相关的攻击数据和信息。另外,我们开发了一个脚本,可以通过InstanaAPI获取TraceData,实时分析并警告当前系统是否被攻击,同时告知用户当前系统是否存在Log4Shell漏洞。运行结果如下所示:QRadar可以监控传入的网络流量和进入服务的日志。也可以通过访问第三方漏洞扫描的结果,更具体地发现相关漏洞。因此,QRadar也可以通过InstanaAPI获取相应的TraceData,指定相应的规则实时监控是否有人利用漏洞攻击我们的系统,指定相关的脚本,针对漏洞或攻击采取相应的措施。同时,QradarSOARsecurity可以编排自动化响应,对漏洞采取自动及时的补救措施。组合二:RHACSRHACS(RedHatAdvancedClusterSecurity),受PaaS保护,是企业级Kubernetes原生容器安全防护解决方案,帮助用户更安全地构建、部署和运行云原生应用,让用户及时获取洞察OpenShift环境的关键漏洞和威胁。RHACS默认配备各种部署时和运行时策略,可以有效防止风险工作负载部署或运行??。同时,RHACS可以监控、收集和评估系统级的事件,例如Kubernetes环境中各个容器的作业执行、网络连接和网络流量、提权等,及时洞察问题,做出判断根据既定规则的危险程度。RHACS漏洞管理非常全面,可以在整个软件开发生命周期中识别和修复容器镜像和Kubernetes漏洞。如下图所示,RHACS识别出应用镜像中的Log4Shell漏洞,并将其标记为Critical。同时,RHACS具有强大的检测和响应能力。它可以使用规则、允许列表和基线来识别可疑活动并采取行动来防止攻击,加强用户的Kubernetes环境和工作负载,确保应用程序更安全、更稳定。如下图所示,我们定义了一个系统规则来识别Log4Shell漏洞。激活该规则后,用户创建的应用容器如果存在Log4Shell漏洞将被拦截。从下面的报错信息可以看出,由于容器镜像存在Log4Shell漏洞,同时在RHACS的Violations接口中可以看到阻止应用创建的事件。第三种组合:DevSecOps防患于未然DevSecOps是开发、安全和运维的首字母缩写,从最初的设计到集成、测试、部署和软件交付,在软件开发生命周期的每个阶段自动化集成安全检查。DevSecOps可以主动改进安全措施,加速安全漏洞修补,并交付快速高效的软件以防患于未然。在以下实践中,DevSecOps为开发者在现有的CI/CDPipeline中提供了自动化的安全保护,提供持续的镜像扫描和保护。镜像构建完成后,需要对镜像进行扫描,检查是否存在漏洞。如果存在严重漏洞,则需要在部署前修复漏洞。从下图的镜像扫描日志可以看出,这一步检测失败,是因为检测到了Log4Shell的漏洞。同时,在CD阶段,我们基于开源的Starboard,开发了一个扫描用户运行容器漏洞的工具:StarboardReport。当创建或升级容器时,StarboardReport会自动检测漏洞并实时显示给用户,如下所示。单击其中一个正在运行的容器报告,可以查看漏洞扫描的详细信息,如下所示。组合拳4:HotMitigation(热舒缓)补漏天擎Log4Shell漏洞爆发后,开源社区高度关注。短时间内,不断涌现出一大批开源项目,有的还谈到了如何检测这个漏洞。是的,有的讲HotMitigation(散热),有的描述漏洞原理等等,等等,完美体现了开源社区的强大和快速反应。下图是Github上关于log4shell的Repositories按star数排名,相当惊人。本节将介绍开源社区中具有代表性的HotMitigation方法。这种方式有两个好处:?由于官方补丁包的发布需要时间和验证,这期间没有针对漏洞的防护,除非关闭服务,这种HotMitigation可以有效解决这个问题。?其他的Mitigation方法,比如修改JVM参数,需要重启JVM,导致宕机,而本文介绍的这种方法不需要重启JVM,避免了宕机。在开始之前,我们先回顾一下Log4Shell漏洞的原理:“org/apache/logging/log4j/core/lookup/JndiLookup”这个Java类的“lookup”方法会在非法服务器上下载恶意代码,从而进行攻击可以实现。一个明显的想法是,如果原来的“lookup”方法被篡改,比如让“lookup”成为一个固定的返回字符串:“PatchedJndiLookup::lookup()”,漏洞不就可以避免了吗?这正是这种缓解的原理。更难能可贵的是,这一切都是在不重启JVM的情况下完成的,无论是本地程序还是Kubernetes下的Container都可以完成。我们的工作是先使用开源社区贡献的JavaJarsforHotMitigation,再辅以KubernetesDaemonSet、ClusterRole等,以及相应的脚本,使其在Kubernetes环境下完美运行。简述工作原理。安装完成后(DaemonSet),会在每个KubernetesNode上启动一个进程来检测Node上所有的Java进程(JVM)。一旦发现,它会尝试向JVM中注入JavaAgent,并尝试篡改所有JndiLookup。实例的Lookup方法,使得该方法只是返回一个固定的字符串PatchedJndiLookup::lookup(),如下图所示:为了验证修改后的解决方案的结果,我们准备了三个实验对象:localJava应用程序,不包含Log4J库的漏洞版本,热缓解后的Log如下:因为Java程序不包含log4j库,所以提示没有找到对应的漏洞。本地Java应用,包含有漏洞的log4j版本:漏洞已找到并修补,符合我们的预期。运行在KubernetesPod中的Java程序没有包含对应的log4j库,结果和第一个对象一样。最后,在DeamonSet相关的Pod日志中,我们可以看到信息:这样就实现了在升级官方补丁包之前避免宕机的HotMitigation。结语:未雨绸缪早,未雨绸缪。在IT行业,应用的功能和性能固然重要,但安全运行才是基础,尤其是面对如此危急级别的安全漏洞,更要引起大家的警惕。只有及时发现漏洞并采取相应措施,才能防止应用程序被攻击和利用,保障企业的利益。在这次调查中,我们开发了一些工具,比如如何检测应用程序是否有这个漏洞,是否被攻击。如果您有兴趣,请联系IBM客户工程团队(热线:4006682350),我们可以为您演示上述功能,也可以帮助您提高系统和应用程序的安全性。最后,笔者要提醒大家的是,HotMitigation或许可以在短时间内阻止攻击。我们注意到Apache基金会已经逐步发布了官方补丁。从长远来看,建议用户为应用打上安全有效的补丁,以防患于未然。了解更多关于IBM的信息:http://server.51cto.com/act/ibm/2022q1#box1
