统信 UOS 将推 Rust 版 Bash 命令行工具 utshell(附下载地址)
近年來,Rust 重構的熱潮席卷整個開發圈,Rust在安全性、高效性和可維護性等方面都有一定優勢,包括 Windows、Linux 內核也帶來了Rust 支持。
統信軟件今日宣布,統信 UOS 服務器版將于不久后推出 Rust 版 Bash,名為 utshell,旨在突破傳統 Shell 所面臨的安全/局限。
注:Bash 是一種廣泛應用于各種 Unix 和 Linux 系統的 Shell 程序,是 Bourne shell 的后繼兼容版本與開放源代碼版本。
統信軟件表示,在 Bash 中,有一些命令沒有對參數進行防篡改檢查,因而給系統帶來了安全風險。
例如,alias 命令允許用戶為其他命令或命令序列創建別名,然而它并未對參數進行防篡改檢查,進而導致未經檢查的參數可能會被利用來執行惡意代碼或進行未經授權的操作。
為了應對上述問題,utshell 對 alias 命令的規則進行了明確界定,目的在于確保使用的便捷性,并且能夠有效地防止命令被惡意篡改,從而限制惡意行為或誤操作的發生。
當別名和 $PATH 下可執行文件重名時,只允許別名和可執行文件一致。例如,如果我們想要創建一個別名“ls”,那么與之對應的可執行命令也必須是“ls”,且允許在命令中添加參數,以便用戶可以根據自己的需求對命令進行個性化制定。
別名不能與其他別名、函數名稱發生重名,以避免在使用別名時出現二義性,進而更好地確保操作系統能夠正確理解用戶的指令,避免混淆和誤解。
不僅僅限于 alias 命令,utshell 還對所有命令進行了檢查,并對那些可能受到惡意篡改威脅的命令進行了規則的優化處理,如 hash 和 function 命令等。
在 Bash 中,mapfile 命令是用于對數組進行賦值的工具,但它并沒有對數組的越界情況進行有效的檢查和控制。當用戶輸入的參數數量超過數組容量時,溢出部分可能會被誤當作命令來執行,從而引發潛在的安全隱患。
為了避免上述情況的發生,utshell 采取了對數組邊界的判斷措施。例如,當傳入的參數過多時,自動截斷或給出警示等,從而保證只有合法、預期的參數才能被傳遞給 mapfile 命令。
此外,通過使用 Rust 重構 Bash,utshell 不僅能繼承 Rust 的“源生”安全性,還能在代碼層面實現更高的自主可控性,從而提升系統的安全性和可靠性。
6 月初,統信 UOS 服務器版 V20(1060)已集成了 utshell 的部分功能,為即將發布的完整版 utshell 提供了初步體驗。
附下載地址:
deepin 社區地址:
https://github.com/linuxdeepin/utshell
歐拉社區地址:
https://gitee.com/openeuler/utshell
龍蜥社區地址:
https://gitee.com/anolis/utshell
總結
以上是生活随笔為你收集整理的统信 UOS 将推 Rust 版 Bash 命令行工具 utshell(附下载地址)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《绝区零》1.0哨站课题收集方法详解
- 下一篇: 快手定位不准确怎么改? 快手IP地址不准