
Escaneia Listas de Materiais de Software (SBOMs) em busca de vulnerabilidades de segurança

bomber é uma aplicação que analisa SBOMs em busca de vulnerabilidades de segurança.
Então você pediu a um fornecedor uma Lista de Materiais de Software (SBOM) para um de seus produtos de código fechado, e eles forneceram uma em um arquivo JSON... e agora?
A primeira coisa que você vai querer fazer é verificar se algum dos componentes listados na SBOM possui vulnerabilidades de segurança, e que tipo de licenças esses componentes têm. Isso ajudará você a identificar o tipo de risco que estará assumindo ao usar o produto.
Encontrar vulnerabilidades de segurança e informações de licença para componentes identificados em uma SBOM é exatamente para o que bomber foi criado. bomber pode ler qualquer formato JSON ou XML baseado em CycloneDX, ou uma SBOM formatada em JSON SPDX ou Syft, e informar rapidamente se existem vulnerabilidades.
O software pode ser de código aberto ou fechado. Você pode considerar componentes de terceiros encontrados no GitHub ou em qualquer repositório público de código fonte como código aberto. Tecnicamente, o software que você cria internamente em sua própria empresa também é código aberto – não é público, mas suas equipes internas podem vê-lo. O software de código fechado também pode ser interno, mas geralmente é aquele que você compra de fornecedores externos.
As empresas podem usar ferramentas SCA fornecidas por fornecedores como GitHub, Sonatype, Snyk, etc., para analisar qualquer tipo de código aberto e fornecer dados de vulnerabilidade – e até gerar SBOMs em alguns casos. O que eles não podem fazer (ainda...) é analisar software de código fechado ao qual você não tem visibilidade. É aqui que as SBOMs e o bomber entram em ação. As SBOMs fornecem a composição do software ao qual você não pode acessar, e o bomber determina se algo na SBOM possui vulnerabilidades.
Criamos o bomber para analisar as SBOMs de código fechado fornecidas quando você as recebe de fornecedores. Ele também pode analisar SBOMs de código aberto e, tecnicamente, você poderia usar o bomber como uma ferramenta SCA de código aberto, se desejar.
Existem vários formatos de SBOM disponíveis atualmente. bomber suporta os seguintes:

bomber suporta múltiplas fontes de informações sobre vulnerabilidades. Chamamos essas fontes de provedores. Atualmente, bomber usa OSV como provedor padrão, mas você também pode usar o Banco de Dados de Avisos do GitHub, o Índice OSS da Sonatype ou Snyk.
Neste momento, observe que OSV é gratuito e não requer credenciais para uso; Índice OSS da Sonatype é gratuito, mas exige registro e obtenção de um token; e o suporte a Snyk requer uma licença Snyk.
Além dos dados que o bomber coleta dos Provedores, ele também enriquece os dados de vulnerabilidade com informações extras, como probabilidades de exploração.
Observe que cada provedor suporta ecossistemas diferentes, então, se você não estiver vendo vulnerabilidades em um, tente outro. Um ecossistema é simplesmente o gerenciador de pacotes ou o tipo de pacote. Exemplos incluem rpm, npm, gems, etc. É importante entender que cada provedor pode relatar vulnerabilidades diferentes. Em caso de dúvida, consulte alguns deles.
Se o bomber não encontrar vulnerabilidades, isso não significa que não existam. Significa apenas que o provedor usado não detectou nenhuma ou não suporta o ecossistema. Alguns provedores têm vulnerabilidades que retornam sem informações de Gravidade. Nesse caso, a Gravidade será listada como "UNDEFINED".
A documentação dos provedores para o bomber pode ser encontrada:
Você pode usar o Homebrew para instalar o bomber usando o seguinte:
brew tap devops-kung-fu/homebrew-tap
brew install devops-kung-fu/homebrew-tap/bomber
Se você não tiver o Homebrew, ainda pode baixar a versão mais recente (ex: bomber_0.4.1_darwin_all.tar.gz), extrair os arquivos do arquivo e usar o binário bomber.
Se desejar, você pode mover o binário bomber para o diretório /usr/local/bin ou para qualquer lugar em seu PATH.