GitHub更新套件管理工具NPM,加入一系列新功能來強化NPM生態系的安全性,減少使用者遭受到軟體供應鏈攻擊的機會,新功能包括NPM程式碼瀏覽器、精細度存取權杖(Granular Access Token)。

官方提到,目前憑證被盜是資料洩漏的主要原因之一,但是保護憑證卻不是一件容易的任務,具有廣泛權限的權杖洩漏,可能對軟體供應鏈衝擊巨大。GitHub目標是協助NPM維護者更有效的管理權杖洩漏風險,因此現在於NPM加入精細度存取權限權杖類型,使得NPM套件維護者和組織擁有者,能夠創建精細權限的存取令牌。

在過去用戶並無法創建具有最小權限的權杖,因此無法限縮意外或是故意被濫用權杖的影響,而現在精細度存取權杖則完全達到這個目的,用戶可以創建只一組有限套件和範圍的權杖。NPM的自動化權杖功能發布已經有一段時間,自動化權杖讓用戶能夠發布權杖擁有者有權存取的所有套件,因此用戶通常也使用發布權杖來整合NPM自動化。

但官方提到,發布權杖原本的設計目的是用於互動式工作流程,像是NPM CLI等,且因為2FA的要求,並不推薦在自動化中使用。精細度存取權杖讓NPM組織擁有者自動化組織管理,透過創建權杖來管理一個或多個組織、團隊和成員。

精細度權杖還讓用戶以IP範圍來限制NPM API,並且只有一年的最長有效期。GitHub提到,只有不到10%的NPM權杖被經常使用,這也就代表有許多NPM權杖不必要處於活躍狀態,如此增加了權杖洩漏的可能性,因此定期輪換權杖可以明顯減少NPM組織的攻擊向量。

過去程式碼瀏覽器是一項付費功能,僅供團隊和專業用戶使用,而現在官方改進程式碼瀏覽器,同時免費供用戶使用,更新後的程式碼瀏覽器更穩定快速,而且適用NPM註冊表中的所有套件。這項功能之所以能夠提升NPM套件的安全性,是因為用戶可以在安裝之前,先查看套件程式碼。

過去套件使用者必須下載套件才能檢查其內容,雖然執行npm install來檢查和驗證套件內容很簡單,但這項操作有其風險,因為安裝的套件可能包含惡意程式碼,這些程式碼能夠透過腳本的形式部署到系統中,而使用NPM程式碼瀏覽器,便能夠在使用套件前就仔細查看。

除了兩項新功能更新,官方也持續推行2FA的採用,從2022年11月1日起,所有具有高影響力套件的維護者帳號,都已經被強制要求使用2FA。高影響力套件是指每周下載量超過100萬次,或是擁有超過500名相依者的套件。官方提到,2FA能夠有效防禦帳戶劫持,有效提升NPM JavaScript生態系的安全性。

熱門新聞

Advertisement