谷歌開源 Rust Crate 審查結(jié)果:便于 Rust 開發(fā)者驗(yàn)證源碼安全
(資料圖片)
IT之家 5 月 25 日消息,谷歌的許多開源項(xiàng)目都使用 Rust,這是一種現(xiàn)代系統(tǒng)語言,旨在構(gòu)建可靠高效的軟件。日前谷歌在 GitHub 上開源了對 Rust Crate 的審查結(jié)果,開發(fā)者可在自己的項(xiàng)目中導(dǎo)入這些審核結(jié)果,以證明所使用的 Rust Crate 的屬性。
Rust 社區(qū)中存在可用于供開發(fā)者發(fā)布自己所開發(fā)的 Crate 的名為 Crates.io 的服務(wù),開發(fā)者利用 Crates.io 也能下載使用他人所開發(fā)的 Crate。但所有第三方代碼都帶有一定風(fēng)險(xiǎn)因素。對于本地編譯器層面而言,對 Crate 的要求可能僅是不包含主動惡意代碼、不侵犯隱私、泄露數(shù)據(jù)或是安裝惡意軟件即可,但是供客戶端側(cè)部署的代碼則需要符合更嚴(yán)格的要求,例如確保沒有內(nèi)存安全問題,并需要還要符合系列標(biāo)準(zhǔn)和規(guī)范需求、并使用更新的加密技術(shù)。
因此通常在新項(xiàng)目開始之際,開發(fā)組成員會根據(jù)其安全性、正確性、測試等標(biāo)準(zhǔn)對源碼進(jìn)行徹底的審查,當(dāng)幾個(gè)不同的項(xiàng)目審查同一個(gè) crate 時(shí)可能會導(dǎo)致重復(fù)工作,因此為了消除重復(fù)的工作及驗(yàn)證安全性,因此谷歌內(nèi)部項(xiàng)目開始使用新的 Crate 之前一定會經(jīng)過徹底審核。
而第三方開發(fā)者各自審查項(xiàng)目所使用的 Crate 時(shí),可能會浪費(fèi)資源執(zhí)行重復(fù)的工作,因此谷歌宣布開源審核結(jié)果,以避免重復(fù)審核工作。谷歌將這些審核結(jié)果持續(xù)整合到供應(yīng)鏈儲存庫中,并且使用 cargo vet 來快速驗(yàn)證項(xiàng)目所使用的 Crate。
開發(fā)者可以將谷歌開源的審核結(jié)果,包括代碼質(zhì)量、安全性和測試要求等屬性,導(dǎo)入到自己的項(xiàng)目中,并且根據(jù)這些 Crate 屬性,決定其是否符合項(xiàng)目需求。不同使用案例的需求不同,cargo vet 讓用戶能夠?qū)γ恳粋€(gè)相依項(xiàng)目獨(dú)立配置要求。
日前谷歌的 ChromeOS 和 Fuchsia 項(xiàng)目都已經(jīng)貢獻(xiàn) Crate 審核結(jié)果,其他谷歌項(xiàng)目也會逐漸加入,如此便可覆蓋更多的 Crate 。目前這項(xiàng)工作仍在初期階段,包括 cargo vet 執(zhí)行和共享審核的運(yùn)作細(xì)節(jié),之后可能還會有所變動。
IT之家注:在 Rust 程序語言中,Crate 是 Rust 中的一個(gè)編譯單位,Crate 可以編譯成二進(jìn)制文件或庫,其包含 Rust 代碼和其他相關(guān)資源,可以被編譯成執(zhí)行文件或是函數(shù)庫。Rust 使得在 Crate 中封裝和共享代碼變得容易,就像其他語言的軟件包,這些 Crate 是可復(fù)用的軟件組件,因此具有相當(dāng)廣泛的普適性。
標(biāo)簽: