Log4j漏洞为开源软件安全敲响警钟

  2022年7月14日,美国国土安全部网络安全审查委员会(Cyber Safety Review Board,CSRB)发布其对Log4j漏洞的第一份调查报告《2021年12月Log4j事件审查》(Review of the December 2021 Log4j Event,下称《Log4j报告》),详细报告了Log4j漏洞的产生原因、披露过程和实际影响,并提出了19条建议。报告指出,尽管美国公共和私营部门已经努力保护其网络,但Log4j漏洞的影响将持续蔓延,这意味着这个常用开源框架的未修复版本将在未来10年,甚至更长时间内留在各类系统中。CSRB的建议侧重于提高软件产品的安全性,以及提高政府和行业部门应对重大漏洞的能力。本文对《Log4j报告》进行了整编和评析。

  一、Log4j漏洞形成的原因

  (一)Log4j概述

  Log4j是一个基于Java的开源日志框架,用于收集和管理有关系统活动的信息。自1999年该框架问世以来,它逐渐成为软件开发中广泛使用的构建模块,已被全球的开发人员集成到数千个软件包中。目前,Log4j框架在开源软件组织Apache软件基金会(Apache Software Foundation,ASF)的Apache日志服务(Apache Logging Services)项目下进行维护。

  (二)Log4j漏洞起源-技术层面

  Log4j漏洞产生的原因是软件在配置、日志消息和参数中使用的Java命名和目录接口(Java Naming and Directory Interface,JNDI)功能不能防止攻击者控制轻量级目录访问协议(Lightweight Directory Access Protocol,LDAP)和其他JNDI相关端点。当启用消息查找替换功能时,具有控制日志消息与日志消息参数权限的攻击者可以执行从LDAP服务器加载的任意代码。这意味着上述攻击者可以注入欺诈性消息,从而实现任意代码执行和控制受攻击的系统。

  另外,其他外在因素也放大了Log4j漏洞的影响规模、复杂度和风险级别:

  Log4j通常嵌入到其他软件包中,导致在较高级别的软件组件中难以判别其存在,使得常见的扫描方法难以识别该漏洞;

  Log4j已经被整合到全球数千个软件包中,许多国家的网络基础设施和政府系统都依赖于它;

  Log4j很容易被攻击者利用,一旦被利用,攻击者可以高度控制系统。

  (三)Log4j漏洞起源-管理层面

  从管理层面出发,CSRB指出了与维护Log4j等开源项目相关的特定挑战。一是开源项目通常依赖志愿者团队维护,并且在整个软件开发生命周期中不一定拥有专门的安全团队。开源项目通常没有专门的漏洞披露和响应团队,这类团队可以调查漏洞的根本原因并努力解决这些问题。与行业惯例一致,ASF和Log4j团队不管理也不知道谁在使用他们的软件,或是怎样使用他们的软件。二是像Log4j这样的开源项目会公开源代码,其中安全性变化在开发过程中也是公开可见的。这表明社区对漏洞的响应要与发布修补程序同时进行,以便在官方补丁发布前缩小恶意利用漏洞的时间窗口。

Log4j漏洞为开源软件安全敲响警钟

  常见开源项目 图源:GISMentors

  上述情况构成了巨大的潜在风险面:高风险目标较为脆弱且数量庞大,但安全团队通常无法确定易受攻击代码在系统中的位置,进而导致一些国家网络基础设施和政府系统等重要的骨干网络易受攻击。

  二、Log4j漏洞的发现和披露

  2021年11月24日,中国阿里巴巴集团安全团队的一名工程师通过邮件向ASF报告了Log4j漏洞,并提供了该漏洞的相关信息,包括问题描述、易受攻击的代码指针、概念说明和屏幕截图。

  ASF在了解到这个漏洞后,第一反应是按照其流程尽快开发出补丁。ASF对Log4j漏洞进行了评估,认为由于Log4j被广泛使用,对该漏洞进行简单封锁是不切实际的。ASF在11月29日就开始审核修补该漏洞的代码,并在2021年内通过了2个补丁代码请求。ASF在跟踪系统中发现了一个问题,并在12月5日将修复补丁提交给了Log4j源代码存储库,随后在12月6日标记了一个发布候选版本(Log4j-2.15.0-rc1)。ASF在当时并没有发布安全公告。

  12月9日,阿里巴巴集团的工程师通过邮件通知ASF,微信中出现了有关Log4j漏洞的讨论,并提供了相关内容的链接。微信上有关Log4j漏洞的消息是由中国网安公司北京边界无限科技有限公司发布,其中包含一张漏洞利用的截图证明。ASF一并获悉推特上也在传播该漏洞的使用消息后,遂在原计划之前发布了一个官方修复补丁,并在12月10日公布将Log4j框架升级到2.15.0版本。

  ASF还在12月10日将分配的常见漏洞和暴露(CVE)标识符(CVE-2021-44228)公开。同一天,美国网络安全与基础设施安全局(CISA)发布了一份关于Log4j漏洞的声明。随后,美国国家标准与技术研究院(NIST)国际漏洞数据库(NVD)的分析师将CVE202144228评估为一个严重漏洞,在其漏洞评分系统(CVSS)中评分为10.0。高漏洞评分也反映了利用该漏洞只需要低攻击复杂性、无特权要求和用户交互的情况。

  随着CVE202144228的公开披露,研究人员相继发现了Log4j框架中的其他漏洞并将其报告给ASF。ASF按照其标准流程对这些报告进行分类、分配CVE标识符,并向开源社区提供软件升级。

  三、对Log4j漏洞的利用情况及相关方响应

  (一)Log4j漏洞的利用情况

  CSRB审查了机密和非机密的政府信息及行业数据后,没有发现在2021年12月9日之前恶意利用Log4j漏洞的情况。

  漏洞公布后,对Log4j漏洞的利用活动迅速增加。不过,由于安全公司也会进行大量的漏洞扫描活动,很难区分哪些是恶意活动。在漏洞披露5天后,美国网络安全公司Cloudflare观察到每秒400次利用Log4j漏洞的攻击尝试,以及总共数百万次对易受攻击系统的扫描。

  (二)对Log4j漏洞的响应

  在Log4j漏洞披露后,全球的软件开发人员和网络安全人员立即使用正式和非正式的沟通渠道来分享漏洞的缓解策略,并为公众提供指导。许多相关方表示,他们第一次获知漏洞消息是从推特等社交媒体平台上。这些社交媒体平台上共享了漏洞消息和新出现的妥协指标(IOC)。社交媒体上的个人账户还共享了利用变体,混淆和防御逃避技术及其他方法,使得技术人员能够调整防御措施以阻止潜在的攻击。

  2021年12月10日,CISA发表声明,重点强调了ASF的建议,并鼓励用户和管理员立即升级系统或采取缓解措施。12月17日,CISA发布了22-02号紧急指令(ED),该指令详细说明了易受攻击产品的缓解措施和补丁优先级建议,并要求民事行政部门机构在两周内解决Log4j漏洞问题。在信息披露后的几天里,CISA专注于促进与受信任的合作伙伴进行合作,如通过卡内基·梅隆大学的漏洞信息和协调环境(VINCE)软件漏洞团队了解工业控制系统(ICS)供应商的系统缓解方法。CISA还与新成立的联合网络防御合作组织(JCDC)进行了协作沟通,JCDC促进了跨部门数据的收集、组织和整合,以确认漏洞的影响程度并支持推出全面的补救方法。

  (三)Log4j漏洞事件分析

  Log4j漏洞事件说明了对于整个生态系统和单个企业而言,违反直觉的网络安全风险是存在的。

  在Log4j漏洞事件的各个环节中,各方行动都是按计划进行的:ASF拥有完善的软件开发生命周期,具有明确的审查、测试和审核新代码的流程;安全研究人员遵循普遍接受的协调披露步骤;ASF迅速认识到问题的严重性并提供了升级服务;供应商和政府迅速发布了漏洞信息、指南和工具;整个生态系统在集体紧迫感的驱使下团结起来。然而,很多组织仍然难以应对这一漏洞。正如CSRB发现,还有很多组织至今仍然没有修补Log4j漏洞。

  CSRB还发现,软件开发人员在软件使用和集成方面存在潜在风险。一般企业不会从头开发软件日志框架,而是使用Log4j框架,并且企业也会倾向于信任经过审查流程而建立的软件,这造成了网络安全认知和漏洞响应实践之间的差距,而这些差距加剧了在提高组织内部安全认知、协调可信和权威信息来源、大规模减轻风险、衡量风险以及协作防御行动中所面临的挑战。

  四、建议

  CSRB认识到Log4j漏洞的影响正在持续扩大,并且该漏洞还会继续地在各组织中暴露,所以开源社区应改进机制、提高防范意识,以预防下一个Log4j类型的事件发生,并对当前的风险采取干预和补救措施。因此,该机构在其职责下提出相关建议。

  CSRB的安全建议分为四个主题:一是解决Log4j存在的持续风险:要对修补Log4j漏洞的进度保持长期追踪;二是推动现有最佳网络安全实践:采用行业公认的漏洞管理和网络安全实践及标准;三是构建更好的软件生态系统:推动软件系统向主动漏洞管理模式转型;四是未来投资:研究解决国家数字和网络安全所必须的文化和技术转变方向。

  具体包括以下内容:

  (一)解决Log4j的持续风险建议

  CSRB预测,由于Log4j框架的广泛使用,易受攻击的框架版本在未来十年内还会留存在各大系统中,安全人员将会看到对Log4j漏洞利用技术的演变。CSRB基于此提出了如下建议:

  1.各组织应对修补Log4j漏洞做好充分准备。

  2.各组织应继续报告对Log4j漏洞利用的情况。

  3.CISA应提高其协调和发布权威的网络安全信息的能力。

  4.美国联邦和州的监管机构应推动CISA指南的落地实施。

  5.各组织应对识别易受攻击系统的能力进行投资建设。

  6.各组织应维护技术资产和应用程序清单。

  7.各组织应有明确的漏洞响应计划。

  8.各组织应有明确的漏洞披露和处理流程。

  9.软件开发和维护在实践中应注重安全性。

  (二)构建更完善的软件生态系统

  Log4j事件说明,发展行业认可的实践标准和技术是有必要的,这些实践标准和技术将保证软件在设计上是安全的。CSRB基于此提出了如下建议:

  1.开源软件开发人员应参与开源社区的安全计划。

  2.各组织应加强对软件开发人员的安全开发培训。

  3.提高软件物料清单(SBOM)工具的可用性,以便更好了解软件的安全性和软件供应链的依赖关系。

  4.加大对开源软件安全性的投入。

  5.开展试点,对应用于关键服务的开源软件进行维护支持。

  (三)未来投资

  为了解决当前软件生态系统中存在的重大挑战,创新解决方案是有必要的。CSRB针对这一目标提出了如下建议:

  1.探索制定政府供应商软件透明度的基本要求。

  2.检查网络安全报告系统(CSRS)的有效性。

  3.探索建立软件安全风险评估中心(SSRACE)的可行性。

  4.研究构建安全软件所需的激励机制。

  5.建立政府协作的工作组,以加强对已知漏洞的识别。

  五、评析

  2021年末曝出的Log4j安全漏洞堪称互联网历史上破坏力最惊人的漏洞之一,漏洞波及面和危害程度堪比2017年的“永恒之蓝”漏洞。Log4j漏洞的影响仍在持续,虽然目前还没发现由Log4j漏洞而引发的重大网络攻击,但它仍有在未来几年被用于网络攻击的风险。美国网络安全公司Check Point Research的研究显示,到2021年底,针对企业的网络攻击数量激增50%,主要归咎于对Log4j漏洞的尝试性利用。

  《Log4j报告》显示,尽管ASF已经推出了关键漏洞的更新,但用户仍可能会被ASF软件中多年未能更新的旧问题所困扰,并继续使用已知未修复漏洞的软件版本。这会对未来网络安全防御措施产生阻碍。

  由于美国政府和信息技术行业对开源软件的高度依赖,美国格外重视开源软件安全问题。Log4j事件后,美国白宫在2022年1月和5月两度举办开源软件峰会,召集政府部门、开源组织和科技巨头探讨美国开源软件安全问题,最终达成了数据共享、安全教育、事件响应和供应链改进等方面的共识,并推动了一项为期2年、价值1.5亿美元的开源安全投资计划。最新发布的《Log4j报告》为开源软件的健康发展提供了有益指导,尤其是为政府引导和投资安全的开源基础设施软件指明了方向。从开源软件的发展角度,《Log4j报告》旨在助力美国建立世界领先的监管架构,从而激发开源软件健康发展的活力和持久力。

  近年来,中国对开源软件和开源代码的采用度不断上升,互联网和云服务行业首当其冲。同时,中国开发者在GitHub社区中的贡献率上升至全球第二。在享受开源软件为技术研发带来便利的同时,也应充分重视知识产权和技术安全等方面的风险,并加强劳动力培养、知识产权保护和供应链安全建设。对于《Log4j报告》中的有益内容,可选择性地借鉴、参考。

  附:CSRB和ASF机构介绍

  美国国土安全部网络安全审查委员会(CSRB):CSRB根据美国总统拜登签署的14028号行政命令而成立,编制15人。国土安全部负责战略、政策和计划的副部长罗伯特·希尔维斯(Robert Silvers)任CSRB主席,其他人员包括美国各联邦机构和大型科技公司高管。CSRB于2022年2月开始审查和评估重大网络安全事件,以便政府、行业和其他利益相关者更好地保护美国的网络和基础设施。该委员会的首项任务是调查Log4j漏洞的产生原因,并提出建议。

  Apache软件基金会(ASF):ASF是一家美国的非营利组织,旨在支持各类开源软件项目。ASF最初由Apache HTTP Server的一群开发者组成,并在1999年3月25日正式成立。截至2021年,阿帕奇基金会社区的总成员数大约在1000名。

原创文章,作者:lishengli,如若转载,请注明出处:http://www.lishengli.com/lee/531.html

发表回复

登录后才能评论