GitHub已經為GitHubActions上的npm包引入出處聲明機制。通過使用一個特殊的出處標志,軟件包維護者可以讓消費者相信,輸出的軟件包是使用鏈接的源碼庫構建的。通過npm包管理器,使用JavaScript的開發者可以使用成千上萬的包來為他們的項目添加新的特性和功能。
為幫助說明為什麼這一發展是有用的,GitHub說大多數人不會把一個隨機的USB插入他們的電腦,以防它有惡意軟件,在npm上找到的軟件包也是如此。雖然代碼可能是開源的,但你實際上不知道這個包是否是由該源代碼構建的。而有出處聲明,npm的軟件包可以與源代碼聯系起來。
GitHub介紹說,在過去幾年中,攻擊者對流行的npm包進行攻擊,如UAParser.js、Command-Option-Argument和rc。這些攻擊並不直接破壞源代碼,而是使用被破壞的證書來發佈一個惡意版本的軟件包。通過實際鏈接發佈的軟件包和源代碼,消費者可以更加確信他們正在安裝可信任的軟件。
如果你想深入解npm出處聲明機制的細節,請查看GitHub的博文:
https://github.blog/2023-04-19-introducing-npm-package-provenance/