攻击者伪造Jackson JSON库入侵Maven中央仓库

一场新型恶意软件攻击活动通过伪装成合法的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(高级持续性威胁)组织用于远程访问、凭证窃取和网络横向移动。

相关推荐
小马爱打代码6 分钟前
SpringBoot:封装 starter
java·spring boot·后端
STARSpace888819 分钟前
SpringBoot 整合个推推送
java·spring boot·后端·消息推送·个推
码农幻想梦20 分钟前
实验八 获取请求参数及域对象共享数据
java·开发语言·servlet
a努力。43 分钟前
2026 AI 编程终极套装:Claude Code + Codex + Gemini CLI + Antigravity,四位一体实战指南!
java·开发语言·人工智能·分布式·python·面试
Dylan的码园1 小时前
功能包介绍 : calendar
java·jvm·eclipse
二川bro1 小时前
Java集合类框架的基本接口有哪些?
java·开发语言·python
菜鸟233号1 小时前
力扣213 打家劫舍II java实现
java·数据结构·算法·leetcode
panzer_maus1 小时前
Redis简单介绍(3)-持久化的实现
java·redis·mybatis
毕设源码-邱学长1 小时前
【开题答辩全过程】以 民宿在线预定平台的设计与实现为例,包含答辩的问题和答案
java·eclipse
不会Android的潘潘2 小时前
受限系统环境下的 WebView 能力演进:车载平台 Web 渲染异常的根因分析与优化实践
android·java·前端·aosp