2021年12月9日,互联网爆出了Apache Log4j2远程可执行漏洞(CVE-2021-44228),此漏洞又被称为Log4shell。

Apache Log4j是一个基于Java的开源日志项目,通过使用Log4j可以将相关信息写入文件和数据库,可以记录应用的日志信息,便于日后溯源及调试错误。

Log4j2是log4j的升级版,Log4j2包含基于LMAX Disruptor、高性能的异步处理框架的日志记录项目。在多线程场景中,异步日志记录的吞吐量比Log4j1.x和Logback高18倍,延迟低几个数量级,所以其出色的性能用于多个开源框架中。

Log4shell漏洞及影响

Log4shell漏洞是由于Log4j2某些功能存在递归解析功能,漏洞通过JNDI(Java Naming and Directory Interface,Java命名和目录接口)注入恶意代码来完成攻击,具体的操作方式有RMI和LDAP等。其攻击流程如图1所示。

图1 Log4shell攻击流程

攻击者可直接构造恶意请求,触发远程代码执行漏洞。从攻击者的角度来看,此漏洞无需特殊配置,利用成本低,操作简单。目前大量攻击者利用远程运行构造的代码并进行混淆,企图绕过WAF等安全设备,获取对方的所有数据,从而植入恶意代码、挖矿木马、删除或加密文件等进行勒索。根据我们的网络数据监测,最早的攻击于2021年12月9日23:37,之后大量黑客利用此漏洞攻击尝试。最近,我们检测到大量涉及加密货币挖掘的Log4j漏洞的攻击。

Log4j2大量应用于java开发,全球使用log4j2的组件就有6910个,前500个组件覆盖了92485个框架,包括但不限于:Apache Solr、Apache Druid、Apache Struts2、Apache Flink、Flume、Dubbo、Redis、Logstash、ElasticSearch、Kafka、Ghidra、Minecraft、Apache Hive、DataX、Streaming、Dolphin Scheduler、Storm、Spring 等。此漏洞暴露了开源软件供应链安全的脆弱性:开源组件降低了开发成本,是软件供应链生态中的重要一环,而其中一个环节出现问题就会造成整个软件或系统的安全问题。

供应链安全威胁

目前,我国高校信息系统大多都是由第三方公司甚至是教师、学生个人开发,其供应链环节复杂、暴露面多,高校信息系统生命周期各个环节都存在供应链的安全风险。高校信息系统供应链包括的角色、环节众多,结构复杂,可能会受到来自供应链各个节点和流通过程中各个环节的安全威胁(如图2所示)。

图2 高校信息系统供应链安全环节模型

开发阶段

开源软件应用广泛,大量信息系统的开发利用开源代码、工具或组件。目前,已有超过80%的商业软件是在开源软件的基础上二次开发而成的。这种开发模式,大大减少了开发成本,缩短了开发周期,势必会带来大量的安全问题:越来越多的开发者没有经过严格的检查、审计直接采用相关开源代码,这类代码一旦出现安全问题,势必会传递到下游的软件产品,必将造成广泛、严重的影响。此类问题,波及面广、难以第一时间修复,Log4shell漏洞就是一个很好的例子。

更为严重的是,开源软件存在被别有用心的攻击者直接植入恶意代码的风险。其次,开发工具污染时有发生,XcodeGhost事件曾导致国内858个App受到污染,其中不乏手机银行、主流移动互联网应用等。最后,软件开发企业缺乏安全开发意识,没有全生命周期的代码安全管理,代码安全性较差。

系统交付阶段

部分开发企业网络安全意识淡漠,相关文档、配置文件等大量存储在未经加固的服务器上,极易造成实施方案、密码、密钥等泄漏问题。另外,厂商在交付系统时,对于相关操作系统、服务及组件等进行默认安装,未进行极限加固,配置错误、策略失误,甚至存在空密码、弱密码等情况;第三,在交付阶段,安装软件来源不明,如:操作系统、数据库等被植入了恶意代码,造成系统带病运行。更为严重的是厂商对测试环境或开发环境管控不严,造成源码泄露、真实系统配置信息甚至用户部分真实数据的泄露。

运维使用阶段

高校信息系统大多是由开发企业进行运维,部分企业违规运维、违规操作。首先,运维过程中将用户系统信息明文存储在github代码仓库、邮件、网盘、个人终端及公司服务器中,甚至某些单位建立运维系统暴露在互联网中,此类信息极易被获取。

同时,当相关系统被攻破时,势必会造成用户重要信息的泄露。其次,厂商将运维账户外借,在远程运维过程中无管控措施。第三,部分厂商在版本迭代中将测试系统与生产系统设置信任关系,造成未经验证对生产系统进行访问。

攻击者可能会利用供应链各个节点、环节的安全隐患,从上游、中间过程、下游等方面对目标进行信息收集、漏洞分析、攻击利用等行为。攻击者一旦对供应链的任意环节进行攻击,都会引起连锁反应,造成整个信息系统的安全威胁,严重危及高校重要信息系统的安全。

供应链安全建议

针对供应链的安全问题,国家陆续出台了相关法律、制度,例如《网络安全审查办法》《关键信息基础设施安全保护条例》,建立完善供应链安全保障体系。高校作为用户应加强其信息系统供应链的安全管理,可从以下几个部分入手:

加强信息系统的安全准入

在软硬件采购招标过程中加入更全面的网络安全要求;增加软硬件产品验收、入网等环节的安全检查。高校信息系统应从系统设计阶段强化安全构架及安全措施,系统上线前开展源代码审计及渗透测试工作,将相关漏洞消灭在萌芽阶段,做到防护端口前移。

加强对软件开发企业的管理

高校应将软件开发企业作为供应链管理的重要组成部分,在安全准入的基础上对相关厂商代码审计、安全渗透情况综合研判。此外,应对准入漏洞及日常漏洞的修复速度和修复率进行考核,采取安全质保金等方法倒逼开发企业积极提高企业网络安全水平,加强安全防护能力,制定安全开发、测试、部署及运维规范,推动SecDevOps等先进方法成为软件安全开发的通用实践。

加强信息系统资产管理

高校信息化主管部门或网络中心要建立信息系统资产台账,包括但不限于软件供应商、开发框架、系统组件、中间件、数据库、操作系统及其具体版本等。要按照最小化服务的原则采取白名单的方式开放必要的IP及端口,并采取必要的隔离措施。高校在加强资产管理的同时,还要注意清理老旧系统并关停下线。

加强漏洞情报和紧急响应

在明确其供应链资产的基础上,加强漏洞情报工作,争取在第一时间获取相关开源软件、数据库及操作系统的漏洞与本单位的信息资产相匹配,从而快速进行漏洞修补、防护设备固件规则升级等工作。同时,高校要按照国家有关法律、法规及技术标准要求,强化供应链安全事件的响应、处置、恢复以及事件上报等环节的规范要求。

加强信息系统安全运维

高校信息化运维部门须对软件厂商工作人员及相关系统的运维人员定期开展教育和培训,加强其安全意识,并进行考核以提高其安全水平。同时,要加强信息系统的安全运维,对调试、运维等进行有效约束和管理,特别是对远程运维人员要加强VPN的安全防护,全面推行双因素认证、强制堡垒机双因素登录运维,采取多种安全监控方法对其操作进行监测、审计、跟踪,防止安全问题的产生。

目前,供应链安全问题日趋严重,极大地威胁着高校信息系统及整个校园网的安全。供应链环节给高校网络安全防护带来了更高的要求,相关环节应该协同解决供应链安全防护问题。在供应链环节的安全防护上,厂商、用户及运维单位应“齐抓共管”,以提高整个环节的安全度,从而确保高校信息系统的稳定安全运行。

作者:辛毅、孙洪磊、吴刚(哈尔滨工业大学网络与信息中心)

责编:陈永杰

声明:本文来自中国教育网络,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。