最好的免費開源供應鏈安全工具:鎖定檔案版本 - r2c

banq 發表於 2022-01-28

鎖定檔案是依賴清單的“編譯”版本。它指定安裝的每個依賴項的確切版本。一個好的鎖檔案格式遞迴地指定依賴關係的所有依賴關係。一些鎖檔案還為依賴二進位制檔案或源指定了一組允許的 SHA 雜湊值(請參閱後面的文章,哪些鎖檔案支援這種額外的特異性級別)。

例如,在 Python 中,Pipfile.lock 中相應的鎖定檔案條目可能如下所示:

"click": {
        "hashes": ["sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3", "sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b"],
        "index": "pypi",
        "version": "==8.0.3"
    },

沒有鎖檔案,你不知道:

  • 實際安裝了哪些版本的依賴項
  • 它們的安裝位置
  • 依賴版本或內容何時更改

知道這些會阻止您通過依賴項被黑客入侵嗎?預防角度有限,但有一個小好處:只需信任第一次使用(TOFU)。您可以免受相同版本的軟體包的靜默更新。

更大的好處是響應供應鏈中的事件。使用內容雜湊鎖定檔案,您可以推斷您是否受到漏洞/惡意程式包的影響,而不必根據版本或範圍說明符進行猜測,因為構建環境是確定性和可重現的。