苹果与黑客的未来

查看原文 HN 讨论

文章摘要

Stratechery 作者 Ben Thompson 从一次自己电脑被黑的经历讲起,最后谈到 AI 代理时代苹果的定位,以及他自己对苹果的态度变化。

被黑经过。 他承认这件事很丢人,而且是他自己的错。被入侵的是一台常年开机的 Mac Mini,上面只运行 Claude 和 Codex。攻击者利用的是 macOS 屏幕共享功能中的高危漏洞 CVE-2026-65400:荷兰国家网络安全中心警告,凡是 5900 端口暴露在公网上的系统,都观察到攻击者获得 root 权限并植入了门罗币挖矿程序。苹果已在一周前发布补丁。讽刺的是,最先发现问题的正是 AI:他让 Claude Code 长期运行一个线程,负责记录他的想法、跟踪他这几个月开启的各种项目。Claude 在定时重启监控工具时发现异常,发出「紧急」通知,主动停止执行所有命令,并指出他的账户现在可以免密执行管理员命令。Claude 甚至建议他别再调用 Claude,他没有照做,而是继续用 Claude 追查恶意软件,定位到入侵发生的那 4 秒钟,写了一个监控工具,然后抹掉了这台 Mac Mini。他说,很多人担心让代理访问电脑,但这一次,没有一个常驻代理的话,他的麻烦可能会大得多。

苹果对代理并不友好。 上周苹果开发者网站发布了《macOS 完全磁盘访问权限更新》说明:完全磁盘访问权限原本是为了让备份软件正常工作,但一些开发者利用它在用户不完全知情的情况下读取文件、邮件、消息乃至浏览记录;随着 AI 代理越来越强、越来越自主,这类风险会大幅增加,苹果将增加控制,要求用户通过「非常明确的操作」才能授予这种权限。Thompson 说他对苹果的解决方案「非常紧张」。在他看来,Mac 本来是理想的代理宿主:苹果几十年来在脚本化、自动化和辅助功能 API 上的投入让它非常适合「电脑操作」,macOS 又是认证的 Unix,代理可以使用整个 Unix 工具生态,硬件也很出色。

TCC:问题出在抽象层级。 但对于他这种无头、常开、主要通过手机上的 ChatGPT 和 Claude 应用远程使用的 Mac Mini,macOS 非常不友好,最大的问题是只能在图形界面里点击的权限弹窗,也就是「透明度、同意与控制」(TCC)子系统。原因有两个:一是代理会不停地写新程序,这些程序访问 SMB 共享等网络资源都会触发 TCC,而他需要的是针对代理的权限层,而不是针对代理所写的每个程序,TCC 工作在错误的抽象层级;二是 TCC 弹窗显示在任何程序都看不到的受保护区域,程序静默失败,代理也不知道原因,他只能想起「大概又有弹窗了」,然后通过屏幕共享登录去点「好」。他承认这样设计有正当理由(防止恶意软件绕过),但对专门给代理用的机器来说,TCC 只是头疼,并且间接导致他被黑:为了随时点掉弹窗,他一直开着屏幕共享;他的安全体系建立在 Tailscale 上,但为了多一条备用通道,他把屏幕共享端口暴露在了公网上。本该用 SSH 隧道,他承认这是自己的错。

「自动安装安全更新」名不副实。 更让他恼火的是修复的发布方式。他所有电脑都勾选了「自动安装安全更新」,后来才发现这个选项并不覆盖大多数安全修复,因为 CVE 修复几乎都放在系统小版本更新里,而最近那次小版本更新正是为了修这个漏洞。他承认自己有点吹毛求疵,但一家对访问桌面文件夹都如此在意的公司,却不在意一个重要设置的措辞会怎样误导一个相当专业的用户。苹果要求的信任越来越多,范围也越来越大:「既然访问网络共享都要我授权,那我明确授权你自动打补丁时,你能不能真的打?」因此,完全磁盘访问权限的那份说明让他不安:有些用户可能确实希望代理读取 iMessage,或者只是想把 Mac 当作自己的个人电脑,而不是越来越像 iPhone 的「苹果托管设备」。

对苹果智能家居毫无兴趣。 Mark Gurman 报道,苹果将在 10 月 13 日由新任 CEO John Ternus 主导进军智能家居,推出代号 J490 的约 6 英寸屏幕家庭中枢、新 HomePod mini 和新 Apple TV,并借此展示新版 Siri。同一周,Meta 的 Muse 也公布了开源的 Muse Gadgets 硬件计划。Thompson 坦言自己对苹果的智能家居产品毫无热情:一是十年来对 Siri 的失望;二是不想把苹果的限制带进生活的更多角落;三是苹果的集成体验受制于第三方设备厂商,而这些厂商的软件大多很差。他更想自己掌控软件层:有了 AI,几乎所有现有软件都可以被反编译(最近游戏圈正在发生这样的革命),也可以自己写软件。他引用自己对苹果「智能个人中枢」愿景的评论:苹果号称 30 万个应用支持 Siri,但这依赖开发者主动接入;而代理只要会用网页,就几乎免费获得了与一切的集成。苹果太执着于 App 范式,可能根本没想过另一种可能:与其打开结构化的提醒事项 App,不如直接让代理提醒你。他认为 App 曾经很棒,但不是最好的体验,代理本身就是「通用界面」,接入各个 App 反而会让代理变差。相比之下,Meta 通过 Muse Gadgets 培育开源硬件生态,目标是让 Muse 成为一切的交互界面,他称之为神来之笔。

黑客与 Mac。 文章最后引用 Paul Graham 2005 年的文章:最好的黑客都在转向 Mac,因为 OS X 是 Unix;而黑客今天在做的事,十年后所有人都会做。Thompson 2004 年转用 Mac,其实并不在乎 Unix,只是喜欢它的设计和 UI。他认为,AI 代理让任何人都可以成为黑客,只要有意愿和点子就能做任何事;一旦接受了这一点,「围墙花园」就不再像保护,而更像监狱。他强调自己并不是在预言苹果衰落,也不会换掉电脑和手机,但他第一次能想象一个不再默认购买苹果产品的未来。事实上,他已经买了一台跑 Linux 的新服务器,「再也不会把 Mac 装进机架」。问题在于,苹果产品设计所面向的未来,是否是他正在奔向的未来:代理式抽象让传统界面成为遗物,计算变得前所未有地触手可及,限制不再是开发者为规模化而构建什么,而是自己为自己构建时的想象力。

HN 评论精华

帖子获得近 300 分、约 240 条评论。不少评论对作者并不客气,认为他把自己的安全失误归咎于苹果;另一部分讨论围绕 TCC 的设计缺陷,以及苹果是否在把 Mac「iOS 化」。

「是你自己把 5900 端口暴露在公网上」。 这是最集中的批评。fg137 说,他无法理解作者怎么能从一个明显是自己造成的疏忽,推导出这么多关于苹果的结论,「我绝不会因为自己捅的娄子写一篇 3000 字的文章去骂别人」。7r33 嘲讽这篇文章是在向全世界宣布自己不懂基础网络知识;mixdup 认为,会把远程访问端口不加过滤地暴露到公网的人,恰恰是苹果需要「保护他免受自己伤害」的那类用户;lwkl 以 Windows 运维的经验说,几十年来不把 RDP 直接暴露在公网上都是基本常识。dns_snek 总结说,绝大多数软件都没有加固到可以面对恶意攻击者的程度,任何管理面板、远程桌面、文件共享都应该放在 VPN、SSH 隧道或双向 TLS 之后。piker 打了个比方:窃贼从猫洞钻进来,猫把你叫醒,这算猫让你更安全了吗?

但苹果也有责任。 user43928 反驳说,苹果的远程访问功能存在严重的认证漏洞,且已被在野利用,苹果却没有以「安全更新」的形式推送修复,导致开启了自动安全更新的用户也没有收到,这不能全怪用户。dannyw 指出,2017 年空 root 密码漏洞时,苹果在大约 26 小时内就为所有受支持版本远程推送了补丁,现在还有「快速安全响应」机制,一周太慢了。janfoeh 与 GeekyBear 就设置的措辞来回争论:前者认为既然有一个单独标注「安装安全更新」的开关,它就该真的安装安全更新;后者认为系统更新本来就包含安全修复,是用户自己做了错误假设。adolfox 认为文章最大的收获就是:苹果不把安全更新当安全更新发布,借此逼用户升级小版本。

苹果收紧完全磁盘访问合理吗? hombre_fatal 和 askonomm 认为苹果的理由很合理:不让非确定性、容易被提示词注入的工具获得全盘访问权限是理所当然的,这和苹果「喜不喜欢代理」无关。GeekyBear 补充了背景:科技专栏作家 Jason Aten 称 Meta 的 Muse 在他从未授权的情况下,主动提到了他与同事在 iMessage 中的对话;而全盘权限本来是给备份软件用的。danaris 引用 Pixel Envy 的文章,担心苹果把这个权限框定为「仅限备份软件」,而磁盘工具、Sketch、终端等也需要它。rickdeckard 认为苹果的措辞类似当年对第三方应用商店的恐吓式 UI;jwitthuhn 说,让用户体验变差的是苹果,而不是开发者。

TCC 的设计问题。 ryanascend 说自己也通过 SSH 运行无头 Mac mini,代理不断生成新的二进制文件、触发新的弹窗且无法预先授权,权限模型默认键盘前坐着一个人,一旦 Mac 成为服务器就失效了。drdexebtjl 指出,TCC 只在进程树的根节点上检查权限:给终端授予全盘访问,从终端启动的一切都获得了全盘访问;改成按可执行文件检查也没用,因为迟早会授权给 zsh 或 python3 这样的解释器。他认为 Unix 几十年前就解决了这个问题:让代理成为单独的用户,再用文件系统 ACL 授权。capsudo 反驳说,ACL 无法表达「只允许访问某个 SQLite 数据库中的部分消息」或「只共享一个窗口」这样的粒度。mike_hearn 提到一个私有 API responsibility_spawnattrs_setdisclaim,可以让子进程不再继承父进程的权限,LLDB 和 Chrome 都在用。krackers 帮其他读者理清了作者的逻辑:TCC 弹窗像 Vista 的 UAC 一样无处不在,作者为了手动关掉弹窗而开启远程桌面,结果被未授权漏洞攻破;Vista 的教训是,设置烦人的障碍,人们就会找最省事的方法绕过去。

Mac 会被 iOS 化吗? PaulHoule 认为苹果想把 Mac 变成 iPhone 那样抽成 30% 的平台;rickdeckard 也认为苹果迟早会推出基于 iOS 的 iMac。john_alan 列举了苹果为保持 Mac 开放所做的大量工作:可关闭 SIP 和签名系统卷、自定义内核启动、发布 XNU 源码、虚拟化框架、Linux 虚拟机中的 Rosetta、容器化框架等,并认为「Mac 将被锁死」的说法没有根据;lapcat 反驳说内核扩展已被弃用,专业用户使用 macOS 正变得越来越困难。simondotau 则从消费者角度说,开发者并不天然是好人,苹果把他们挡在沙盒里正是用户想要的。bunderbunder 说他的岳母从 Windows XP 转到 OS X 后如释重负,对普通用户来说,限制本身就是解放。terminalbraid 则认为,「保护用户免受自己伤害」的心态正在侵蚀计算自由,并由此引出一段关于枪支和汽车类比的争论。

关于 Ben 的立场。 jppope 认为文章的核心观察是苹果已不再能锁定用户未来的购买,「我第一次能想象不默认买苹果」才是重点;bel8、binkHN 表示下一台笔记本会选择 Linux 支持良好的机器。w10-1 认为这篇文章让人看到一道「AI 鸿沟」:Ben 选择平台的标准是能否方便地使用 AI 代理,重要到愿意转投扎克伯格的阵营。parasubvert 则说,AI 代理重度用户对身份盗用、隐私泄露和数据丢失的风险容忍度高得惊人,远超任何负责任的中大型企业,AI 生产力的上限可以归结为一个词:自律。redmaple892 对「代理就是通用界面、不需要 App」的论断表示怀疑,rpgbr 吐槽说:普通人用提醒事项 App 的通知不就行了。