FerroSCA
Servidor SBOM / SCA e de gerenciamento de vulnerabilidades nativo em Rust
Um servidor SBOM / SCA e de gerenciamento de vulnerabilidades nativo em Rust. Ele ingere SBOMs CycloneDX e SPDX, pontua findings com CVSS e EPSS e serve resultados por uma REST API. Roda como um único processo Rust — sem JVM, sem camada de front-end separada, sem camada de worker separada — inicia em menos de um segundo e embute seu dashboard no mesmo binário. AMI Amazon Linux 2023 hardened (arm64 / Graviton).
FerroSCA ingere SBOMs CycloneDX 1.4 / 1.5 / 1.6 (JSON e XML) e SPDX 2.2 / 2.3, correlaciona os componentes com dados públicos de vulnerabilidades (NVD JSON 2.0, OSV, feeds públicos de advisories e o catálogo CISA KEV), pontua findings com CVSS v2 / v3 / v4 e EPSS, avalia políticas e expõe resultados por uma REST API. Ele dá suporte a identificadores Package URL 0.6 e CPE 2.3, matching ciente de distro para imagens base Alpine / Debian / Ubuntu, um policy engine com 30+ condições e detecção de licenças SPDX. Notificações vão por Email e Webhook. A autenticação é por usuário local (chaves de API SHA3-256), OIDC e LDAP (gated), com TLS via rustls e ACL em nível de projeto para mutações. A API é uma REST API nativa do FerroSCA (padrão), mais uma edição opt-in compatível no wire protocol com Dependency-Track REST API v1 (dtrack-compat) para migração. Escopo honesto: a Dependency-Track API tem 100% de cobertura de paths, mas cerca de 69% de deep-schema (simetria de presença, não fidelidade em nível de campo) — nunca é comercializada como 100% wire-compatible ou drop-in; MySQL é excluído, e a topologia Marketplace suportada é single-node. Engenharia: #![forbid(unsafe_code)] em todos os crates, clippy limpo com -D warnings, sem unwrap() em código de produção, gate cargo deny, CycloneDX SBOM + self-VDR no CI e parsers testados com fuzzing.
O problema
A segurança da cadeia de suprimentos de software precisa de um servidor que ingira SBOMs (CycloneDX / SPDX), correlacione os componentes de dependência com dados públicos de vulnerabilidades, calcule pontuações com CVSS e EPSS e continue monitorando-os sob políticas definidas. Um servidor típico de SCA / gerenciamento de vulnerabilidades tende a ser uma pilha de múltiplas camadas — JVM, um front-end separado, workers separados, um banco de dados externo — o que é operacionalmente pesado. A necessidade é de um servidor SBOM / SCA enxuto para o qual também seja fácil migrar.
Como funciona
- 1
Ingere SBOMs e calcula suas pontuações
O FerroSCA ingere SBOMs CycloneDX 1.4 / 1.5 / 1.6 (JSON / XML) e SPDX 2.2 / 2.3, correlaciona componentes com NVD JSON 2.0, OSV, feeds de avisos públicos e CISA KEV, e atribui pontuações aos resultados com CVSS v2 / v3 / v4 e EPSS. Ele oferece suporte a identificadores Package URL 0.6 e CPE 2.3, e correspondência inteligente com as distribuições Alpine / Debian / Ubuntu.
- 2
Servido a partir de um único processo
Os resultados são servidos por meio de uma REST API e o dashboard está incorporado no mesmo binário. Ele funciona como um único processo Rust — sem JVM, sem camada de front-end separada, sem camada de worker separada —, inicia em menos de um segundo e consome cerca de 256 MB de RAM quando ocioso. Inclui um mecanismo de políticas com mais de 30 condições e detecção de licenças SPDX.
- 3
API nativa + edição compatível com DT
Por padrão, ele serve uma REST API nativa do FerroSCA e, para migração, você pode optar por uma edição compatível a nível de protocolo com a REST API v1 do Dependency-Track (dtrack-compat). A autenticação é por usuário local (chaves de API SHA3-256), OIDC e LDAP (controlada); TLS via rustls; ACL em nível de projeto para mutações; notificações por Email e Webhook.
Destaques
Ingestão de SBOM (CycloneDX 1.4–1.6 JSON / XML, SPDX 2.2 / 2.3) mais inteligência de vulnerabilidades (NVD, OSV, advisories públicos, CISA KEV) pontuada com CVSS v2 / v3 / v4 + EPSS.
Um único processo Rust — sem JVM, sem camada separada de front-end ou worker; boot sub-segundo, idle abaixo de 256 MB RAM, com o dashboard embutido no binário.
REST API nativa do FerroSCA por padrão, mais uma edição opt-in compatível no wire protocol com Dependency-Track REST API v1 para migração. Escopo honesto: DT API é compatível em paths (~69% deep-schema), single-node, MySQL excluído.
O que está incluído
- AMI do Amazon Linux 2023 com hardening (arm64 / Graviton, roda em classes t4g / c7g / m7g / r7g)
- Um único binário em Rust que implementa o servidor de SBOM / SCA e gerenciamento de vulnerabilidades (sem JVM, sem camada de front-end/worker separada, inicialização em menos de um segundo, consumo de RAM inferior a 256 MB, dashboard incorporado)
- Ingestão de SBOM: CycloneDX 1.4 / 1.5 / 1.6 (JSON / XML) + SPDX 2.2 / 2.3, com exportação para CycloneDX, SPDX, VDR e VEX
- Inteligência de vulnerabilidades: NVD JSON 2.0, OSV, feeds de avisos públicos e CISA KEV, com enriquecimento de EPSS, consumo de CSAF 2.0 / VEX 1.4 e importação de espelho em redes isoladas (air-gapped)
- Cálculo de pontuação CVSS v2 / v3 / v4 + EPSS, Package URL 0.6 / CPE 2.3, correspondência inteligente com as distribuições Alpine / Debian / Ubuntu, e um mecanismo de políticas com mais de 30 condições, além de detecção de licenças SPDX
- Uma REST API nativa do FerroSCA (padrão) mais uma edição compatível a nível de protocolo com a REST API v1 do Dependency-Track, notificações por Email / Webhook, autenticação de usuário local (chaves de API SHA3-256) / OIDC / LDAP, TLS via rustls e ACL em nível de projeto
- Sem plano de controle separado, sem envio de telemetria externa e sem verificação de chave de licença (cobrado por instância por hora através da sua fatura da AWS)
Casos de uso
Ingestão de SBOMs (CycloneDX / SPDX) gerados no pipeline de CI/CD e monitoramento contínuo de vulnerabilidades nos componentes de dependência
Equipes que desejam um servidor SBOM / SCA enxuto de binário único em seu próprio EC2 em vez de uma pilha de múltiplas camadas baseada em JVM
Migração a partir do Dependency-Track através da edição compatível a nível de protocolo com a REST API v1
Execução de um servidor de gerenciamento de vulnerabilidades inteiramente dentro de sua própria VPC, sem plano de controle separado e sem envio de telemetria externa
FAQ
Quais formatos de SBOM são suportados?
A ingestão suporta CycloneDX 1.4 / 1.5 / 1.6 (JSON e XML) e SPDX 2.2 / 2.3, com exportação para CycloneDX, SPDX, VDR e VEX. Oferece upload via streaming, limite de memória (ceiling) e processamento assíncrono baseado em tokens.
De onde vêm os dados de vulnerabilidades?
Do NVD JSON 2.0, OSV, feeds de avisos públicos e do catálogo CISA KEV, com enriquecimento de EPSS. Ele também consome CSAF 2.0 / VEX 1.4 e suporta importação de espelho para redes isoladas (air-gapped).
Ele é compatível com o Dependency-Track?
O padrão é a REST API nativa do FerroSCA. Para migração, você pode optar por uma edição compatível a nível de protocolo com a REST API v1 do Dependency-Track (dtrack-compat). Em termos francos, no entanto, a API do Dependency-Track oferece 100% de cobertura de caminhos, mas cerca de 69% de esquema profundo (simetria de presença, não fidelidade em nível de campo) — ela nunca é apresentada como 100% compatível a nível de protocolo ou drop-in, e o MySQL está excluído.
Isso substitui um serviço da AWS?
O FerroSCA atua na área de código aberto de SBOM / SCA e gerenciamento de vulnerabilidades, não sendo posicionado como um substituto para nenhum serviço específico da AWS. É um servidor autogerenciado que roda em suas próprias instâncias do Amazon EC2, sendo fornecido como uma AMI padrão do Amazon Linux 2023 (arm64 / Graviton) que você executa dentro de sua própria VPC.
E quanto à topologia e postura de segurança?
A topologia suportada no Marketplace é de nó único. A autenticação é por usuário local (chaves de API SHA3-256), OIDC e LDAP (controlada); TLS via rustls; ACL em nível de projeto para mutações. Na engenharia: #![forbid(unsafe_code)] em todos os crates, clippy limpo com -D warnings, sem unwrap() no código de produção, um gate de cargo deny, um CycloneDX SBOM + self-VDR no CI e parsers testados via fuzzing.
Modelo de precificação
Taxa horária de software + EC2 (classe t4g / c7g / m7g / r7g, Arm). Medição por tipo de instância.
Outros produtos S4
S4 — Squished S3
Gateway transparente de compressão S3 com GPU
S4 Logs
Arquive CloudWatch Logs em S3 com zstd
S4 Metrics
Controle a cardinalidade de métricas do CloudWatch