Software Composition Analysis(SCA)是一種資安流程,用來找出軟體裡用到的開源元件。GitHub 的文章指出,現代軟體有高達 94% 的程式碼來自第三方開源套件,數量龐大到難以靠人工一一檢查,因此需要自動化工具找出裡面藏著的已知漏洞、過時版本與授權合規問題。
文章把 SCA 拆成幾個步驟:先掃描原始碼或建置清單,分為讀取清單的「靜態掃描」與直接檢查二進位檔的「動態掃描」;接著建立 SBOM(軟體物料清單),記錄套件位置、版本與授權;最後拿 SBOM 跟 CVE 等漏洞資料庫比對,排出風險高低並給出修補建議。
文章特別提到,SCA 常遇到的困難是「傳遞依賴」看不清楚,套件又依賴別的套件,一層疊一層,掃出來的漏洞清單可能多達數千筆,光靠人力很難消化。文章把 SCA 放進 DevSecOps 與 CI/CD 流程討論,強調應該在開發早期就自動掃描,而不是等上線前才檢查,這正是業界常說的「左移測試」概念。
這篇文章偏向企業資安與維運流程,和孩子寫程式作業的日常關聯不大,但背後的概念值得知道:只要用到別人寫好的套件(像 Python 的 pip 套件、npm 套件),就等於把那段程式碼的安全責任也一起扛起來。養成習慣去留意自己用的套件有沒有更新、有沒有已知問題,是進階學習者遲早要碰到的基本功。
開源資安軟體供應鏈