Android Studio 產製 SBOM 軟體物料清單
前言 公司專案近期收到客戶的要求,疑似因為數發部想推動公部門的開放原始碼,需要廠商填寫系統相關資訊,其中一項就包含 SBOM 軟體物料清單。 什麼是 SBOM 軟體物料清單 SBOM 全稱為 Software Bill of Materials,中文翻譯為軟體物料清單。 白話來說,SBOM 就是一份描述軟體專案使用到的套件清單,就像買零食會看到的原料清單一樣。 SBOM 需要包含: 供應商名稱 套件名稱 套件版本 其他可識別套件的 ID 依賴關係 SBOM表作者 產表時間 SBOM 的報告格式: Software Package Data Exchange (SPDX): Linux 基金會推動。 CycloneDX: OWASP 發行。 Software Identification (SWID) Tags: ISO & IEC 發行。 為什麼要做 讓採購方可以清楚知道,該軟體中有使用到哪些套件,進而在採購與使用前發現有疑慮的資安問題。 OCF Lab 拒絕受駭!美國推行「軟體物料清單」公開軟體組成,採購更安心 實作 SPDX Gradle Plugin Github: spdx/spdx-gradle-plugin libs.versions.toml 1 2 3 4 5 6 7 [versions] # ... spdx = "0.8.0" [plugins] # ... spdx = { id = "org.spdx.sbom", version.ref = "spdx"} Top-Level build.gradle.kts 1 2 3 4 5 6 // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { // 略... // 加入 alias(libs.plugins.spdx) apply false } build.gradle.kts (App Level) 1 2 3 4 5 6 7 8 9 10 11 12 13 plugins { // 略... alias(libs.plugins.spdx) } // 加入以下 spdxSbom { targets { create("release") { configurations.set(listOf("releaseRuntimeClasspath")) } } } 📂 參考資料 Issue: Project Configuration Question #49 ...