Stratechery 的 Ben Thompson 上週寫了一篇長文,說他那台 7×24 開機、只跑 Claude 和 Codex 的 Mac Mini 被駭了。攻擊者利用 macOS screen sharing 的漏洞(CVE-2026-65400),免憑證拿到 root,植入 Monero 挖礦程式。諷刺的是,第一個發現異狀的,正是他常駐在上面的 Claude agent。
原文很長,重點我做成一頁互動懶人包,連同 Hacker News 上 171 則討論一起整理在裡面:
手機版如果 iframe 顯示不正常,可以直接開這頁:https://static.blog.derekhsu.net/apple-hacker-future.html
HN 網友一面倒:被駭是自找的
這篇在 Hacker News 拿到 175 分,留言直接開砲。 Thompson 把 screen sharing 的 5900 port 直通公網,又沒裝 point release(CVE 修正包在 point release 裡,不在「自動安裝安全性更新」的範圍內),屬於基本失誤。最狠的一句評論是這麼說的:如果小偷從貓門進來,貓叫醒了你,所以貓讓你更安全嗎?
但網友也承認他兩個批評是對的。第一,Apple 的自動更新標示誤導人,勾了自動裝安全性更新,照樣錯過 CVE 修正。第二,Full Disk Access 全有全無,想給 Terminal 跑個 tmutil 開關也要交出整顆硬碟,粒度太粗。而這整串收緊的起因,是 Meta 的 Muse 未經授權讀了記者的 Apple Messages 對話。
為什麼他非開 screen sharing 不可
Thompson 真正的苦水在這裡。 macOS 的 TCC 權限彈窗是 GUI-only,ssh 連進去看不到,agent 也看不到。他的 agent 整天寫新程式,存取個 SMB 網路分享就跳一次授權,他只能從手機 screen share 進去手動點 OK,點到麻木。為了點這些 OK,他只好讓 screen sharing 常開,這正是被駭的遠因。
看到這段我很有同感,因為我也有一台類似定位的機器。但我的解法跟他不一樣:我用 RustDesk,通道走 Tailscale,不開任何 port。
我的做法:RustDesk 走 Tailscale
我的架構很單純,全部裝進同一個 Tailscale tailnet。機器跟手機都在裡面,RustDesk 只認內網 IP,路由器不用 port forward,防火牆不用開洞,5900 這種 port 在公網上根本不存在。出門用手機,一樣是 Tailscale App 加 RustDesk App 連回家,TCC 彈窗照點。就算哪天 RustDesk 本體爆出漏洞,攻擊者也得先混進 tailnet 才碰得到它,中間隔著身分驗證跟裝置授權,跟把 VNC 攤在公網上完全是兩回事。
| 項目 | Thompson | 我的做法 |
|---|---|---|
| 遠端協定 | macOS 內建 screen sharing(VNC,port 5900) | RustDesk |
| 通道 | port forward 直通公網 | 只走 Tailscale 內網,不開 port |
| 手機存取 | 有,但等於把門打開 | 有,Tailscale + RustDesk App |
| 被掃到的機率 | CVE 公開一週就被掃到挖礦 | 掃不到,公網上沒有洞 |
| TCC 彈窗 | 看得到,代價是暴露 | 看得到,通道不出公網 |
另外兩件事是共通功課,不分什麼遠端方案。第一,更新要裝到 point release,「自動安裝安全性更新」不等於裝到 CVE 修正,這次事件就是血淋淋的例子。第二,跑 agent 的機器專機專用,上面不放個人資料。 Thompson 這點做對了,他的 Mac Mini 上除了 Codex 和 Claude 什麼都沒有,災損才壓得住。
結語
Agent 時代,每個人都會有一台 Thompson 那樣的常駐機器,可能是 Mac Mini,也可能是 Linux 小主機。遠端管理是剛需,但把 VNC 直通公網是上個世紀的習慣。 VPN-first 是底線,至於用 Tailscale 還是 WireGuard、用 RustDesk 還是 SSH tunnel,那是口味問題。我的口味是 RustDesk + Tailscale,設定一次,之後手機點 OK 也安心。
參考連結:
