Canonical 的 Ubuntu 25.10 將默認采用 sudo-rs——一個基于 Rust 重寫經典 sudo 工具的版本,作為減少內存相關安全漏洞并強化核心系統組件的舉措之一。
當該版本于 2025 年 10 月 9 日發布時,使用 Ubuntu Linux 的用戶將體驗到更小的攻擊面,同時對系統安全性的信心也會有所增強。
sudo 是類 Unix 系統上的命令行工具,允許經授權的用戶以更高權限(通常為 root)執行命令。此次采用 Rust 語言進行重寫的目的在于確保該工具具備內存安全性。
內存安全代碼可以避免緩沖區溢出、堆溢出以及釋放后使用等漏洞,而這些漏洞正構成了大多數嚴重軟件漏洞的主要來源。因此,美國政府的 CISA 以及 Microsoft 的 Mark Russinovich 等安全監管者在過去幾年中持續敦促開發者使用能夠提供內存安全保證的編程語言(如 Rust、Go 和 C#)來構建新項目,并在部分情況下重寫已有項目。
互聯網安全研究組 (ISRG) 的 Prossimo 項目早在 2020 年就啟動了這些基于 Rust 重寫工作的進程。作為回應,我們看到了諸如 sudo-rs 的努力,該項目得到了 AWS 的資助支持。
Rust 在 Linux 維護者社區中雖備受推崇,卻也存在爭議,這對長期依賴 C 和 C++ 的維護者構成了挑戰,因為這兩種語言無法提供同等的內存安全保障。如果 C 和 C++ 社區不能找到萬無一失的方法以滿足內存安全要求——盡管已有項目致力于此——那么使用這些語言的開發者將不得不花更多時間在維護甚至逐步淘汰上,而非專注于開發。
sudo 確實存在嚴重的內存安全漏洞,sudo-rs 重寫項目的首席工程師 Marc Schoolderman 指出,并引用了由 C 語言版 sudo 開發者 Todd Miller 維護的漏洞列表。
Schoolderman 向 The Register 表示:“第一頁就列出了多個內存安全漏洞(包括緩沖區溢出、堆溢出或者重復釋放內存等問題),其中最早的一個可以追溯到 2001 年,當時在 Phrack 上以‘Vudo’這樣風趣的名稱發布,當時就極為生動地展示了攻擊者如何在僅有有限權限的系統上取得完全控制。”
他接著表示:“近期的一個典型案例是 2021 年由安全公司 Qualys 發現的 ‘Baron Samedit’ 漏洞,它同 ‘Vudo’ 一樣,會導致失控的特權升級。網上有許多相關網站和 YouTube 視頻對此進行了解釋;該漏洞編號為 CVE-2021-3156。”
Trifecta Tech Foundation 在一篇博客中表示:“選擇采用 sudo-rs 符合 Canonical 致力于通過采用 Rust 來切實而有目的地提升關鍵系統軟件韌性的承諾。Rust 是一門擁有強內存安全保證的編程語言,其消除了長期以來困擾傳統基于 C 的軟件的諸多漏洞。”
Trifecta Tech Foundation 主席 Erik Jonkers 向 The Register 表示:“當然,還有其他關鍵工具,但 sudo 是最為核心的之一;它在幾乎所有支撐互聯網的開源操作系統中負責調控關鍵特權邊界。”
他說:“這一點,加上 AWS 愿意資助這項工作,是 ISRG 的 Prossimo 項目選擇它的原因。對 AWS 來說,盡可能地采用內存安全代碼,比如在 Amazon Linux 中,非常具有價值。而 AWS 以及如今對提高產品安全性充滿興趣的 Canonical 提供的支持,再加上開源社區的積極反饋,都證明大家對 sudo 的安全性非常關心。”
Jonkers 還指出,其他關鍵組件如 zlib-rs 和 ntpd-rs 已分別被 Firefox 和 Let's Encrypt 采納。
第一版穩定的 sudo-rs 于 2023 年 8 月底發布,此后該工具已被 Chainguard 面向容器的 Linux 發行版 Wolfi Linux OS,以及重視安全的發行版如 NixOS 和 AerynOS 采用,同時也被打包到 Debian、Fedora 和 Ubuntu 中。
正如 The Register 兩個月前報道的那樣,Canonical 工程副總裁 Jon Seager 認為默認采用 sudo-rs 是有價值的。他解釋道:“雖然性能對我來說非常重要,但這次變更的主要動力并非性能因素。這些工具處于發行版的核心,而利用 Rust 重寫所實現的韌性和安全性增強才是我更看重的。”
為了評估這些基于 Rust 的新工具,Seager 協助創建了一個名為 oxidizr 的項目,該項目簡化了在 Ubuntu 系統上用現代 Rust 工具替換傳統 Unix 工具的過程。目前,oxidizr 可用于替換 uutils coreutils、findutils 和 diffutils,以及 sudo-rs。
Jonkers 表示:“要想實現顯著改進還需要一定時間。目前市場在防御性安全、網絡安全等方面的關注度較高。
“從 Google 關于 Android 轉型的報告中可以看出,其影響,連同成本節省,都是巨大的。CISA 將不安全的內存語言標記為不良實踐,無疑是朝著正確方向邁進了一步。在歐洲,我們正與主權科技機構共同努力,將內存安全納入‘安全設計’政策。雖然這一轉型過程需要時間,但我堅信進展正在不斷推進。”