FerroSCA
Rust-native SBOM / SCA 与漏洞管理服务器
一个 Rust-native SBOM / SCA 和漏洞管理服务器。它摄取 CycloneDX 和 SPDX SBOM,使用 CVSS 和 EPSS 对发现项评分,并通过 REST API 提供结果。它作为单一 Rust 进程运行 — 无需 JVM、无需独立 front-end tier、无需独立 worker tier — 在一秒内启动,并将 dashboard 嵌入同一个二进制文件。加固 Amazon Linux 2023 AMI(arm64 / Graviton)。
FerroSCA 摄取 CycloneDX 1.4 / 1.5 / 1.6(JSON 和 XML)以及 SPDX 2.2 / 2.3 SBOM,将组件与公共漏洞数据(NVD JSON 2.0、OSV、公共 advisory feeds 和 CISA KEV catalogue)关联,使用 CVSS v2 / v3 / v4 和 EPSS 对发现项评分,评估 policy,并通过 REST API 暴露结果。它支持 Package URL 0.6 和 CPE 2.3 identifier,支持 Alpine / Debian / Ubuntu base image 的 distro-aware matching,提供含 30+ 条件的 policy engine,以及 SPDX license detection。通知通过 Email 和 Webhook 发送。认证支持 local-user(SHA3-256 API keys)、OIDC 和 LDAP(gated),TLS 通过 rustls,变更操作具有 project-level ACL。API 默认是 FerroSCA-native REST API(standard),并为迁移提供 opt-in 的 Dependency-Track REST API v1 wire-compatible edition(dtrack-compat)。诚实范围:Dependency-Track API 具备 100% path coverage,但 deep-schema 约 69%(presence symmetry,而非 field-level fidelity)— 从不作为 100% wire-compatible 或 drop-in 营销;不包含 MySQL,受支持的 Marketplace topology 为单节点。工程:每个 crate 都使用 #![forbid(unsafe_code)],clippy 在 -D warnings 下 clean,生产代码无 unwrap(),有 cargo deny gate,CI 中生成 CycloneDX SBOM + self-VDR,并使用 fuzz-tested parsers。
面临挑战
软件供应链安全需要一个服务器,它能够摄取 SBOM(CycloneDX / SPDX)、将依赖组件与公开漏洞数据进行关联、使用 CVSS 和 EPSS 进行评分,并根据策略持续对其进行监控。典型的 SCA / 漏洞管理服务器往往是多层架构 — JVM、独立前端、独立 worker、外部数据库 — 运维负担较重。当前的诉求是一个轻量级且易于迁移的 SBOM / SCA 服务器。
工作原理
- 1
摄取 SBOM 并进行评分
FerroSCA 摄取 CycloneDX 1.4 / 1.5 / 1.6(JSON / XML)和 SPDX 2.2 / 2.3 SBOM,将组件与 NVD JSON 2.0、OSV、公开安全通告源以及 CISA KEV 进行比对,并使用 CVSS v2 / v3 / v4 和 EPSS 对检测结果进行评分。它支持 Package URL 0.6 和 CPE 2.3 标识符,以及针对 Alpine / Debian / Ubuntu 的发行版感知匹配。
- 2
以单进程提供服务
结果通过 REST API 提供,且仪表板已嵌入到同一个二进制文件中。它作为一个单一的 Rust 进程运行 — 无 JVM,无独立的前端层,无独立的 worker 层 — 在 1 秒内即可启动,且空闲时 RAM 占用低于大约 256 MB。它还包含一个具有 30+ 个条件的策略引擎和 SPDX 许可证检测功能。
- 3
原生 API + DT 兼容版本
默认提供 FerroSCA 原生的 REST API,且为了便于迁移,您还可以选择使用 Dependency-Track REST API v1 协议兼容版本(dtrack-compat)。身份验证支持本地用户(SHA3-256 API 密钥)、OIDC 和 LDAP(受控);TLS 采用 rustls;针对变更操作实施项目级 ACL 控制;通过 Email 和 Webhook 进行通知。
产品亮点
SBOM ingest(CycloneDX 1.4–1.6 JSON / XML,SPDX 2.2 / 2.3)加漏洞情报(NVD、OSV、公共 advisories、CISA KEV),使用 CVSS v2 / v3 / v4 + EPSS 评分。
单一 Rust 进程 — 无需 JVM、无需独立 front-end 或 worker tier;亚秒级启动,空闲低于 256 MB RAM,dashboard 嵌入二进制文件。
默认使用 FerroSCA-native REST API,另有用于迁移的 opt-in Dependency-Track REST API v1 wire-compatible edition。诚实范围:DT API 为 path-compatible(~69% deep-schema),单节点,不包含 MySQL。
包含内容
- 经加固的 Amazon Linux 2023 AMI(arm64 / Graviton,运行于 t4g / c7g / m7g / r7g 级别)
- 实现 SBOM / SCA 和漏洞管理服务器的单个 Rust 二进制文件(无 JVM,无独立的前端/worker 层,1 秒内启动,RAM 低于 256 MB,内置仪表板)
- SBOM 摄取:CycloneDX 1.4 / 1.5 / 1.6(JSON / XML)+ SPDX 2.2 / 2.3,支持导出至 CycloneDX、SPDX、VDR 和 VEX
- 漏洞情报:NVD JSON 2.0、OSV、公开安全通告源和 CISA KEV,支持 EPSS 富化、CSAF 2.0 / VEX 1.4 消费以及物理隔离镜像导入
- CVSS v2 / v3 / v4 + EPSS 评分、Package URL 0.6 / CPE 2.3、针对 Alpine / Debian / Ubuntu 的发行版感知匹配,以及一个拥有 30+ 个条件的策略引擎和 SPDX 许可证检测
- FerroSCA 原生 REST API(默认)加可选的 Dependency-Track REST API v1 协议兼容版本、Email / Webhook 通知、本地用户(SHA3-256 API 密钥)/ OIDC / LDAP 身份验证、rustls TLS,以及项目级 ACL
- 无独立控制平面、无遥测数据回传、无许可证密钥验证(通过您的 AWS 账单按实例每小时计费)
适用场景
摄取在 CI/CD 中生成的 SBOM(CycloneDX / SPDX)并持续监控依赖组件漏洞的场景
希望在自己的 EC2 上运行轻量级单二进制 SBOM / SCA 服务器,而不是基于 JVM 的多层架构的团队
希望通过 REST API v1 协议兼容版本从 Dependency-Track 进行迁移的场景
完全在您自己的 VPC 内运行漏洞管理服务器,没有独立的控制平面,也没有遥测回传的场景
常见问题
支持哪些 SBOM 格式?
摄取支持 CycloneDX 1.4 / 1.5 / 1.6(JSON 和 XML)和 SPDX 2.2 / 2.3,并支持导出至 CycloneDX、SPDX、VDR 和 VEX。它提供流式上传、内存上限设置和基于令牌(token)的异步处理。
漏洞数据来自哪里?
数据获取自 NVD JSON 2.0、OSV、公开安全通告源和 CISA KEV 目录,并使用 EPSS 进行数据富化。它还支持消费 CSAF 2.0 / VEX 1.4,并支持面向物理隔离环境的镜像导入。
它与 Dependency-Track 兼容吗?
默认是 FerroSCA 原生的 REST API。为了便于迁移,您可以选择使用 Dependency-Track REST API v1 协议兼容版本(dtrack-compat)。不过坦白讲,Dependency-Track API 虽有 100% 的路径覆盖率,但深层 Schema 仅为约 69%(这体现的是存在性对称,而非字段级的一致性)— 它从未被宣传为 100% 协议兼容或可以直接替代,且不支持 MySQL。
这是 AWS 服务的替代品吗?
FerroSCA 处于开源 SBOM / SCA 和漏洞管理领域,并未被定位为任何特定 AWS 服务的替代品。它是一个在您自己的 Amazon EC2 实例上运行的自托管服务器,以普通的 Amazon Linux 2023 AMI(arm64 / Graviton)形式交付,您可以在自己的 VPC 内运行它。
部署拓扑与安全态势如何?
支持的 Marketplace 拓扑结构为单节点。身份验证支持本地用户(SHA3-256 API 密钥)、OIDC 和 LDAP(受控);TLS 采用 rustls;针对变更操作实施项目级 ACL 控制。在工程设计上:在所有 crate 中均强制执行 #![forbid(unsafe_code)],clippy 检查在 -D warnings 下无任何警告,生产环境代码中无 unwrap(),设有 cargo deny 门禁,CI 中配备 CycloneDX SBOM + 自有 VDR,并采用经过模糊测试的解析器。
计费模式
按小时收取软件费用 + EC2(t4g / c7g / m7g / r7g 级,Arm)。按实例类型计量。