跳至內容

使用 LavaMoat 解決軟體供應鏈安全問題

LavaMoat 是一套安全工具,適用於任何 JavaScript 應用程式,可降低軟體供應鏈風險。

3 分鐘閱讀
使用 LavaMoat 解決軟體供應鏈安全問題

LavaMoat 是一款免費且開源的工具,專為任何重視供應鏈安全的 JavaScript 開發團隊所設計。這項由 MetaMask 共同創辦人 Kumavis 所發想的產品,同時解決了 Web3 的安全疑慮,以及開源生態系中長期存在的結構性安全問題。

如果你正在使用 JavaScript(簡稱 JS)進行開發,就必須了解其安全現況及相依套件的風險。JS 工程師鮮少從零開始建構應用程式,通常會將現有的程式碼片段(一般稱為「相依套件」)引入專案中,作為建構模組來使用。這對協作與開發效率來說固然是好事,但如果其中某個相依套件包含惡意程式碼,該怎麼辦?

軟體供應鏈安全涵蓋所有與應用程式相關的環節(例如相依套件),以及參與開發流程的工具(例如建置工具或 CI 系統)。JavaScript 是目前最受開發者歡迎的程式語言,同時也極易受到供應鏈攻擊。這份來自 2017 年的漏洞時間軸顯示,將近一半的攻擊源自 npm——一個廣受使用的開源 JS 套件來源:

資料來源:SonaType

JavaScript 之所以成為攻擊目標,原因在於:

  1. 普及性: 前端與後端皆廣泛使用

  2. 環境權限: 在執行 JavaScript 的環境中,往往能存取大量系統資源,例如網路存取權限

  3. 可變性: 所有內容預設皆可被修改

2018 年的 Copay 錢包駭客事件引起了 Kumavis 對解決此問題的興趣,也成為設計 LavaMoat 的主要參考案例。Copay 是 BitPay 推出的一款自託管比特幣錢包,遭受供應鏈攻擊,導致用戶資金被竊。攻擊者控制了該錢包所使用的某個 npm 相依套件,進而得以發動攻擊。

那麼,解決方案是什麼?目前有幾種論點被提出來解決這個問題。

完全不使用相依套件?不行。

雖然這樣或許更安全,但你真的要放棄開源嗎?那些構成我們共同基礎的公共資源、那些分享與協作的精神?如果你想建構複雜的東西,你真的願意花時間重新發明輪子嗎?

我們也不願意。

隨時審計所有相依套件?不行。

這個想法固然不錯,但你有多少個相依套件?幾百個?幾千個?幾萬個?這根本不切實際——不過,如果你想進行手動審計,LavaMoat 可以幫你優先排查最危險的套件(後續會詳細說明)。

而且,就算你有時間仔細檢視套件的差異,你真的有把握能發現安全漏洞嗎?

這很難說。所以讓我們來探索另一種解決方案:

LavaMoat?可以。

與其完全不使用相依套件,或是隨時審計所有相依套件,不如來看看 LavaMoat 的安全核心——它將套件封裝在獨立的隔離區中,並只賦予它們所需的存取權限。

請記住,惡意程式碼要攻擊你的系統,必須先取得相應的權限。LavaMoat 的核心會逐一檢視你引入專案的第三方程式碼,判斷各相依套件執行所需的權限,並且*只給予那些權限*****。**

LavaMoat 目前正在 MetaMask 保護數千萬名用戶,並在每個開發流程的三個不同階段運作:相依套件安裝、建置,以及執行階段。

為了讓你更直觀地了解,請參考這個相依套件圖視覺化儀表板:

左側列出你的相依套件清單,右側則以神經網路的形式呈現關係圖。顏色依據危險程度的啟發式評估來區分:例如,綠色的套件不會引入任何具有高權限的平台 API。

這裡的核心概念,是幫助你優先排序相依套件的審計工作。

那麼,該如何實作呢?

對應三個開發階段:

  1. 安裝:@lavamoat/allow-scripts

  2. 建置:lavamoat-node

  3. 執行階段:適用於你的打包工具的 lavamoat-x 外掛

這樣就能為惡意程式碼建立一道護城河。

大規模建構軟體

如果你有興趣協助我們,LavaMoat 是開源的!我們正努力為盡可能多的打包工具開發外掛,並希望讓審查政策、以及在賦予套件網路存取權限時設定嚴格限制變得更加容易。歡迎在這裡貢獻你的力量。

也歡迎訂閱我們的開發者電子報以獲取更多最新消息!祝開發愉快。

AI 翻譯。可能包含錯誤。請務必核實資訊。

評價此翻譯

本文作者:

  • MetaMask

    MetaMask,前身為 Consensys Software Inc,是全球最大的自託管金融平台,讓用戶能在單一平台上持有、消費、儲蓄並增值其資產,涵蓋加密貨幣與傳統資產。公司正致力於打造實現上述目標的消費者平台,將支付、儲蓄、投資與數位資產整合於一個無縫的使用體驗中。MetaMask 從全球使用最廣泛的自託管錢包發展而來,讓用戶直接掌控自己的資金與資產,服務範圍遍及約 190 個國家。自 2016 年起,MetaMask 在以太坊的發展歷程中扮演了奠基性的角色。時至今日,MetaMask 位居區塊鏈經濟的核心,致力於構建「開放金融」的作業系統,讓每個人都能全面掌握自己的財務生活。

    閱讀所有文章