Mac Mini 被駭事件:我的遠端答案是 RustDesk + Tailscale

Thompson 的 Mac Mini 被駭,HN 一面倒說是自找的。我很有同感,但我的解法是 RustDesk 走 Tailscale,不開任何 port。

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 也安心。

參考連結:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *