
一场新型恶意软件攻击活动通过伪装成合法的Jackson JSON库扩展,成功入侵了Java开发者最信赖的代码仓库之一——Maven中央仓库。这个恶意软件包以org.fasterxml.jackson.core/jackson-databind命名空间发布,通过误植域名攻击(typosquatting)在Maven中央仓库发现的首批复杂恶意软件案例之一。
攻击者利用了巧妙的命名空间混淆策略:合法Jackson库使用com.fasterxml.jackson.core命名空间,而恶意版本则使用org.fasterxml.jackson.core。这种细微差别使得开发者很容易在项目中误引入有害软件包。
精心策划的攻击行动
该恶意软件活动显示出明显的精心策划特征。攻击者创建了虚假域名fasterxml.org来镜像合法的fasterxml.com,采用了与软件包命名空间相同的.com到.org替换策略。该域名注册于2025年12月17日,就在Aikido安全分析师发现威胁的八天前。这种从域名注册到部署的短暂间隔是恶意软件操作的常见模式,旨在降低早期检测和被列入黑名单的几率。

该软件包在被发现后1.5小时内即被报告给Maven中央仓库并下架,但在此之前可能已经危害了开发者系统。
Aikido分析师指出,该恶意软件采用了多层混淆技术来隐藏其真实目的。jar文件中的代码经过严重混淆,甚至试图通过提示注入技术(prompt injection)来干扰基于机器学习的分析工具。在未正确处理Unicode字符的编辑器中打开时,代码会显示大量干扰信息,使人工检查变得困难。经过仔细分析,研究团队成功解混淆了恶意代码,揭示其作为木马下载器的真实功能——连接命令控制服务器并在受感染系统上执行有害负载。
感染机制与负载投放
该恶意软件通过七阶段感染流程运作,始于开发者将恶意依赖项添加到其pom.xml文件时。一旦被包含,当Spring Boot应用启动时,该软件包会自动执行,因为Spring会扫描@Configuration类并发现JacksonSpringAutoConfiguration。恶意软件会检查ApplicationRunner.class(该文件始终存在于Spring Boot环境中),确保恶意代码无需开发者显式调用即可运行。
感染机制包括持久性检查,恶意软件会在工作目录中搜索名为.idea.pid的文件。这个文件名巧妙地混入IntelliJ IDEA项目文件中,降低了开发者发现项目结构中异常文件的可能性。随后,恶意软件通过检查System.getProperty("os.name")进行环境指纹识别,确定系统运行的是Windows、macOS还是Linux,并据此下载适合检测到的操作系统的负载。
命令控制通信通过"http[:]//m[.]fasterxml[.]org:51211/config[.]txt"进行,该地址提供AES加密的配置数据。

恶意软件使用硬编码的AES-ECB密钥(9237527890923496)解密每个支持平台的负载URL。解密后的格式遵循os|url模式,例如Windows系统的win|http[:]//103.127.243[.]82:8000/http/192he23/svchosts.exe。下载二进制文件payload.bin到系统临时目录后,恶意软件会执行该文件,同时在Unix系统上将输出重定向到/dev/null,在Windows上重定向到NUL,以抑制任何可见活动。Windows负载故意使用svchosts.exe名称(仿冒合法的svchost.exe进程)来避免检测。
通过VirusTotal对下载负载的分析证实,Linux和macOS二进制文件是Cobalt Strike信标——一种强大的渗透测试工具,常被勒索软件运营商和APT(高级持续性威胁)组织用于远程访问、凭证窃取和网络横向移动。
参考来源:
Hackers Infiltrated Maven Central Masquerading as a Legitimate Jackson JSON Library
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)



