返回资讯中心
外部精选
软件工程
#开发者实时流

用户在 NixOS 笔记本上发现伪装成 Nix-update 服务的后门

来源标题:Found a backdoor on my NixOS laptop disguised as a "Nix-update" service?

一名用户在 NixOS 笔记本的 ~/.local/share/nix 目录下发现名为 nix-update 的可疑文件,疑似伪装成更新服务的后门,且 ClamAV 扫描未将其识别为病毒。该文件是普通文件而非指向 Nix Store 的符号链接,来源尚未查明。

Hacker News 最新srid2026/11/3 · 4 天前12 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

顺便说一句,ClamAV 没能识别出来:

clamscan ~/.local/share/nix
Loading: 19s, ETA: 0s [========================>] 3.63M/3.63M sigs
Compiling: 3s, ETA: 0s [========================>] 41/41 tasks
/home/yueyinqiu/.local/share/nix/trusted-settings.json: OK
/home/yueyinqiu/.local/share/nix/nix-update: OK
----------- SCAN SUMMARY -----------
Known viruses: 3628193
Engine version: 1.5.4
Scanned directories: 1
Scanned files: 2
Infected files: 0
Data scanned: 13.12 MiB
Data read: 11.73 MiB (ratio 1.12:1)
Time: 24.354 sec (0 m 24 s)
Start Date: 2026:10:27 17:53:00
End Date: 2026:10:27 17:53:24

NotAShelf 2026年10月27日上午10:55 3 比起它是什么,我更关心你是从哪儿弄来的。你有很多第三方 flake 输入/channel/pin 吗?也许是 NUR? 把它丢进一台没有联网的虚拟机里,看看它会尝试连接哪里!

是的,最关键的一点是它的来源。但我目前还没能追溯出来。

首先,它是一个普通文件,而不是指向 Nix Store 的符号链接。

我让 agent 整理了一份完整的时间线(当然,我无法确定它是否准确;比如后门可能在这个时间点已经自我删除并更新过了):

22:04:03 二进制文件创建(birth) 22:05:38 二进制文件写入完成(mtime——12MB 用了 95 秒,看起来像是下载) 22:05:54 定时器创建 22:06:02 服务创建 22:06:43 chmod +x 22:07:25 systemd daemon-reload(用户级,我不知道这是巧合还是后门程序主动触发的;根据日志,这是 fwupd.service 请求的一次 reload。按我个人的判断,是后门程序故意利用了 fwupd 服务的 reload 来隐藏自己。) 22:07:33 首次启动

不过,这发生在 10 月 22 日(所有提到的时间都是 UTC+8,与 git 仓库时间一致)。

我查了 NixOS 的记录,我那天并没有执行任何 switch 操作:

[yueyinqiu@erthane:~]$ nixos-rebuild list-generations | grep 10-24 -C 2
70 2026-10-27 17:46:20 26.11.20261020.02c087f 6.18.57 Unknown [] False
69 2026-10-25 18:11:03 26.11.20261020.02c087f 6.18.57 Unknown [] False
68 2026-10-24 15:04:14 26.11.20261020.02c087f 6.18.57 Unknown [] False
67 2026-10-24 14:19:46 26.11.20261010.6510408 6.18.55 Unknown [] False
66 2026-10-11 16:26:13 26.11.20261010.6510408 6.18.55 Unknown [] False
65 2026-10-11 16:07:55 26.11.20260919.20b1ddd Unknown Unknown [] False

比较可疑的那个 home-manager generation 已经被垃圾回收了。但根据我的 git 历史,我那天(甚至前几天)都没有修改 home-manager 配置,所以没有理由执行 home-manager switch 或相关操作。

我的配置在这里(很抱歉我没有保留详细的 Git 历史;如果这给排查带来麻烦,抱歉): https://github.com/yueyinqiu/NixosErthane https://github.com/yueyinqiu/HomeAtErthane

基于 10 月 17 日的 home-manager 配置和 10 月 11 日的 NixOS 配置。导入的内容包括:

# 其实不太常用
github:Beriholic/nix-wpsoffice-cn # 我用它来导入一些中文字体;实际上国内不少人用这个(?)
github:denful/import-tree
github:epireyn/niri-flake # 这不是 sodiboo/niri-flake,因为我需要更新版本的 Niri
# 比较知名的
github:AshleyYakeley/NixVirt/v0.6.0
github:fufexan/nix-gaming
github:in-a-dil-emma/declarative-flatpak/latest
github:nix-community/NUR
github:notashelf/nvf
# 可信的(?)
github:NixOS/nixpkgs/nixos-unstable
github:nix-community/home-manager/master
# 以下是我开发或参与的项目,应该可信(除非被打包的目标本身有问题):
github:yueyinqiu/NixDaemonProxy-Nix
github:yueyinqiu/MindustryBinNix
github:yueyinqiu/SubNix
github:yueyinqiu/Snavi-Nix
github:yueyinqiu/BaidunetdiskNix
github:MihomoManager/HomeManagerMihomoManager
github:bitbloxhub/nix-airgap

所以……它们看起来都还算安全,相对而言。NUR 确实被包含了。不过并没有实际引用任何 NUR 包(我以前在 NUR 里发布过一些自己的包,所以引用了它,但后来我直接在独立的 GitHub 仓库里发布了;只是没有把这条 input 删掉)。

根据这些线索,如果后门确实是在 10 月 22 日引入的,我更倾向于相信它是通过某种方式从外部进入的,而不是来自我的 home-manager 或 NixOS 配置。

但看起来我没有好的办法进一步追溯了……也许这就是我发帖求助的原因。也许有人遇到过同样的情况?或者,我接下来该怎么做?启用 auditd、删除文件,然后看它会不会重新出现?

我在 strace 下运行过它:https://termbin.com/507v

agent 整理了以下关键信息:

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →