您的位置:首頁(yè) > 資訊 >

谷歌開(kāi)源 Rust Crate 審查結(jié)果:便于 Rust 開(kāi)發(fā)者驗(yàn)證源碼安全


(資料圖片)

IT之家 5 月 25 日消息,谷歌的許多開(kāi)源項(xiàng)目都使用 Rust,這是一種現(xiàn)代系統(tǒng)語(yǔ)言,旨在構(gòu)建可靠高效的軟件。日前谷歌在 GitHub 上開(kāi)源了對(duì) Rust Crate 的審查結(jié)果,開(kāi)發(fā)者可在自己的項(xiàng)目中導(dǎo)入這些審核結(jié)果,以證明所使用的 Rust Crate 的屬性。

▲ 圖源 谷歌開(kāi)源博客

Rust 社區(qū)中存在可用于供開(kāi)發(fā)者發(fā)布自己所開(kāi)發(fā)的 Crate 的名為 Crates.io 的服務(wù),開(kāi)發(fā)者利用 Crates.io 也能下載使用他人所開(kāi)發(fā)的 Crate。但所有第三方代碼都帶有一定風(fēng)險(xiǎn)因素。對(duì)于本地編譯器層面而言,對(duì) Crate 的要求可能僅是不包含主動(dòng)惡意代碼、不侵犯隱私、泄露數(shù)據(jù)或是安裝惡意軟件即可,但是供客戶(hù)端側(cè)部署的代碼則需要符合更嚴(yán)格的要求,例如確保沒(méi)有內(nèi)存安全問(wèn)題,并需要還要符合系列標(biāo)準(zhǔn)和規(guī)范需求、并使用更新的加密技術(shù)。

因此通常在新項(xiàng)目開(kāi)始之際,開(kāi)發(fā)組成員會(huì)根據(jù)其安全性、正確性、測(cè)試等標(biāo)準(zhǔn)對(duì)源碼進(jìn)行徹底的審查,當(dāng)幾個(gè)不同的項(xiàng)目審查同一個(gè) crate 時(shí)可能會(huì)導(dǎo)致重復(fù)工作,因此為了消除重復(fù)的工作及驗(yàn)證安全性,因此谷歌內(nèi)部項(xiàng)目開(kāi)始使用新的 Crate 之前一定會(huì)經(jīng)過(guò)徹底審核。

而第三方開(kāi)發(fā)者各自審查項(xiàng)目所使用的 Crate 時(shí),可能會(huì)浪費(fèi)資源執(zhí)行重復(fù)的工作,因此谷歌宣布開(kāi)源審核結(jié)果,以避免重復(fù)審核工作。谷歌將這些審核結(jié)果持續(xù)整合到供應(yīng)鏈儲(chǔ)存庫(kù)中,并且使用 cargo vet 來(lái)快速驗(yàn)證項(xiàng)目所使用的 Crate。

開(kāi)發(fā)者可以將谷歌開(kāi)源的審核結(jié)果,包括代碼質(zhì)量、安全性和測(cè)試要求等屬性,導(dǎo)入到自己的項(xiàng)目中,并且根據(jù)這些 Crate 屬性,決定其是否符合項(xiàng)目需求。不同使用案例的需求不同,cargo vet 讓用戶(hù)能夠?qū)γ恳粋€(gè)相依項(xiàng)目獨(dú)立配置要求。

日前谷歌的 ChromeOS 和 Fuchsia 項(xiàng)目都已經(jīng)貢獻(xiàn) Crate 審核結(jié)果,其他谷歌項(xiàng)目也會(huì)逐漸加入,如此便可覆蓋更多的 Crate 。目前這項(xiàng)工作仍在初期階段,包括 cargo vet 執(zhí)行和共享審核的運(yùn)作細(xì)節(jié),之后可能還會(huì)有所變動(dòng)。

IT之家注:在 Rust 程序語(yǔ)言中,Crate 是 Rust 中的一個(gè)編譯單位,Crate 可以編譯成二進(jìn)制文件或庫(kù),其包含 Rust 代碼和其他相關(guān)資源,可以被編譯成執(zhí)行文件或是函數(shù)庫(kù)。Rust 使得在 Crate 中封裝和共享代碼變得容易,就像其他語(yǔ)言的軟件包,這些 Crate 是可復(fù)用的軟件組件,因此具有相當(dāng)廣泛的普適性。

標(biāo)簽:

相關(guān)閱讀