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 以保持最新状态。这种判断力才是真正的交付成果。
*仅在示例代码上进行演示。不包含任何客户或设备数据。*
标签:应用安全