設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

統(tǒng)信 UOS 將推 Rust 版 Bash 命令行工具 utshell,支持防篡改、防溢出

2023/9/19 18:05:34 來源:IT之家 作者:汪淼 責(zé)編:汪淼

IT之家 9 月 19 日消息,近年來,Rust 重構(gòu)的熱潮席卷整個開發(fā)圈,Rust 在安全性、高效性和可維護性等方面都有一定優(yōu)勢,包括 Windows、Linux 內(nèi)核也帶來了 Rust 支持。

統(tǒng)信軟件今日宣布,統(tǒng)信 UOS 服務(wù)器版將于不久后推出 Rust 版 Bash,名為 utshell,旨在突破傳統(tǒng) Shell 所面臨的安全局限。

圖片

IT之家注:Bash 是一種廣泛應(yīng)用于各種 Unix 和 Linux 系統(tǒng)的 Shell 程序,是 Bourne shell 的后繼兼容版本與開放源代碼版本。

統(tǒng)信軟件表示,在 Bash 中,有一些命令沒有對參數(shù)進行防篡改檢查,因而給系統(tǒng)帶來了安全風(fēng)險。

例如,alias 命令允許用戶為其他命令或命令序列創(chuàng)建別名,然而它并未對參數(shù)進行防篡改檢查,進而導(dǎo)致未經(jīng)檢查的參數(shù)可能會被利用來執(zhí)行惡意代碼或進行未經(jīng)授權(quán)的操作。

圖片

為了應(yīng)對上述問題,utshell 對 alias 命令的規(guī)則進行了明確界定,目的在于確保使用的便捷性,并且能夠有效地防止命令被惡意篡改,從而限制惡意行為或誤操作的發(fā)生。

  • 當(dāng)別名和 $PATH 下可執(zhí)行文件重名時,只允許別名和可執(zhí)行文件一致。例如,如果我們想要創(chuàng)建一個別名“l(fā)s”,那么與之對應(yīng)的可執(zhí)行命令也必須是“l(fā)s”,且允許在命令中添加參數(shù),以便用戶可以根據(jù)自己的需求對命令進行個性化制定。

  • 別名不能與其他別名、函數(shù)名稱發(fā)生重名,以避免在使用別名時出現(xiàn)二義性,進而更好地確保操作系統(tǒng)能夠正確理解用戶的指令,避免混淆和誤解。

不僅僅限于 alias 命令,utshell 還對所有命令進行了檢查,并對那些可能受到惡意篡改威脅的命令進行了規(guī)則的優(yōu)化處理,如 hash 和 function 命令等。

在 Bash 中,mapfile 命令是用于對數(shù)組進行賦值的工具,但它并沒有對數(shù)組的越界情況進行有效的檢查和控制。當(dāng)用戶輸入的參數(shù)數(shù)量超過數(shù)組容量時,溢出部分可能會被誤當(dāng)作命令來執(zhí)行,從而引發(fā)潛在的安全隱患。

圖片

為了避免上述情況的發(fā)生,utshell 采取了對數(shù)組邊界的判斷措施。例如,當(dāng)傳入的參數(shù)過多時,自動截斷或給出警示等,從而保證只有合法、預(yù)期的參數(shù)才能被傳遞給 mapfile 命令。

此外,通過使用 Rust 重構(gòu) Bash,utshell 不僅能繼承 Rust 的“源生”安全性,還能在代碼層面實現(xiàn)更高的自主可控性,從而提升系統(tǒng)的安全性和可靠性。

6 月初,統(tǒng)信 UOS 服務(wù)器版 V20(1060)已集成了 utshell 的部分功能,為即將發(fā)布的完整版 utshell 提供了初步體驗。IT之家附下載地址:

deepin 社區(qū)地址:

https://github.com/linuxdeepin/utshell

歐拉社區(qū)地址:

https://gitee.com/openeuler/utshell

龍蜥社區(qū)地址:

https://gitee.com/anolis/utshell

廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:Rust,統(tǒng)信 UOSBash,utshell,linux
  • 日榜
  • 周榜
  • 月榜

軟媒旗下網(wǎng)站: IT之家 最會買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機APP應(yīng)用 魔方 最會買 要知