下载量 5.6 万的 NPM 包被曝窃取 WhatsApp 消息
一个名为 “lotusbail” 的 NPM 包,伪装成合法的 WhatsApp API 库,尽管功能正常且下载量超过 5.6 万次,但其内部集成了高级恶意代码。它通过窃取用户的认证信息、消息和联系人,并利用自定义加密技术将数据秘密传回攻击者。更危险的是,它植入了一个持久后门,即使在卸载该包后,攻击者仍能持续访问受害者的 WhatsApp 账户。此事件凸显了供应链攻击的隐蔽性和复杂性,表明传统的静态安全检测已不足以应对,必须转向行为分析来识别这类威胁。
伪装成正常工具的恶意软件
- 这个名为 lotusbail 的 npm 包,自称是一个可用的 WhatsApp Web API 库。
- 它基于合法的
@whiskeysockets/baileys包二次开发,因此 功能完全正常,这使得开发者很容易在不怀疑的情况下安装它。 - 该包在 npm 平台上已存在 6 个月,下载量超过 5.6 万次。
功能正常的恶意软件最容易被忽视。开发者通常只会检查导致程序崩溃的代码,而不会怀疑那些“能用”的代码。
数据窃取与隐蔽传输
这个包通过包装合法的 WebSocket 客户端来拦截所有通信。当用户认证或收发消息时,恶意代码会先一步截获所有数据。
窃取内容包括:
- WhatsApp 账户的 认证令牌和会话密钥。
- 完整的消息历史(包括过去和现在)。
- 包含电话号码的完整联系人列表。
- 所有媒体文件和文档。
隐蔽传输手段:
- 恶意软件没有直接发送明文数据,而是内置了一套 完整的自定义 RSA 加密实现。
- 这样做的唯一目的就是加密窃取来的数据,以 躲避网络监控工具的检测。
- 接收数据的服务器地址经过多层混淆(Unicode 变量、LZString 压缩、Base-91 编码和 AES 加密),无法被直接发现。
难以清除的持久后门
这是该恶意软件最危险的部分。它利用了 WhatsApp 的设备配对功能,为攻击者创建了一个永久性的后门。
- 攻击者将一个 硬编码的配对码 隐藏在包中。
- 当用户使用这个库进行身份验证时,不仅连接了自己的应用,也同时 将攻击者的设备链接到了自己的 WhatsApp 账户。
- 这意味着攻击者获得了对账户的 完整和持久的访问权限,可以阅读所有消息、以你的名义发送消息、下载媒体文件。
关键在于: 即使你卸载了这个 npm 包,攻击者的设备 仍然与你的 WhatsApp 账户保持链接。除非用户手动在 WhatsApp 设置中取消所有设备的链接,否则后门将一直存在。
高级的反分析技术
为了防止被安全研究人员分析,这个包内置了多种反调试机制。
- 包含了 27 个无限循环陷阱,一旦检测到调试工具就会使程序卡死。
- 这些陷阱会检查调试器、进程参数,并识别沙盒环境,极大地增加了动态分析的难度。
对软件供应链安全的启示
“lotusbail” 事件表明,供应链攻击正变得越来越精密和隐蔽。
- 传统的安全工具难以奏效。静态分析会认为它是正常的 WhatsApp 代码,而信誉系统会因为其高下载量而信任它。
- 真正的威胁隐藏在“代码能用”和“代码只做它声称会做的事”之间的灰色地带。
- 识别这类高级攻击需要依赖 行为分析技术,即在运行时监控软件包的实际行为。一个 WhatsApp 库去实现自定义加密,并包含大量反调试代码,这些都是强烈的危险信号。