“前缀调换”恐慌:复杂的“Jackson”冒名包已潜入Maven中央仓库
相比于npm的“狂野西部”,长期以来被视为堡垒的Java生态系统,已被一种新颖且高度复杂的供应链攻击所攻破。Aikido Security的一份新报告披露,在Maven Central上发现了一个恶意软件包,它通过一种巧妙的“前缀调换”手法伪装成无处不在的Jackson JSON库,以愚弄开发者。
这个被识别为 org.fasterxml.jackson.core/jackson-databind 的软件包,是合法库的“分身”。通过将合法的 com.fasterxml 命名空间替换为攻击者控制的 org.fasterxml,威胁行为者布下了一个肉眼几乎无法区分的陷阱。
Jackson库是现代Java开发的基石,使其成为一个高价值目标。攻击者通过几乎完美地镜像真实库的命名约定来利用这一点。
“这种域名抢注在两层起作用:恶意软件包使用 org.fasterxml.jackson.core 命名空间,而合法的Jackson库则在 com.fasterxml.jackson.core 下发布。”
这种欺骗延伸到了命令与控制(C2)基础设施。正如软件包将 .com 替换为 .org 一样,恶意软件是与 fasterxml.org 通信,而不是合法的 fasterxml.com。正如报告所指出的,“从 .com 到 .org 的调换足够微妙,足以通过随意的检查,但完全由攻击者控制。”
与其他软件仓库中常见的脚本小子垃圾软件不同,这种恶意软件是为规避检测和持久化而设计的。该软件包包含一个多阶段载荷,能够传递特定于平台的可执行文件。
“攻击者不遗余力地构建了一个多阶段载荷,包括加密的配置字符串、一个传递平台特定可执行文件的远程命令与控制服务器,以及旨在阻碍分析的多层混淆。”
研究人员强调,此类攻击在这个特定生态系统中非常罕见。“这相当新颖,是我们首次在Maven Central检测到如此复杂的恶意软件。”
这一事件凸显了Java反向域名命名惯例安全逻辑中的一个明显漏洞。虽然该系统旨在防止命名冲突,但目前缺乏机制来标记那些明显调换了顶级域名(TLD)的冒名包。
“这直接类似于域名抢注(fasterxml.com 与 fasterxml.org),但Maven Central目前似乎没有任何检测机制。”
尽管恶意软件包在报告后1.5小时内被移除,但这种技术本身仍然是一个强大的威胁。“前缀调换”执行起来只需要最低限度的复杂技术,但对于针对其他主要库(如Google或Apache)的攻击者来说,却能提供高额的潜在回报。
“这是一种简单的攻击,我们预计会出现模仿者……既然这种方法已被记录在案,我们预计其他攻击者会尝试对其他高价值库进行类似的前缀调换。”
报告最后紧急呼吁Maven Central实施“前缀相似性检测”,以标记那些模仿高价值命名空间的新软件包。“实施防御措施的时间窗口就是现在,在这成为一种普遍模式之前。”