Apache Log4j 突发核弹级别安全漏洞,如何确保系统安全?

2021-12-17    

核弹级漏洞Log4j事件想必大家都知道了吧?该漏洞利用方式十分简单,攻击者仅需一段代码就可以远程控制目标服务器,90%以上基于java开发的应用平台都会受到影响,影响范围极大。

能引发技术圈大地震,Apache Log4j不简单,它是一款开源的Java日志框架,被广泛地应用在中间件、开发框架、Web应用中,用来记录日志信息。而这些中间件和开发框架作为软件基础又被其他软件系统使用,所以Log4j被极其广泛的应用在各大软件系统里面。比如大家耳熟能详的游戏 Minecraft(我的世界),甚至NASA 在火星上的直升机都使用了Log4j!

Java是业界使用最广泛的编程语言,也是骞云的主流开发语言之一(我们还用了大量的Python、Angular、Javascript、Go等,喜欢多语言开发的攻城狮们赶紧看过来)。我们平台不但直接使用Log4j2,采用的很多Java类库也用了Log4j2,这里面包括Tomcat、ElasticSearch、Skywalking,甚至还有古老的VMware vSphere Java SDK也依赖这个日志框架。所以从漏洞爆出的第一天,骞云的技术团队就开始投入到这个紧急事件的处理中。

经分析发现,我们还是比较幸运的,这次的安全漏洞对骞云平台基本没有影响。这得益于骞云的产品平台每年都有3-4次版本迭代更新,每次更新都会将各种运行环境升级到最新的版本,且绝大部分客户也会采购升级服务,所以大部分用户都在用骞云平台的6.1.x以上版本。从去年中发布的6.1版本开始,平台就升级到了最新JDK 8u261。幸运的是,Oracle JDK 8u191或者更高版本的JDK,缺省不允许执行远程代码。所以使用骞云6.1及以上版本的客户,就不存在远程代码执行的问题。当然,如果本地操作系统已经被攻破,预先被植入恶意本地代码,那恶意代码就可以本地漏洞调用。逻辑上,所在操作系统环境已经被攻破了,就没必要利用这漏洞来控制肉鸡机器了。

即使此次的安全漏洞对骞云绝大部分客户没有什么安全影响,我们的研发团队还是第一时间发布了安全补丁包,将我们平台直接依赖的Log4j2升级到了当天最新的2.15最新版本,并关闭JNDI Lookup。12月10日晚,我们已经完成需要线上对外服务的所有部署系统的补丁升级。周一13号开始,经过验证的补丁包就开始给到我们的交付同事,帮助客户环境进行升级,到今天16号为止,我们的绝大部分客户版本,均已完成漏洞修补。

昨天12月15日,Apache Log4j2 官方又发布了2.16版本,主要修复了以下两个潜在问题:

1. 利用 JMSAppender 造成远程代码执行;

2. 用户配置log4j,使用非默认模式布局和上下文查找(例如$${ctx:loginId})或线程上下文映射模式(%X、%mdc或%MDC),这种情况下可能被攻击导致拒绝服务(DoS)。

这两种情况在骞云的产品里都不存在。我们没有使用JMSAppender; 使用的是默认模式布局(PatternLayout), 没有使用上下文查找,也没有使用线程上下文映射模式。因此对于骞云平台,Log4j 2.16 补丁不是必须的。

软件的漏洞有时不可避免,这次的Apache Log4j安全漏洞,前一段时间的OpenSSL Heartbleed漏洞、 Fastjson高危漏洞、Struts2远程代码执行漏洞等等。根据Gartner的相关统计,到 2025 年,30% 的关键信息基础设施组织将遇到安全漏洞。基础设施组织中,一个组件遭遇安全问题就会引发整个架构的“地震”,以Log4j为例,一张图看懂它在现代软件基础设施中的地位↓

(*作为基础设施架构的一个“支点”,Log4j举足轻重,牵一发而动全身)

软件的安全问题牵一发而动全身,如果被利用,产生的损失很多时候是难以估量的。由这次安全事件的分析评估可见,一个软件系统,持续的更新迭代、专业及时的维保服务都十分关键,能够最大程度保障软件平台的稳定、安全,为企业的业务发展保驾护航。

骞云科技也会继续努力,保障我们客户的系统安全和稳定。

免责声明:本文转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,亦不负任何法律责任。 本站所有资源全部收集于互联网,分享目的仅供大家学习与参考,如有版权或知识产权侵犯等,请给我们留言。