FerroSCA
Servidor SBOM / SCA y de gestión de vulnerabilidades nativo en Rust
Servidor SBOM / SCA y de gestión de vulnerabilidades nativo en Rust. Ingiere SBOMs CycloneDX y SPDX, puntúa hallazgos con CVSS y EPSS, y sirve resultados mediante una REST API. Se ejecuta como un único proceso Rust — sin JVM, sin capa front-end separada, sin capa worker separada — arranca en menos de un segundo e integra el dashboard en el mismo binario. AMI Amazon Linux 2023 endurecida (arm64 / Graviton).
FerroSCA ingiere SBOMs CycloneDX 1.4 / 1.5 / 1.6 (JSON y XML) y SPDX 2.2 / 2.3, correlaciona los componentes con datos públicos de vulnerabilidades (NVD JSON 2.0, OSV, feeds públicos de avisos y el catálogo CISA KEV), puntúa hallazgos con CVSS v2 / v3 / v4 y EPSS, evalúa políticas y expone resultados mediante una REST API. Soporta identificadores Package URL 0.6 y CPE 2.3, matching consciente de distribución para imágenes base Alpine / Debian / Ubuntu, un motor de políticas con 30+ condiciones y detección de licencias SPDX. Las notificaciones van por Email y Webhook. La autenticación es usuario local (claves API SHA3-256), OIDC y LDAP (gated), con TLS mediante rustls y ACL por proyecto en mutaciones. La API es una REST API nativa de FerroSCA (estándar), más una edición opcional compatible a nivel wire con Dependency-Track REST API v1 (dtrack-compat) para migración. Alcance honesto: la Dependency-Track API tiene 100% de cobertura de rutas, pero alrededor de 69% de deep-schema (simetría de presencia, no fidelidad a nivel de campo) — nunca se comercializa como 100% wire-compatible ni drop-in; MySQL queda excluido, y la topología Marketplace soportada es de nodo único. Ingeniería: #![forbid(unsafe_code)] en cada crate, clippy limpio con -D warnings, sin unwrap() en código de producción, gate cargo deny, CycloneDX SBOM + self-VDR en CI y parsers probados con fuzzing.
El problema
La seguridad de la cadena de suministro de software requiere un servidor que ingeste SBOM (CycloneDX / SPDX), correlacione los componentes de dependencia con datos públicos de vulnerabilidades, los califique con CVSS y EPSS, y continúe supervisándolos según políticas. Un servidor típico de SCA / gestión de vulnerabilidades suele consistir en una pila de múltiples niveles (JVM, un frontend independiente, workers independientes y una base de datos externa), lo que resulta pesado de operar. La necesidad es contar con un servidor SBOM / SCA ligero al que también sea fácil migrar.
Cómo funciona
- 1
Ingesta SBOM y los califica
FerroSCA ingesta SBOM de CycloneDX 1.4 / 1.5 / 1.6 (JSON / XML) y SPDX 2.2 / 2.3, correlaciona componentes con NVD JSON 2.0, OSV, fuentes de avisos públicos y CISA KEV, y califica los hallazgos con CVSS v2 / v3 / v4 y EPSS. Admite identificadores Package URL 0.6 y CPE 2.3, y coincidencia adaptada a la distribución para Alpine / Debian / Ubuntu.
- 2
Sirve desde un único proceso
Los resultados se sirven a través de una REST API y el dashboard está integrado en el mismo binario. Se ejecuta como un único proceso de Rust — sin JVM, sin capa de frontend independiente ni capa de workers independiente —, arranca en menos de un segundo y consume menos de unos 256 MB de RAM en reposo. Incluye un motor de políticas con más de 30 condiciones y detección de licencias SPDX.
- 3
API nativa + edición compatible con DT
Por defecto, ofrece una REST API nativa de FerroSCA, y para facilitar la migración, puede optar por una edición compatible a nivel de protocolo con la REST API v1 de Dependency-Track (dtrack-compat). La autenticación admite usuario local (claves API SHA3-256), OIDC y LDAP (filtrado); TLS mediante rustls; ACL a nivel de proyecto para modificaciones; y notificaciones por Email y Webhook.
Características destacadas
Ingesta de SBOM (CycloneDX 1.4–1.6 JSON / XML, SPDX 2.2 / 2.3) más inteligencia de vulnerabilidades (NVD, OSV, avisos públicos, CISA KEV) puntuada con CVSS v2 / v3 / v4 + EPSS.
Un único proceso Rust — sin JVM, sin capa front-end ni worker separada; arranque en menos de un segundo, en reposo por debajo de 256 MB RAM, con el dashboard embebido en el binario.
REST API nativa de FerroSCA por defecto, más una edición opcional compatible a nivel wire con Dependency-Track REST API v1 para migración. Alcance honesto: DT API es compatible en rutas (~69% deep-schema), nodo único, MySQL excluido.
Qué incluye
- AMI de Amazon Linux 2023 reforzada (arm64 / Graviton, se ejecuta en clases t4g / c7g / m7g / r7g)
- Un único binario de Rust que implementa el servidor de SBOM / SCA y gestión de vulnerabilidades (sin JVM, sin capas independientes de frontend o workers, arranque en menos de un segundo, menos de 256 MB de RAM, dashboard integrado)
- Ingesta de SBOM: CycloneDX 1.4 / 1.5 / 1.6 (JSON / XML) + SPDX 2.2 / 2.3, con exportación a CycloneDX, SPDX, VDR y VEX
- Inteligencia de vulnerabilidades: NVD JSON 2.0, OSV, fuentes de avisos públicos y CISA KEV, con enriquecimiento de EPSS, consumo de CSAF 2.0 / VEX 1.4 e importación de mirrors para entornos aislados
- Calificación CVSS v2 / v3 / v4 + EPSS, Package URL 0.6 / CPE 2.3, coincidencia adaptada a la distribución para Alpine / Debian / Ubuntu, y un motor de políticas con más de 30 condiciones además de detección de licencias SPDX
- Una REST API nativa de FerroSCA (por defecto) más una edición opcional compatible a nivel de protocolo con la REST API v1 de Dependency-Track, notificaciones por Email / Webhook, autenticación de usuario local (claves API SHA3-256) / OIDC / LDAP, TLS mediante rustls y ACL a nivel de proyecto
- Sin plano de control independiente, sin telemetría saliente y sin verificación de clave de licencia (facturado por instancia por hora a través de su factura de AWS)
Casos de uso
Ingestar SBOM (CycloneDX / SPDX) generados en CI/CD y monitorizar continuamente los componentes de dependencia frente a vulnerabilidades
Equipos que desean un servidor SBOM / SCA ligero de binario único en sus propias instancias de EC2 en lugar de una pila multinivel basada en JVM
Migrar desde Dependency-Track a través de la edición compatible a nivel de protocolo con la REST API v1
Ejecutar un servidor de gestión de vulnerabilidades completamente dentro de su propia VPC, sin plano de control independiente y sin telemetría saliente
Preguntas frecuentes
¿Qué formatos de SBOM son compatibles?
La ingesta admite CycloneDX 1.4 / 1.5 / 1.6 (JSON y XML) y SPDX 2.2 / 2.3, con exportación a CycloneDX, SPDX, VDR y VEX. Ofrece subida en streaming, un límite de memoria y procesamiento asíncrono basado en tokens.
¿De dónde proceden los datos de vulnerabilidades?
Proceden de NVD JSON 2.0, OSV, fuentes de avisos públicos y el catálogo KEV de CISA, enriquecidos con EPSS. También consume CSAF 2.0 / VEX 1.4 y admite la importación de mirrors para entornos aislados.
¿Es compatible con Dependency-Track?
Por defecto, se ofrece la REST API nativa de FerroSCA. Para la migración, puede optar por una edición compatible a nivel de protocolo con la REST API v1 de Dependency-Track (dtrack-compat). No obstante, siendo sinceros sobre el alcance, la API de Dependency-Track cuenta con una cobertura de rutas del 100%, pero solo alrededor de un 69% de esquema profundo (simetría de presencia, no fidelidad a nivel de campo); nunca se presenta como 100% compatible a nivel de protocolo o drop-in, y MySQL queda excluido.
¿Es esto un reemplazo para un servicio de AWS?
FerroSCA se sitúa en el espacio de código abierto de SBOM / SCA y gestión de vulnerabilidades y no está concebido como un reemplazo para ningún servicio de AWS en particular. Es un servidor autogestionado que se ejecuta en sus propias instancias de Amazon EC2, distribuyéndose como una AMI normal de Amazon Linux 2023 (arm64 / Graviton) que ejecuta dentro de su propia VPC.
¿Qué hay de la topología y la postura de seguridad?
La topología compatible en Marketplace es de nodo único. La autenticación es mediante usuario local (claves API SHA3-256), OIDC y LDAP (filtrado); TLS a través de rustls; ACL a nivel de proyecto para modificaciones. En ingeniería: #![forbid(unsafe_code)] en cada crate, clippy limpio en -D warnings, sin unwrap() en el código de producción, un gate de cargo deny, CycloneDX SBOM + VDR propio en CI y parsers probados con fuzzing.
Modelo de precios
Tarifa horaria de software + EC2 (clase t4g / c7g / m7g / r7g, Arm). Medición por tipo de instancia.
Otros productos S4
S4 — Squished S3
Gateway transparente de compresión S3 con GPU
S4 Logs
Archiva CloudWatch Logs en S3 con zstd
S4 Metrics
Gobierna la cardinalidad de métricas de CloudWatch