你每天都用的软件里,不久前还藏着能偷走密码的“核弹级”漏洞

作者: 索菲·布什威克(Sophie Bushwick)

来源: 环球科学

发布日期: 2022-01-10

Log4J软件漏洞被发现,这是一个严重的安全漏洞,允许黑客远程操控他人电脑。该漏洞影响广泛,涉及多个大型公司和政府机构。Apache软件基金会已发布多次修复,但影响可能仍未完全消除。此次事件揭示了开源软件的困境和互联网行业的供应链安全问题。

想象一下,如果有个建筑工程师突然发现,我们盖楼用的钉子随时都会断裂,而几乎每栋楼都使用了这样的钉子时,会是怎样的场面?在过去的一个月里,软件行业就经历了一场这样的危机。2021年11月24日,Apache软件基金会收到了一封邮件,发件人是阿里云安全团队的程序员Chen Zhaojun。他在邮件中指出,由Apache维护的一个软件存在重大的安全漏洞,黑客可以利用这个漏洞,对他人的电脑进行远程操控。

这个软件是Log4J,它是一个用于记录日志的JAVA库。因为其开源的性质,Log4J遍布整个软件行业,被广泛用于记录用户名、密码和信用卡交易等细节。所以苹果iCloud、亚马逊云服务、Minecraft(我的世界)游戏、推特等商业公司,以及一些政府机构,全部受到了这个之后被命名为“Log4Shell”的漏洞的影响。因此,12月9日Log4Shell面向社会公布时,整个软件行业都为之震动。

由于危害大且波及范围广,Apache对这个漏洞给出了10分的CVSS(通用漏洞评分系统)评分,而10分是表示“严重”的最高分。自发现该漏洞以来,网络安全工程师争分夺秒地保护应用程序、服务、基础设施和物联网设备,但犯罪分子已经在利用这个漏洞了。部分Minecraft用户受到了勒索软件攻击,微软检测到了下载和运行“挖矿”软件、窃取身份信息等行为,比利时国防部因受到攻击而关闭了部分计算机网络。

“对网络罪犯来说,这就像是提前到来的圣诞节礼物。他们没有底线,限制他们的只有他们自己的技术水平。”前白宫首席信息官、网络安全咨询公司Fortalice Solutions的首席执行官特蕾莎·佩顿(Theresa Payton)说。

在Log4J维护者团队几乎无偿的紧急工作下,Apache于2021年12月6日针对Log4Shell进行了修复,但没能完全解决问题,又在12月13日、17日和27日分别针对新发现的问题发布了新版本。但是,这场风波造成的影响很可能仍未平息。Log4J作为互联网基础设施的一个关键组成部分,一些数百万乃至数十亿体量的公司依赖它获利,然而它只是一个志愿者建立的,并且很大程度上是免费运行的项目。

如果进展顺利,开源就是合作的胜利;而一旦出了问题,就会产生深远的危险。这次的危机揭示了开源软件的困境,暴露了整个互联网行业的供应链安全问题。去年12月15日,《科学美国人》发布了对佩顿的采访,她谈到了Log4J的功能、黑客将如何利用漏洞Log4Shell、以及如何修复这个漏洞。以下是经过编辑的采访文字记录。Log4J是什么?它被用在什么地方?技术和网络安全团队需要“日志”功能。

日志可以用于审计追踪(audit trails),比如出于监管考虑,在发生勒索软件事件时进行取证。而Log4J就是一个用于记录日志的Java程序。它可以记录任何数量的、任何类型的事件,比如某人使用某种类型的信用卡,或某人今天登录了,等等。但是,Log4J存在一个严重的安全漏洞。这个漏洞的存在,使得有人可以向日志中添加指令,让日志执行任何操作。

研究人员在12月初发现了这个漏洞(Apache得知这个漏洞的时间是11月24日,但是向公众公开在12月9日),谢天谢地。大体来说,这个漏洞允许攻击者在未经身份验证的情况下,通过远程代码访问服务器。他们可以发送指令、执行指令,并且可能完全不被发现。已经有攻击者利用Log4J的漏洞,在机器的主人不知情的情况下,给一些机器安装了挖掘加密货币的恶意软件。

回想一下物联网被Mirai僵尸网络占领的经历,Mirai僵尸网络看起来也在试图利用物联网。网络罪犯还可以利用这个漏洞做什么?网络罪犯可以在日志中添加一条指令:“当记录用户的登录凭据时,也将它们发送到我这里。”这样一来他们就能获取用户的登录凭据。他们可以创建个性化的指令,对日志进行操控。日志记录着几乎所有的内容,比如登录信息、信用卡信息、支付信息。所以就看开发人员决定如何利用日志的特性。

问题是,对日志有没有保护?是否有任何方式监控日志本身是否有异常行为?如果一个组织不去主动寻找异常行为,他们就不会注意到用户名和密码不仅被记录在日志中,也被发送到了其他地方。在安全团队争分夺秒地寻找漏洞、打补丁、修复、观察、记录并试图解决问题的时候,网络罪犯则利用这些漏洞,分享信息并制造不同的攻击。很有可能会出现一种犯罪软件服务,供网络罪犯和非技术人员使用。

对于不从事网络安全工作,但日常使用应用程序和服务的普通人来说,这意味着什么?普通人的身份可能会被盗窃。你尝试登录某个网站的时候,可能会发现他们暂停服务了,那他们可能正在处理这个问题。比如你可能无法联系政府机构核实退款或缴税,因为有人通过Log4J的漏洞损害了这些功能。现在还很难说事态会如何发展,因为我们尚未完全理解这个问题。

这个漏洞可能会影响很长时间,并不是说“周末打好所有补丁,然后我们就可以回家过圣诞节了”。如何化解这次的危机?类比一下,房屋、大厦、桥梁等建筑物上都用到了某种钉子。如果有人说:“我们刚刚意识到,这种钉子存在弱点,它们可能会随时失效”,不过建筑使用的钉子有很多种,我们必须弄清楚“这种”钉子都用在了哪里,并要求建筑公司在钉子失效之前找到并更换它们。

大公司和大量互联网基础设施现在必须在他们的系统中排查Log4J。由于代码通常没有一幅详细的蓝图,所以要想准确地知道其中都在哪里用到了某个日志功能,无异于大海捞针。通常,当我们发现安全漏洞时,网络安全工程师可以全权负责修复,但这次的漏洞不同,它是整个供应链的问题:很多人在代码中使用了开源的、第三方提供的和离岸开发的系统,而所有的系统都有可能使用了Log4J。

以某种物联网设备为例(如Alexa或Google Home),它的供应链可能涉及10到50至60家不同的公司,分别负责固件、操作系统和应用程序的开发。所以仅仅为一款产品修复漏洞,就可能是一项极其艰巨的任务。我们能从这次的漏洞中学到什么?2020年末我们遭遇了SolarWinds的供应链事故,那时很多人觉得自己不使用SolarWinds就没事。

但事实上,只要处在一个使用了SolarWinds的生态中就存在风险,你需要向内部、离岸、近岸和外包的开发者了解他们是否使用了SolarWinds的软件生成的清单。我们通过惨痛的教训明白了,编译软件和对软件进行质量保证,是非常复杂和困难的事情,并且我们并非每次都能跟进其中的重要细节。我们可以从这些事故中学到的是,我们的供应链存在、并且会继续存在弱点,所以这不会是最后一次出问题。

当问题出现时,你需要知道该把哪些人召集到一起,评估这个问题对你们来说是非同小可的,还是无足轻重的。从业者还需要思考的是,你们建立了哪些自动防故障装置?例如,如果攻击者在你打补丁之前就利用了你的日志和日志中的信息,你能发现他们的踪迹吗?这些都是我学到的教训,而且都是艰难的教训。我是说,如果这些问题容易解决,企业和政府早就解决了,不过纸上谈兵容易,在实际操作中却很难。

UUID: 401ac3d8-4378-40b6-9dbf-ad2f5586b7b6

原始文件名: /home/andie/dev/tudou/annot/AI语料库-20240917-V2/AI语料库/环球科学公众号-pdf2txt/2022/2022-01-10_你每天都用的软件里,不久前还藏着能偷走密码的“核弹级”漏洞.txt

是否为广告: 否

处理费用: 0.0070 元