加载失败
CPU-Z 和 HWMonitor 是 CPUID 维护的 Windows 硬件识别和监控工具,很多人会在新装机或排障时第一时间下载。帖子里称 cpuid.com 的下载链接被劫持,用户被引到伪造安装器,维护者随后把站点改成只读并表示链接曾被污染约 6 小时。评论把这件事和 FileZilla、Notepad++ 等官网或下载页被攻陷的案例联系起来,讨论的重点变成“官方站点”到底还值不值得信任。于是大家开始比较 winget(Windows 的命令行包管理器)、Linux 包管理器、数字签名、reproducible builds,以及 Tripwire(文件完整性监测工具)、OSSEC(主机入侵检测/完整性监测系统)、OpenBSD security(8)(日常安全检查机制)这类完整性监测手段能在多大程度上兜底。
这次并不是 CPU-Z/HWMonitor 的安装包本体被改,而是 cpuid.com 上的下载链接被替换,用户被导向 Cloudflare R2(Cloudflare 的对象存储)里的伪装安装器。有人贴出维护者说明,称服务器本身看起来正常,但下载页面链接已被入侵,随后恢复并把站点切成只读继续排查。讨论里还把这类手法归为 watering hole attack(“水坑攻击”)或短链式 supply chain attack:攻击者只要控制官方流量入口,就能把恶意文件塞给信任官方的人。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6]
不少人认为用 winget(Windows 的命令行包管理器)装这类工具更省心,因为它能把安装入口固定到仓库清单,至少比在网页上辨认真假按钮稳。有人拿 ImageMagick 和 Notepad++ 的例子说明,包管理器确实能绕开被污染的官网下载页。也有人反驳说 winget 很多时候仍然只是下载并运行 setup.exe,如果上游源本身被控制,或者 PR/元数据被恶意更新,安全性并不会神奇消失。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6]
另一条线索集中在 Windows Defender 误报如何把用户训练得对告警麻木。有人指出,破解工具、keygen 甚至某些正常编译的程序常被标成 Win32/Keygen 或 suspicious,久而久之人们会习惯性点击忽略。评论里还有 Minecraft clone 被误报成 bitcoin miner 多年的例子,说明误报会直接侵蚀威胁提示的可信度。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6]
有人提出应该用更硬的完整性监测:比如定时比对静态文件 hash,发现变化就发告警,把校验脚本放在 web root 之外,甚至把基准值放到只读介质上。Thread 里提到 Tripwire(文件完整性监测工具)、OSSEC(主机入侵检测/完整性监测系统)以及 OpenBSD security(8)(日常安全检查机制),都属于这种思路。还有人回忆写保护软盘、硬盘只读适配器和物理 write-protect 开关,核心都是让参考副本尽量不受线上服务器影响。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10]
讨论进一步上升到如何证明软件没被动过的发行模型。有人主张 source-based distribution、reproducible builds(可复现构建)和 digital signing(数字签名)能降低风险;另一些人则提醒,source 也能被投毒,只是更显眼,而且要维持严格的 reproducibility 对编译器和构建链要求很高。Linux 侧的 signed packages、Nix/Guix、Arch 的 PKGBUILD/AUR 信任边界,以及 Windows 上的 certificate/PKI(公钥基础设施)都被拿来对比,争论焦点是信任到底该放在中央仓库、开发者签名,还是可验证构建流程上。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11]
也有人一开始把问题误认为是 CPUID 网站的假下载按钮广告,因为下载页上充斥着 Continue to Download、PC APP STORE 之类的按钮,真正链接反而不显眼。有人认为技术用户配合 ad blocker 还行,但这基本等于默认普通用户自己承担识别成本。反对者则认为把这种体验当正常现象是在纵容 dark patterns,长期只会推动用户转向更封闭的 trusted 分发渠道。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6]
supply chain attack: 攻击者通过污染软件分发、依赖或更新链,把恶意代码送进受害者的安装流程。
watering hole attack: 攻击者控制受害者常访问的网站或下载入口,等待其主动访问后实施投毒。
winget: Windows 的命令行包管理器,用于安装和更新应用。
reproducible builds: 让同一份源代码在可控环境中构建出可验证一致的二进制,以便发现篡改。
PKI: 公钥基础设施,用证书和信任链验证软件签名与发布者身份。