自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Go 如何應(yīng)對(duì)供應(yīng)鏈攻擊?

安全 網(wǎng)站安全
Go 工具鏈有一個(gè)明確的安全設(shè)計(jì)目標(biāo):無(wú)論是獲取還是構(gòu)建代碼,都不會(huì)讓該代碼執(zhí)行,無(wú)論代碼是否不受信任或者惡意。這是一種有意義的風(fēng)險(xiǎn)緩解措施。

Go 官方博客介紹了他們應(yīng)對(duì)供應(yīng)鏈攻擊的緩解措施。據(jù)稱,Go 的工具鏈和設(shè)計(jì)在各個(gè)階段均包含降低攻擊風(fēng)險(xiǎn)的考慮。

所有構(gòu)建都被“鎖定 (locked)”

外部變化(例如發(fā)布依賴項(xiàng)的新版本)不會(huì)影響 Go 構(gòu)建。

與其他大多數(shù)軟件包管理器所使用的配置文件不同,Go modules 沒有單獨(dú)的約束列表和用于鎖定特定版本的 lock 文件。參與 Go 構(gòu)建的每個(gè)依賴項(xiàng)的版本完全由主模塊的go.mod文件決定。

從 Go 1.16 開始,上述操作默認(rèn)執(zhí)行,如果go.mod不完整,構(gòu)建命令將失敗。唯一會(huì)改變go.mod的命令是 go get和 go mod tidy。這些命令通常不會(huì)自動(dòng)運(yùn)行或在 CI 中運(yùn)行,因此這種對(duì)依賴關(guān)系樹的改變通常都是刻意為之,可在代碼審查階段被發(fā)現(xiàn)。

這對(duì)于安全性非常重要,如果一個(gè)模塊被入侵并發(fā)布了一個(gè)新的惡意版本,那么在明確更新該依賴項(xiàng)之前,任何人都不會(huì)受到影響,從而為生態(tài)提供了審查更改和檢測(cè)事件的時(shí)間。

版本內(nèi)容永不改變

確保第三方不會(huì)影響構(gòu)建的另一個(gè)關(guān)鍵屬性是,module 版本的內(nèi)容不可改變。因?yàn)槿绻茐囊蕾図?xiàng)的攻擊者可以重新上傳現(xiàn)有版本,他們就可以自動(dòng)破壞所有依賴該依賴項(xiàng)的項(xiàng)目。

這正是go.sum文件的用途。它包含有助于構(gòu)建的每個(gè)依賴項(xiàng)的加密哈希列表。同樣,不完整的go.sum會(huì)導(dǎo)致錯(cuò)誤,并且只能使用go get和go mod tidy對(duì)它進(jìn)行修改。因此,對(duì)它的任何修改都會(huì)伴隨著主觀的依賴關(guān)系改變。

VCS 是事實(shí)來(lái)源

大多數(shù)項(xiàng)目在開發(fā)過(guò)程中都會(huì)使用版本控制系統(tǒng) (VCS),在其他生態(tài)中,這些項(xiàng)目還需要上傳到中心軟件包倉(cāng)庫(kù) (比如 npm)。這意味著有兩個(gè)帳戶可能會(huì)受到破壞,即 VCS 主機(jī)和中心軟件包倉(cāng)庫(kù)。后者使用得更少,也更容易被忽視。這也意味著更容易在上傳到倉(cāng)庫(kù)的版本中隱藏惡意代碼,特別是如果源碼作為上傳的一部分被例行修改。

Go 沒有諸如中心軟件包倉(cāng)庫(kù)帳戶這類東西。包的導(dǎo)入路徑嵌入了直接從 VCSgo mod download 獲取其模塊所需的信息,其中 VSC 上的標(biāo)簽定義了 module 版本。

僅構(gòu)建代碼,但不執(zhí)行

Go 工具鏈有一個(gè)明確的安全設(shè)計(jì)目標(biāo):無(wú)論是獲取還是構(gòu)建代碼,都不會(huì)讓該代碼執(zhí)行,無(wú)論代碼是否不受信任或者惡意。

這是一種有意義的風(fēng)險(xiǎn)緩解措施,假如你正在執(zhí)行一個(gè)二進(jìn)制文件或測(cè)試一個(gè)只使用一個(gè)子集的包模塊的依賴。例如,如果example.com/cmd/devtoolx在 macOS 上構(gòu)建和執(zhí)行,那么針對(duì) Windows 的依賴或example.com/cmd/othertool的依賴就不可能危害到你的機(jī)器。

在 Go 中,不為特定構(gòu)建提供代碼的 module 對(duì)于構(gòu)建沒有安全影響。

“復(fù)制勝于依賴”

最后一項(xiàng)(也可能是最重要)供應(yīng)鏈攻擊風(fēng)險(xiǎn)緩解措施也是技術(shù)含量最低的:Go 有拒絕大型依賴樹的文化,并且更喜歡復(fù)制而不是添加新的依賴。

這可以追溯到 Go 的一句諺語(yǔ):“a little copying is better than a little dependency”(復(fù)制勝于依賴)。

Go module 對(duì)自己的“零依賴”標(biāo)簽非常自豪。如果開發(fā)者需要使用一個(gè)庫(kù),他會(huì)發(fā)現(xiàn)這個(gè)庫(kù)不會(huì)讓他依賴其他作者和所有者的幾十個(gè) module。

這意味著只需少量依賴項(xiàng)就可以構(gòu)建豐富、復(fù)雜的應(yīng)用程序。畢竟無(wú)論工具多好,它都無(wú)法消除重用代碼所涉及的風(fēng)險(xiǎn),因此最強(qiáng)的緩解措施始終是只有一個(gè)小的依賴樹。

本文轉(zhuǎn)自O(shè)SCHINA

本文標(biāo)題:Go 如何應(yīng)對(duì)供應(yīng)鏈攻擊?

本文地址:https://www.oschina.net/news/189878/golang-supply-chain

責(zé)任編輯:未麗燕 來(lái)源: 開源中國(guó)
相關(guān)推薦

2022-04-13 14:49:59

安全供應(yīng)鏈Go

2022-03-04 14:24:21

區(qū)塊鏈技術(shù)供應(yīng)鏈

2023-05-29 13:44:10

2023-10-17 07:09:36

供應(yīng)鏈工人工作條件

2023-05-16 14:58:05

2023-02-23 07:52:20

2021-04-25 15:49:06

拜登黑客攻擊

2022-03-26 22:51:06

區(qū)塊鏈供應(yīng)鏈技術(shù)

2022-02-21 10:12:20

供應(yīng)鏈攻擊網(wǎng)絡(luò)攻擊

2021-09-12 14:38:41

SolarWinds供應(yīng)鏈攻擊Autodesk

2022-06-02 14:11:42

區(qū)塊鏈藥品供應(yīng)鏈數(shù)據(jù)

2018-11-09 15:46:34

ICT供應(yīng)鏈漏洞

2021-05-11 11:11:00

漏洞網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2022-03-14 14:37:53

網(wǎng)絡(luò)攻擊供應(yīng)鏈攻擊漏洞

2020-06-01 08:45:17

GitHub代碼開發(fā)者

2020-12-24 11:09:44

VMwareCiscoSolarWinds

2021-09-16 14:59:18

供應(yīng)鏈攻擊漏洞網(wǎng)絡(luò)攻擊

2023-06-06 12:53:45

2022-11-14 10:32:56

供應(yīng)鏈技術(shù)

2021-08-31 16:22:14

供應(yīng)鏈攻擊網(wǎng)絡(luò)攻擊零信任
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)