cosmin-hash/meddevice-sbom-demo

GitHub: cosmin-hash/meddevice-sbom-demo

该项目演示了医疗器械软件如何从代码库自动生成 FDA 524B 条款所需的 SBOM、漏洞扫描报告和 VEX 分类文档的完整合规流水线。

Stars: 0 | Forks: 0

# 面向 FDA 的 SBOM 与网络安全文档 — 演示 **它解决的问题:** 自 2023 年起,对于缺乏适当网络安全文档的“网络设备”,FDA 甚至可以拒绝*受理*其上市前 申请(FD&C 法案第 524B 条)。因网络安全书面材料导致的“拒绝受理”可能会耗费数月时间。当前的 申请模板 (eSTAR) 在结构上对此进行了严格把关 —— 根本无法敷衍了事。 本仓库端到端地展示了,代码库是如何变成申请所需的网络安全产物的 —— 包括生成、扫描、**分类**,以及与法规条款的映射。 ## 它的产出 ``` source code │ syft ▼ CycloneDX / SPDX SBOM → §524B(b)(3): machine-readable bill of materials │ grype ▼ vulnerability findings → §524B(b)(1): basis for the monitoring/response plan │ vexctl (OpenVEX) ▼ VEX triage (affected / → §524B(b)(1)/(2): which findings actually matter, and why not_affected / fixed) + CI workflow (every push) → §524B(b)(2): SBOM automated in CI/CD (SPDF maturity) ``` ## 运行方式(在 WSL2 / Ubuntu 内) ``` bash scripts/install_tools.sh # one-time: Syft, Grype, vexctl bash scripts/run_all.sh # SBOM -> scan -> VEX starter ``` 产物会生成在 `outputs/` 目录中。§524B 的映射位于 `docs/security-summary.md`。 ## 仓库结构图 | 路径 | 说明 | |---|---| | `sample-app/` | 带有**故意**设置的过期依赖的微型应用,因此扫描结果是真实的 | | `scripts/` | `install_tools` · `generate_sbom` · `scan_vulns` · `make_vex` · `run_all` | | `docs/security-summary.md` | 面向审查方的产物 → 将每个输出映射到 §524B(b)(1)/(2)/(3) | | `docs/example-vex.openvex.json` | 符合规范的 OpenVEX,用于展示分类层 | | `.github/workflows/sbom.yml` | CI:在每次 push 时重新生成 SBOM | | `outputs/` | 生成的产物(已被 gitignored;可随时重新生成) | ## 核心要点 Syft 和 Grype 是大众化工具 —— 任何人都可以运行扫描器。真正具有说服力的工作是 **VEX 分类和达到申请标准的文档编写**:判断 40 个漏洞发现中哪些是真正可被利用的,用 FDA 审查员认可的语言为每一个发现进行辩护,并将整个流程接入 CI 以保持最新状态。这种判断力才是真正的交付成果。 *仅在示例代码上进行演示。不包含任何客户或设备数据。*
标签:应用安全