Tailscale SSH 被揭 11 項未修補問題:一台裝置失守,可能一路拿到其他伺服器的最高權限
Cyberdione Labs 的 Tailworm 報告在實驗室重現:只要先攻下一台獲准裝置,再搭配允許轉發的 SSH 規則,攻擊就能以不到一秒一跳的速度擴散;官方修補尚未發布,管理員得先靠收緊規則自保。
許多團隊把 Tailscale 當成跨裝置的私人網絡,工程師不必再逐台管理 SSH 金鑰,登入伺服器靠的是裝置身分與後台規則。這套便利在本週末被潑了一盆冷水:網路安全公司 Cyberdione Labs 的研究員 Erica Windisch 在 10 月 25 日公開一份名為 Tailworm 的評估報告,一口氣列出 11 項問題,其中 6 項被她評為高風險。測試是在 10 月 22 日至 24 日間進行,對象是當時的正式版本 Tailscale 1.104.2,以及可自行架設的開源控制伺服器 headscale 0.29.5,全部結果都只在她自己的實驗室環境重現。
最棘手的一組:轉發功能借用了最高權限
報告的核心發現集中在 Tailscale 內建的 SSH 伺服器。這個伺服器跑在以系統最高權限運作的背景程序裡,當連線被允許做 Unix 通訊端轉發時,相關的路徑檢查與檔案操作也跟著用了最高權限,卻沒有在執行前把權限降回登入者本人。Windisch 展示了三條互相呼應的路徑:讓特權程序替自己去連只有管理者能碰的系統通訊端、把原本屬於特權程序的通訊端換成攻擊者準備的版本,以及利用檢查與實際使用之間的時間差繞過路徑限制。三條路的終點相近,普通帳號有機會在目標伺服器上以最高權限執行指令,甚至讀走用來讓新裝置加入網絡的註冊金鑰,再把攻擊者自己的機器登記成受信任的伺服器。最後這一步,她註明只在未啟用 Tailnet Lock 的網絡上完整走通。
為什麼她用「可蠕蟲式擴散」來形容
Tailscale SSH 的認證方式與傳統不同,它不查密碼也不查金鑰,而是認裝置:只要規則放行,一條規則就決定某台裝置能不能對另一台開 SSH 工作階段。這也代表攻擊者一旦在任何一台獲准裝置上取得立足點,後續移動不需要再偷任何憑證。Windisch 在實驗室量到的擴散節奏是每一跳不到一秒,而且全程不用使用者配合操作。不過報告也把前提講得很清楚:第一個立足點不是 Tailscale 製造的,仍要靠釣魚、被污染的軟體套件或有漏洞的 Web 應用等老方法先打進一台裝置;Tailscale 的問題在於把一個普通的失守點,放大成整批伺服器的特權入口。
其餘問題:實驗功能、對外服務與自架伺服器
另外幾項發現範圍各不相同。實驗階段的應用連接器功能 conn25 被指驗證不完整,被授權使用某個應用的裝置,有機會把流量送往從未核准的目的地,包括會發放雲端憑證的中繼資料服務,以及 Kubernetes 叢集內部的各項服務,Windisch 認為對某些組織來說這一項的衝擊可能比 SSH 問題更大。自架的 headscale 則被指存在未經登入就能觸發的資源耗盡問題,反覆觸發可以讓控制伺服器不斷當機、連帶卡住新裝置加入;把服務對外暴露的 serve 功能若設定成把 TCP 流量轉進 Unix 通訊端,也可能讓遠端同伴摸到該機器的本機管理介面。
廠方回應:正在修,但還沒有修補版
截至報告公開,Tailscale 尚未為這批發現發布專屬安全公告,也沒有給出 CVE 編號或修復版本。工程副總裁 Mike Shaver 在 Reddit 上表示,公司已經收到報告,先前也正與外部安全專家檢視相同的區域,確實找到正在處理的問題;但他同時表明,公司不建議所有用戶一律停用 Tailscale SSH,而是先盤點自己的存取政策。需要留意的是,這批發現目前只有原研究員單方面的實驗室結果,概念驗證程式沒有公開,她表示僅提供給 Tailscale 的安全聯絡窗口,也還沒有其他研究者公開重現,更沒有傳出實際受害案例。
修補發布前,管理員能先做的事
在官方更新出現之前,可行的自保全是設定層面的調整。第一,把 SSH 規則從「某個群組或標籤整批放行」改成逐對指定,也就是明確寫出一台來源裝置對一台目標裝置,這是報告中唯一被實測能真正擋住擴散的做法。第二,在官方託管服務上逐條把 SSH 轉發關閉;headscale 0.29.5 沒有這個開關,報告因此建議把那上面的每一條 SSH 授權都先當成等同最高權限看待。不需要內建 SSH 的機器,可以用 tailscale set 指令加上 —ssh=false 直接關閉,改回傳統的 OpenSSH,但動手前要先確認還有別條路能登入,以免把自己鎖在門外。其餘建議還包括:撤掉用不到的應用連接器授權、檢查 serve 是否有轉往 Unix 通訊端的設定、為伺服器開啟裝置金鑰到期機制;若懷疑某台裝置已失守,要在控制後台直接刪除該裝置,因為只重灌機器並不會註銷已被複製走的金鑰。開啟 SSH 的 check 模式可以在連線前多加一道重新登入的關卡,但報告與廠方說法都提醒,它擋不住已經成立的工作階段裡的權限提升,不能當成修復。
資料來源
- Tailworm 報告:Cyberdione Labs 對 Tailscale 1.104.2 與 headscale 0.29.5 的安全評估(tailworm.com)
- The Hacker News:Unpatched Tailscale SSH Flaws Could Let a Hacked Device Reach Root on Other Servers
- SC Media:Security researcher identifies potential privilege escalation in Tailscale SSH