作者:Eric Gregory
软件供应链安全对企业至关重要,创建软件材料清单 (SBOM,Software Bill of Materials) 是每个组织安全框架的重要组成部分。
在这篇博客中,我们将探讨如何使用常见的开源工具 syft[1] 和 grype[2] 为 wasmCloud 项目生成 SBOM。
什么是 SBOM?
软件供应链攻击利用现代软件构建的方式,利用其他软件项目广泛依赖的库和工具中的漏洞。
Log4Shell 攻击是这一策略的著名案例之一。攻击者通过针对 Log4j Java 日志框架(世界上最常用语言之一的常见依赖项),在依赖 Log4j 的无数项目中获得了立足点。
Log4Shell 攻击最具挑战性的方面之一,是许多团队不知道他们的项目是否依赖于 Log4j。即使他们的项目不直接依赖,有时它们的依赖项却是。软件供应链缺乏透明度。
对于许多人来说,修复漏洞需要耗时的研究,浪费的时间意味着漏洞持续存在。这一挑战突显了对依赖项普遍记录的需求——即软件供应链的文档记录。
SBOM 的作用就是提供一个权威、易于参考的记录,列出给定项目的所有软件依赖项,使得发现漏洞后易于评估和修复。今天,美国国家标准与技术研究所 (NIST) 建议组织将 SBOM 作为其安全框架的一部分,正是出于这个原因。
为 wasmCloud 项目生成 SBOM
要完成这个示例,你需要:
wasmCloud Shell (wash) 你选择的语言工具链(Go、Rust 或 TypeScript) syft,一个用于生成 SBOM 的开源工具 grype,一个用于扫描 SBOM 漏洞的开源工具
首先,创建一个新组件:
wash new component hello
wash 会提供项目模板选择。选择你所选语言中的“Hello world”模板:
? Select a project template: ›
hello-world-rust: a hello-world component (in Rust) that responds over an HTTP connection
hello-world-tinygo: a hello-world component (in TinyGo) that responds over an HTTP connection
hello-world-typescript: a hello-world component (in TypeScript) that responds over an HTTP connection
在 wash 生成项目文件后,到新的 hello 项目目录:
cd hello
接下来,运行 wash build
——这将更新我们的本地依赖并编译组件:
wash build
现在是时候使用 syft 为项目生成 SBOM 了。运行以下命令:
syft scan dir:. --output spdx-json=sbom.spdx.json
使用 --output
参数意味着我们的命令将在工作目录中生成一个名为 sbom.spdx.json
的文件。
现在我们有了一些结构良好的数据列出我们的依赖项,可以使用 grype 扫描 SBOM 中的漏洞:
grype sbom.spdx.json
Grype 将比较你 SBOM 中列出的依赖项与工具的漏洞数据库。输出应如下所示:
✔ Vulnerability DB [updated]
✔ Scanned for vulnerabilities [0 vulnerability matches]
├── by severity: 0 critical, 0 high, 0 medium, 0 low, 0 negligible
└── by status: 0 fixed, 0 not-fixed, 0 ignored
No vulnerabilities found
参与其中
如果你想了解更多关于安全和 wasmCloud 的信息,请阅读 OSTIF 的安全评估[3]或查看 wasmCloud 的政策服务[4]和秘密后端[5]文档。
想讨论安全问题吗?欢迎加入我们的 wasmCloud Slack[6] 或每周的(虚拟)wasmCloud 社区会议[7]。
syft: https://github.com/anchore/syft
[2]grype: https://github.com/anchore/grype
[3]安全评估: https://ostif.org/ostif-has-completed-a-security-audit-of-wasmcloud/
[4]政策服务: https://wasmcloud.com/docs/deployment/security/policy-service
[5]秘密后端: https://wasmcloud.com/docs/deployment/security/secrets
[6]Slack: https://slack.wasmcloud.com/
[7]社区会议: https://wasmcloud.com/community
点击【阅读原文】阅读网站原文。
CNCF概况(幻灯片)
扫描二维码联系我们!
CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux Foundation,是非营利性组织。
CNCF(云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请关注CNCF微信公众号。