一起看看让互联网着火的“Log4j”

来源 | 一骥绝尘
知圈  进“域控制器群”请加微13636581676,备注域

一起看看让互联网着火的“Log4j”的图1

发生了什么?


2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。随后多家机构,包括车辆安全漏洞预警与分析平台,监测到Apache Log4j存在任意代码执行漏洞,并紧急通报相关情况。以下是该“核弹级”漏洞的情况。

一起看看让互联网着火的“Log4j”的图2
图1:近期火爆的Log4j漏洞
 
编号 :CVE-2021-44228
严重级别 :CVSS:10.0
 
由于Apache Log4j存在递归解析功能,未取得身份认证的用户,可以从远程发送数据请求输入数据日志,轻松触发漏洞,最终在目标上执行任意代码。这个漏洞可能对互联网上所有通过Apache Log4j来记录用户访问请求的所有Java应用程序都有影响,可以让网络攻击者无需密码就能访问网络服务器。范围基本上波及所有Java项目。
 
Apache官方紧急发布了2.15.0 RC1的补丁版本,但随后发现该补丁可以被绕开。官方又紧急发布了2.15.02 RC2的补丁版本。
 
如果版本不兼容,短时间内难以升级补丁怎么办?Apache也给出了临时缓解措施:
1. 禁止没有必要的业务访问外网
2. 使用jvm参数启动 -
 
  Dlog4j2.formatMsgNoLookups=true
3. 设置  log4j2.formatMsgNoLookups=True
4. 系统环境变量中将 
   FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 true
 
在CVE-2021-44228公布后近两周的时间内,各方面都忙于修补漏洞,当然也有进一步发掘甚至利用漏洞的。截至写这篇文章的时候,已经多了两个相关的漏洞:CVE-2021-45046和CVE-2021-45105。Apache Log4j 也已经升级到2.17.0版本。
 
对这个告警新闻,有没有觉得总体理解,但又有些疑问?我们借此机会,来进一步扒开看看这条新闻,多吃几口瓜。当然以下内容是针对非专业人员的讨论,老兵和大牛们请跳过或者指正。

一起看看让互联网着火的“Log4j”的图3

网络信息安全背景


黑客这个名字相信大家都很熟悉,白客相信也不陌生。但你知道还有灰客、红客、蓝客和绿客吗?其实它们都是指戴着不同颜色帽子的骇客,而骇客指具有相当网络安全技术的人。在上世纪二三十年代的美国电影里,坏人经常戴个黑礼帽,而好人经常戴的是白礼帽,而随着更多定义范围延伸,就有了戴不同颜色帽子的骇客。
 
一起看看让互联网着火的“Log4j”的图4
图2:戴各色帽子的骇客
 
黑客: 通过非法手段破坏网络安全来赚取利益或者伤害他人人身安全。就是通常意义上理解的坏人。
 
白客: 他们是黑客的对立面,受雇于政府或者公司,通过他们的网络信息技术来设计网络安全系统、修复漏洞、阻挡非法入侵等。也就是通常意义上理解的好人。上面新闻提到的阿里云安全团队,以及耳熟能详的腾讯科恩实验室和360漏洞云团队等都是白客。
 
灰客: 这个世界当然不是非黑即白的,灰客就是一批游走于灰色地带的人。不同于白客,他们通常会在被攻击方不知情的情况下入侵对方网络。但是不同于黑客,入侵后他们不会窃取金钱或者造成其他伤害。有时候灰客入侵网络后会通知网络主人,如果网络主人愿意付给他们钱,他们也会提供修复漏洞的方法。
 
红客: 他们是激进的骇客。虽然也出于正义的目的对付黑客,但是红客们一般采取“以暴制暴”的方式。例如对DOS攻击黑客的系统让其瘫痪,或者远程入侵黑客的电脑,删除其所有资料。
 
蓝客: 他们是编制外的“临时工”。与白客不同,他们不受雇于某个组织或公司。但是这些组织或者公司部署好网络安全系统之后会邀请蓝客来做渗透测试,即尝试攻击系统来测试安全系统的可靠性。
 
绿客: “绿”字有点“愣头青”的意思。他们指一批勤于学习网络安全知识,但是学艺未精的人。由于技术欠佳,绿客经常会在进阶过程中造成意外伤害和攻击,而自己也不知道怎么修复。
 
除了人物之外,我们再来看看事情。上面新闻提到的CEV和CVSS又是什么?
 
CVE的英文全称是“Common Vulnerabilities & Exposures”,是一个通用漏洞披露的项目。CVE为信息安全漏洞或易损性给出一个公共的名称,以帮助用户在各自独立的各种漏洞数据库中和漏洞评估工具中共享数据。同时CVE也提供了描述漏洞的标准,使大家在分析讨论问题的时候,能明确地在“同一个频道上”。其编号由年份和数目编码组成,例如这次的CVE-2021-44228。
 
CVSS的英文全称是“Common Vulnerability Scoring System”,是一个通用漏洞评分系统。CVSS旨在评估安全漏洞的严重性,是全球各组织使用的公开标准。该标准通过漏洞难易程度以及对机密性、完整性、可用性的影响综合评估后,生成一个0到10分之间的评分值,10分最高。CVE-2021-44228对于网络信息安全的机密性、完整性以及可用性均有严重影响,其CVSS分值10分就是该标准最严重的评分。
 
一起看看让互联网着火的“Log4j”的图5

这个漏洞究竟是什么?


Apache是著名的非盈利开源软件组织,它采用的协议鼓励代码共享和尊重原作者的著作权,允许使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
 
当然开源软件不是说可以免费随便用,比如不同开源软件对于其许可(license)都是有要求的,而且修改后能否商用也不尽相同。汽车上就有不少用到Apache开源软件的地方。而按照欧洲的法规,开源软件的许可还需要在网站上公示。例如下图就是某豪华品牌汽车的开源软件许可情况,其中也包含了Apache License。
 
表1:某豪华品牌汽车的开源软件许可情况 
一起看看让互联网着火的“Log4j”的图6

Log 就是日志,主要用于记录程序运行的情况,以便于程序在部署之后的排错调试等。针对不同的编程语言,日志体系也有所不同。
 
一起看看让互联网着火的“Log4j”的图7
图3:Java和Log4j
 
Log4j(log for java)则是 Apache 的一个开源项目,通过使用 Log4j,可以控制日志信息输出到日志文件、也可以控制每一条日志的输出格式以及控制日志的生成过程。
 
JNDI(Java Naming and Directory Interface)是一种标准的Java命名系统接口,JNDI提供统一的客户端API,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。
 
这次的漏洞就出在Log4j对日志消息处理时没有限制JNDI的使用。用户远程输入的内容一般会被日志记录。而如果攻击者输入的内容包含了JNDI Lookup,则在运行日志记录操作时,JNDI Lookup会被递归调用。当该JNDI指向一个恶意服务器时,Log4j就会链接该服务器,下载并执行任意的恶意代码,形成攻击。所以该漏洞的缓解措施都关于限制JNDI在日志消息处理时的调用。

一起看看让互联网着火的“Log4j”的图8
 

对汽车网络安全的潜在影响

 
一起看看让互联网着火的“Log4j”的图9
图4:智能座舱概念图
 
Java在汽车上的应用一般是非实时和非安全强相关的,例如车载娱乐app。Java的运行效率、鲁棒性和可靠性都不如C/C++。与操作系统的契合上,C++主要在Linux和QNX,而Java则主要在Android上应用。近年来随着车载App和车载视频处理的丰富,Android和Java在汽车上的应用亦越来越多。此次安全漏洞相信对底盘和ADAS等车载软件的影响较少,但是对车载娱乐App和厂商云端后台的影响相信是举足轻重的。
 
譬如Apache Kafka就受这次的Log4j影响,而有些厂商的云端就采用了该开源流处理平台来做车队管理和车端采集数据管理系统。

一起看看让互联网着火的“Log4j”的图10

写在最后


随着网联化和智能化的发展,汽车一定会更深入地成为计算机和互联网的重要节点。无论从法律法规的要求还是消费者对信息安全的个人需求来说,汽车网络安全的发展都是势在必行的。而矛与盾永远是那么相爱相杀。跟汽车相关的网络安全漏洞在未来亦一定会层出不穷,而对于网络安全平台、漏洞披露等白客项目亦必定会如雨后春笋般涌现。很多团体和机构亦已布局已久。像阿里云安全团队、科恩实验室等虽然曝光度不算很高,但他们都是已经深耕多年的汽车网络安全技术团队。而国家车辆安全漏洞预警与分析平台也是汽车网络安全深化发展,全方位完善体系建设的重要体现。
 
一起看看让互联网着火的“Log4j”的图11
图5:国家智能网联汽车创新中心网站的车联网安全态势分析截图
 
对于个人而言,汽车网络安全工程师无疑大有可为。你知道这个世界上骇客的失业率吗?答案是零!没有一个网络安全技术人员找不到工作!而精通计算机、网络技术和汽车技术的复合型人才更是少之又少,相信这类人才会是汽车行业最吃香的岗位之一。你有兴趣一起投身这个领域吗? 一起看看让互联网着火的“Log4j”的图12
 
参考来源:

1. ‘The Internet Is on Fire’, 
A vulnerability in the Log4j logging framework 

has security teams scrambling to put in a fix. 

https://www.wired.com/story/log4j-flaw-hacking-internet/

2. https://dunhamweb.com/
blog/log4j-what-you-should-know-and-what-you-can-do

3. https://logging.apache.org/log4j/2.x/

4. https://index.cvvd.org.cn/

默认 最新
当前暂无评论,小编等你评论哦!
点赞 评论 收藏
关注