MASTG-TECH-0132: 通过创建 SBOM 对 iOS 依赖项进行软件组成分析 (SCA)

如果您使用 SwiftPM,可以使用 cdxgen以 CycloneDX 格式创建软件物料清单 (SBOM)。目前,不支持 Carthage 和 CocoaPods。您可以要求开发团队提供 SBOM 文件,也可以自己创建。为此,请导航到您要扫描的 Xcode 项目的根目录,然后执行以下命令

$ cdxgen -o sbom.json

创建的 SBOM 文件需要经过 Base64 编码,并上传到 dependency-track进行分析。

$ cat sbom.json | base64
$ curl -X "PUT" "https://:8081/api/v1/bom" \
     -H 'Content-Type: application/json' \
     -H 'X-API-Key: <YOUR API KEY>>' \
     -d $'{
  "project": "<YOUR PROJECT ID>",
  "bom": "<BASE64-ENCODED SBOM>"
  }'

如果生成的 JSON 文件太大,另请查看上传 SBOM 的替代方案

如果您使用的是 Visual Studio Code (vscode) Docker 容器的默认设置,请转到 dependency-track的前端,即 https://:8080。打开您上传了 SBOM 的项目,以验证是否存在任何易受攻击的依赖项。

注意: cdxgen 不支持 SwiftPM 的传递依赖项。