2026 年 1 月底,安全研究人员 Steven Stobo(WeRAI / Haven AI)披露了一起极为罕见的供应链安全事件:Linux 发行版 MakuluLinux 在其官方安装镜像中内置了一个持久性后门,连接至开发者自有的基础设施。这一发现打破了操作系统发行版理应可信的基本假设,也揭示了当软件供应链的信任链断裂时,用户可能面临的系统性风险。
事件定级与核心特征
此事件之所以引发安全社区的高度关注,源于其与传统恶意软件攻击存在本质区别。绝大多数后门和木马由外部攻击者通过漏洞利用或社会工程植入,而 MakuluLinux 的后门由项目创始人 Jacque Montague Raymer 亲手嵌入 installer 脚本,直接编译进操作系统镜像。这意味着攻击者并非外部威胁,而是软件的直接提供者。事件被定级为 CRITICAL(严重),因为它影响所有 MakuluLinux 用户,且无法通过常规的安全更新或补丁修复 —— 漏洞本身就是产品的一部分。
从技术角度看,该后门具备三个关键特征。首先是持久化设计,后门在安装过程中被写入系统路径,并通过用户级 autostart 机制实现开机自启,即使重装应用程序也难以彻底清除。其次是双协议复用,同一端口(2006)同时承载 HTTPS API 通信和 raw TCP socket 后门连接,前者服务于 AI 功能,后者提供远程指令执行能力。第三是基础设施直连,命令控制服务器 IP(217.77.8.210)与开发者注册的域名 makulu.online 解析至同一地址,形成完整的所有权证据链。
技术证据链详解
WeRAI 安全团队通过逆向工程完整还原了后门的植入路径,整个过程可分为五个明确的步骤,每一步都有对应的文件路径和系统调用证据。
第一步发生在安装阶段。操作系统的安装程序 install-script.bin 会将位于 /usr/share/MakuluSetup/files/check.bin 的文件复制到系统路径 /usr/bin/check.bin。该二进制文件体积约 9.5MB,已被 strip 去除符号表,增加了静态分析的难度。安装日志中如果出现 "One or more critical final file operations (startup/check.bin) failed" 错误,表明该组件被视为安装流程的关键依赖,而非可选组件。
第二步实现持久化驻留。安装脚本会在用户主目录~/.config/autostart/ 下创建名为 System-Health-Check.desktop 的自启动文件。该文件伪装成系统健康检查服务,实际上负责在用户登录后 30 秒启动 check.bin。30 秒的延迟设计可能是为了避开安装后立即触发的安全扫描,或等待网络初始化完成后再建立连接。
第三步建立后门通信。check.bin 作为 stripped ELF 可执行文件,会主动向 217.77.8.210:2006 发起 TCP 长连接。使用 raw TCP 而非 HTTPS 协议,可能是为了规避 TLS 解密检测,同时降低通信开销。该连接保持持久性,即使网络短暂中断也会自动重连。
第四步完成基础设施关联。安全研究人员通过 DNS 查询确认,makulu.online 域名解析至 217.77.8.210,与 C2 服务器地址完全一致。WHOIS 信息显示该域名注册人为 Da Nang(越南岘港)的 Jacque Montague Raymer,地理位置与开发者的公开信息吻合。此外还发现 makululinux.eu(207.180.233.66)和 makululinux.com(64.20.42.243)两个备用域名,形成多入口的弹性架构。
第五步验证关键身份。服务器端口映射分析显示,同一 IP 上的不同端口承载差异化的服务:2006 端口同时服务于 AI 功能的 HTTPS API 和 check.bin 的 raw TCP 后门;7005 端口用于 verification.bin 的许可证验证;6003 端口处理 text-image 等 AI 服务的通信。这种设计将后门通信伪装在正常的 AI 功能流量中,增加检测难度。
基础设施与端口映射
通过对该 VPS 的端口扫描和安全分析,安全研究人员整理出完整的服务端口映射表,揭示了开发者基础设施的多重用途。
| 端口 | 协议 | 服务类型 | 调用方 |
|---|---|---|---|
| 2006 | TCP Raw | C2 后门通信 | check.bin |
| 2006 | HTTPS | AI 聊天 / 问答 API | calculator, weather, editor, frames, image-gen |
| 4002 | HTTPS | 图像处理服务 | image2image |
| 6003 | HTTPS | AI 聊天 API | text-image, video, video-gen, log, pie, update-manager |
| 6004 | HTTP | AI 问答 API | song |
| 7005 | HTTP | 许可证验证 | verification.bin, frames, editor |
从架构角度分析,这台位于德国 Contabo GmbH 托管的 VPS 同时承担三个角色:作为所有 AI 功能请求的代理网关(正向收益来源)、作为后门指令的下发通道(控制平面)、作为用户数据的汇聚点(数据收集)。该设计的精妙之处在于,即使后门被发现,开发者也可以声称 2006 端口的 HTTPS 服务是正常的 AI API,而 raw TCP 连接则可以推脱为 "协议兼容性问题"。
持久化与权限提升机制
该后门的持久化设计体现了对 Linux 系统启动流程的深入理解。通过在用户级 autostart 目录放置 .desktop 文件,后门实现了普通用户权限下的启动,无需系统级服务配置,从而规避了 systemd 和服务管理的审查。这种 "用户态持久化" 虽然重启后需要用户登录才能触发,但考虑到 MakuluLinux 作为桌面操作系统的定位,这一条件在绝大多数使用场景中都会满足。
更值得关注的是其更新机制中暴露的权限提升风险。系统内置的更新脚本每 5 分钟从服务器下载一次更新包,整个过程使用明文 HTTP 传输,且没有任何代码签名验证。下载的脚本会被直接 chmod +x 并使用 sudo 权限执行。这意味着攻击者(在此场景中即开发者)可以在任何时间向所有用户推送任意二进制文件,获得 root 级别的代码执行权限。该机制被描述为 "total control" 级别,因为只要网络连通,攻击者就可以在分钟级别内完成全网部署。
verification.bin 组件则负责许可证验证,它通过 HTTP 协议连接至 makulu.online:7005。由于缺乏加密和身份验证,任何中间人攻击者都可以拦截、篡改或注入响应内容。结合前述的明文更新机制,这一组合形成了完整的远程代码执行路径。
数据收集与商业化模型
从基础设施设计可以推断,MakuluLinux 采用了 "免费操作系统 + AI 即服务" 的商业模式,而所有 AI 功能请求都经过开发者服务器这一事实,为数据收集创造了天然条件。
weather.bin 在调用天气 API 前会先访问 ipinfo.io 和 ipapi.co 进行用户地理定位,这一步骤将用户 IP 与位置信息关联。虽然这可能是为了提供本地化服务,但也意味着开发者掌握了每台机器的地理位置数据。image2image.bin 则维护用户会话状态,使得同一用户的多次图像生成请求可以被串联分析。理论上,所有通过 AI 功能发送的文本提示词、生成的图像和视频、聊天对话内容,都可以被服务器端记录。
从商业角度看,这形成了一个三层变现体系。表层是免费操作系统带来的用户规模增长,开发者通过整合 OpenAI、HuggingFace 等第三方 AI 服务构建差异化卖点。中层是 AI 功能的代理收益,用户每调用一次 AI 接口,开发者从中获取 API 转发的价差或返利。深层则是数据资产价值,用户的地理位置、使用习惯、生成内容汇聚成数据湖,可用于模型训练或行为分析。
检测与清除方案
对于已安装 MakuluLinux 的用户,安全研究人员提供了分步骤的清除方案,涵盖进程终止、文件删除、网络阻断和系统加固四个层面。
检测阶段首先需要确认后门是否存在。执行 pgrep -f check.bin 如果返回进程 ID,说明系统已被感染。其次检查自启动配置,ls ~/.config/autostart/ 应列出 System-Health-Check.desktop 文件。最后验证网络连接,netstat -tnp | grep 217.77.8.210 如有 Established 状态的连接,则后门正在活跃通信。
清除阶段的第一步是终止进程:sudo kill $(pgrep -f check.bin)。第二步删除二进制文件:sudo rm -f /usr/bin/check.bin /usr/share/MakuluSetup/files/check.bin。第三步移除自启动配置:rm -f ~/.config/autostart/System-Health-Check.desktop。第四步阻断网络连接,通过 iptables 添加出站规则:sudo iptables -A OUTPUT -d 217.77.8.210 -j DROP,同时修改 hosts 文件将域名指向无效地址。
加固阶段需要禁用危险的更新机制:sudo chmod -x /usr/share/MakuluSetup/check-patchlist /usr/share/MakuluSetup/update-check /usr/share/MakuluSetup/quick-patch。由于更新脚本以 sudo 权限执行且缺乏签名验证,禁用是防止进一步攻击的必要措施。完成清除后,建议用户更改所有密码、重新生成 SSH 密钥,并迁移至可信的 Linux 发行版。
供应链安全启示
MakuluLinux 事件为开源供应链安全提供了极端但真实的案例。传统观点认为,使用开源软件可以避免 "厂商后门",因为代码透明可审计。然而 MakuluLinux 的案例表明,即使用户愿意阅读源码,从数百个软件包和数千个脚本中识别出精心伪装的恶意逻辑,在实际操作中几乎不可能。该项目的代码库包含数十个编译后的 Python 二进制文件(40+ 个 AI 相关工具),它们未经源码分发,用户无法进行静态审计。
从防御角度,这一事件凸显了几个关键原则。首先是最小信任原则,用户应假设任何软件 —— 即使是来自个人开发者的开源项目 —— 都可能存在恶意行为,必要时在隔离环境中运行。其次是网络监控的重要性,在终端部署网络流量分析工具,可以检测到向可疑 IP(如 217.77.8.210)的异常出站连接。第三是供应链完整性验证,软件分发应使用 HTTPS 传输、代码签名验证,GPG 签名是防止中间人注入的基础保障。第四是权限最小化原则,即使后门已植入,如果更新脚本不以 root 权限执行,其危害也可控。
对于 Linux 发行版社区而言,MakuluLinux 事件提出了一个棘手的问题:当发行版本身不可信时,用户应该如何保护自己?一种可能的答案是采用 "Human Router" 架构,即在每次执行敏感操作前引入人工审批环节,确保即使系统被入侵,攻击者也无法自动执行命令。这种设计虽然在便利性上有所牺牲,但在面对供应链级别的威胁时,提供了最后的防线。
资料来源
本文核心事实与参数引自 WeRAI 安全团队的披露报告《Security Disclosure: MakuluLinux Backdoor》,该报告由 Steven Stobo 于 2026 年 1 月 28 日发布,详细描述了证据链、逆向工程结果和基础设施分析。