軟體供應鏈成為網路威脅的新興入口,Google也提出旨在確保軟體供應鏈安全的框架,名為「軟體產出物供應鏈層級」(Supply chain Levels for Software Artifacts framework,SLSA)。

供應鏈完整性攻擊(非授權修改軟體套件)這兩年大幅增加,而且成為影響所有軟體用戶的共通攻擊途徑。Google 開源安全團隊的Kim Lewandowski指出,雖然市面上已有局部性的解決方案,但是還沒有完整的端到端框架可定義如何緩解軟體供應鏈上的威脅,以及提供一定的安全保證。有鑒於近來像Solaris和Codecov如此大規模的攻擊,Google認為有必要制定一個共通框架,以保護開發商及用戶。

去年底SolarWinds的Orion平臺被駭客借道,將Sunburst等後門程式感染到微軟、FireEye及美國政府單位。今年4月中旬再爆發程式碼覆蓋率(Code Coverage)解決方案供應商Codecov遭駭,讓駭客得以存取客戶的憑證、金鑰和令符(token),危及Codecov服務眾多客戶,美國資安業者Rapid7內部所使用的某些工具程式碼因此外洩。

Google提議的方法是「軟體物件供應鏈層級」(Supply chain Levels for Software Artifacts framework,SLSA,念作salsa),它是以Google內部使用的框架,名為Binary Authorization for Borg為基礎,縮寫為BAB。根據Google解釋BAB為部署時強制檢查機制,確保Google公司工作相關軟體和部署的組態都必須經過檢查和授權,防止作業過程中被人竄改,尤其是可能存取用戶資料的程式碼,BAB也可用於稽核,對不符合要求的地方提出警告。實施8年以來,Google所有營運作業都必須套用這個框架。

Google指出,SLSA的目的是促進開源碼軟體的安全,也能讓使用者了解他們使用的軟體的安全水準。

SLSA是一組產業共識的安全指引,可漸進套用。它和best practice最大差異是在其強制性,企業可自動建立metadata,送進政策引擎,對特定套件(package)或組件(build)平臺給予SLSA認證。若某個產出物(Artifact)獲得最高級等級認證,消費者就可有信心這是未經竄改,且可追溯到源頭的,但目前大部份軟體都做不到。

SLSA包含4個等級,以第4級最高,每一級都包含前面等級的要求。第1級要求組件流程全自動化,且產生出處(provenance)。第2級要求軟體版本控管,以及有代管組件服務(hosted build service)可產生經驗證的出處。第3級要求來源及組件平臺符合一定標準,以分別確保來源可被稽核,及出處完整性(integrity)。第4級則代表所有軟體變更都需有2人審查,且組件流程是相依性完整(hermetic)且可重覆的。

圖片來源_Google

Google今天也開源釋出PoC版SLSA 1出處產生器(provenance generator),讓使用者得以建立並上傳出處,附加在組件產出物,則該組件就達到SLSA 1。Google表示未來也希望和主要來源、組件及套件平臺合作,以推廣這個框架。更多細節可在GitHub上找到

熱門新聞

Advertisement