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