news 2026/4/16 17:13:22

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
攻击者伪造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(高级持续性威胁)组织用于远程访问、凭证窃取和网络横向移动。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 7:27:11

git stash暂存临时修改以便切换TensorFlow分支

高效切换 TensorFlow 分支:用 git stash 暂存临时修改的工程实践 在深度学习项目中,你是否遇到过这样的场景?正在 Jupyter Notebook 里调试一个基于 ResNet50 的训练脚本,代码改到一半,突然被告知要紧急验证模型在 Ten…

作者头像 李华
网站建设 2026/4/16 9:05:03

芝麻粒-TK:让能量收集变得像呼吸一样简单 [特殊字符]

芝麻粒-TK:让能量收集变得像呼吸一样简单 🌿 【免费下载链接】Sesame-TK 芝麻粒-TK 项目地址: https://gitcode.com/gh_mirrors/ses/Sesame-TK 还在为每天手动收取蚂蚁森林能量而烦恼吗?🤔 芝麻粒-TK来拯救你的时间和精力啦…

作者头像 李华
网站建设 2026/4/16 9:05:21

PyTorch安装教程GPU版NCCL通信库配置

PyTorch GPU环境与NCCL通信库配置实战指南 在现代深度学习系统中,单卡训练早已无法满足大模型对算力的需求。从BERT到LLaMA,模型参数动辄数十亿甚至上千亿,唯有通过多GPU乃至多节点分布式训练才能实现可接受的迭代速度。而在这背后&#xff…

作者头像 李华
网站建设 2026/4/16 11:06:37

AndroidAPS:开源智能胰岛素管理系统的革命性突破

AndroidAPS:开源智能胰岛素管理系统的革命性突破 【免费下载链接】AndroidAPS Opensource automated insulin delivery system (closed loop) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidAPS AndroidAPS作为一款开源自动胰岛素输注系统&#xff0c…

作者头像 李华
网站建设 2026/4/15 17:01:00

PyTorch安装教程GPU版cuDNN版本匹配指南

PyTorch GPU 安装与 cuDNN 版本匹配实战指南 在深度学习项目中,最让人头疼的往往不是模型设计或调参,而是环境配置——尤其是当你兴冲冲地准备训练一个新网络时,却卡在 ImportError: libcudart.so not found 或 cuDNN error: CUDNN_STATUS_N…

作者头像 李华
网站建设 2026/4/16 9:08:11

从GitHub获取TensorFlow 2.9镜像的最佳实践方法汇总

从GitHub获取TensorFlow 2.9镜像的最佳实践方法汇总 在深度学习项目开发中,最让人头疼的往往不是模型调参,而是环境配置——“在我机器上明明能跑”的尴尬局面屡见不鲜。尤其是当团队成员使用不同操作系统、Python 版本或依赖库冲突时,问题更…

作者头像 李华