npm 推出發布時惡意軟體掃描與「雙用途」程式碼政策
為何重要
此變動強迫區分合法防禦工具(雙用途程式碼)與惡意軟體,改變了安全相關套件的發布 workflow,開發者需更新自動化指令碼以適應發布延遲。對產業而言,這標誌著開源生態正從「信任」轉向「流程化安全驗證」,影響供應鏈工具廠商及雲端服務提供者的基礎建設需求。
npm 為改善供應鏈安全,強化套件發布前的自動惡意軟體掃描,並針對具備潛在風險的「雙用途」程式碼實施新的後設資料要求。
- 新發布套件將在可用前自動掃描,掃描能力受限時通常有約 5 分鐘延遲,尖峰時段可能達 15 分鐘甚至更久;檢測期間僅支援
npm dist-tag指令,依賴發布版本的指令將無法運作。 - 為因應掃描與審查,發布必須強制
2FA(如 Trusted Publishing 或分期發布),不得使用繞過雙因素認證的程式碼發布未經分期的雙用途套件。 - 雙用途程式碼必須在
package.json加入contentPolicy欄位,並在根目錄包含DISCLOSURE檔案,宣告功能及其合法用途;該宣告需維持持久,未來版本不得移除。