Skip to main content

SBOMs gerados pelo Snyk agora incluem detalhes das licenças das bibliotecas open source dos seus projetos

Escrito por
blog feature supply chain sbom

9 de dezembro de 2024

0 minutos de leitura

Temos o prazer de anunciar que os SBOMs (listas de materiais de software) gerados pelas ferramentas do Snyk agora incluem informações sobre licenças! Esse novo recurso faz parte dos nossos esforços contínuos na nossa solução de segurança da cadeia de suprimentos de software. As ferramentas da solução, desenvolvidas para priorizar os desenvolvedores, ajudam você a entender melhor a cadeia de suprimentos do seu aplicativo, identificar riscos em potencial e tomar as medidas necessárias para se antecipar a eles.

A importância dos SBOMs para proteger a cadeia de suprimentos de software

A maior parte dos softwares modernos é composta por elementos open source pré-construídos. Eles podem agilizar o desenvolvimento, mas também introduzir vulnerabilidades de segurança e riscos à cadeia de suprimentos. Em resposta a diretrizes regulatórias voltadas à mitigação dessas ameaças, muitas organizações estão adotando a prática de criar listas de materiais de software (SBOMs), inventários detalhados dos componentes e das dependências de seus aplicativos.

Um SBOM é semelhante a uma lista de materiais usada na fabricação, fornecendo informações essenciais para compradores e ferramentas subsequentes. Formatos padronizados, como CycloneDX e SPDX, facilitam a criação de relatórios legíveis por pessoas e processáveis por ferramentas. Para as equipes de AppSec, essa visibilidade é essencial para entender e combater ataques à cadeia de suprimentos e, ao mesmo tempo, cumprir os requisitos regulatórios.

No entanto, integrar a criação de SBOMs ao processo de desenvolvimento pode ser um desafio para os desenvolvedores. Felizmente, ferramentas como o Snyk simplificam esse processo, oferecendo uma maneira prática de gerar SBOMs e dando aos usuários uma visão clara dos componentes que formam seus aplicativos (por exemplo, componentes open source) e de como eles interagem.

A principal conclusão é que criar um SBOM não deve frear a inovação, mas sim permitir que os desenvolvedores priorizem tanto a segurança quanto o tempo de desenvolvimento e, em última análise, ajudar as organizações a reduzir riscos.

Riscos de licenças no desenvolvimento de software

Os SBOMs não servem apenas para listar o que compõe um software: eles também são essenciais para entender os riscos associados às licenças open source. Uma preocupação importante são os riscos de contratos de licença que não oferecem proteção adequada à sua propriedade intelectual. Por exemplo, usar uma licença como a MIT pode deixar você exposto a possíveis problemas de violação de direitos autorais. O fato de a licença MIT exigir apenas atribuição e não restringir o uso ou a distribuição pode ser uma faca de dois gumes: embora ofereça flexibilidade, também facilita que outras pessoas reutilizem seu código sem permissão.

Saber quais tipos de licença são usados pelas dependências dos seus aplicativos permite verificar proativamente se eles apresentam riscos de licença desconhecidos. Os metadados de licença agora incluídos nos SBOMs gerados pelo Snyk podem ajudar as equipes jurídicas, de risco e de auditoria a gerenciar a conformidade com licenças. Muitas vezes, os SBOMs são armazenados ou processados por ferramentas subsequentes, como mecanismos de políticas personalizados ou ferramentas para gerar relatórios destinados a públicos como a equipe jurídica. Além disso, os dados de licença podem ajudar a determinar quais avisos de atribuição são necessários.

Informações sobre licenças nos seus SBOMs com o Snyk

Até agora, os usuários precisavam recorrer a soluções alternativas, como editar ou anotar SBOMs, ou enriquecê-los com dados de outras ferramentas. O Snyk oferece a ferramenta open source parlay para enriquecer SBOMs com dados de fontes de terceiros, como o ecosyste.ms, que fornece informações sobre as licenças associadas a cada dependência. O Snyk já disponibiliza dados de licença em outras áreas do produto, como na interface de linha de comando (CLI) e na interface web. Por isso, incluí-los diretamente nos SBOMs gerados foi o próximo passo natural.

Na verdade, as informações sobre licenças estão entre os principais elementos que o National Institute of Standards and Technology (NTIA) recomenda incluir nos SBOMs e também são um campo obrigatório da FDA. Por isso, elas são essenciais para fins de conformidade. Como resultado, desenvolvedores e equipes de AppSec precisavam recorrer a anotações manuais ou soluções alternativas com APIs ou ferramentas como o Parlay para fornecer essas informações essenciais, que agora estão disponíveis nativamente nos SBOMs do Snyk.

Este exemplo mostra um trecho das informações sobre dependências incluídas nos SBOMs gerados pelo Snyk antes dessa mudança.

Trecho do SBOM antes da inclusão das informações sobre licenças:

{
  "bom-ref": "5-github.com/mattn/go-colorable@v0.0.7",
  "group": "github.com/mattn",
  "name": "github.com/mattn/go-colorable",
  "purl": "pkg:golang/github.com/mattn/go-colorable@v0.0.7",
  "type": "library",
  "version": "v0.0.7"
}

Nesta atualização, o Snyk passou a incluir informações sobre licenças dos ecossistemas compatíveis em todos os SBOMs gerados. Esse novo recurso usa expressões SPDX para exibir os dados de licença com clareza e detectar tanto licenças únicas quanto múltiplas, inclusive quando combinadas com operadores lógicos.

Os metadados de licença adicionados podem ser encontrados em dois locais específicos: nos SBOMs CycloneDX, em components.licenses.expression, e nos SBOMs SPDX, em packages.licenseConcluded. Essa abordagem simplificada amplia a utilidade geral dos artefatos SBOM do Snyk, oferecendo aos usuários e ferramentas subsequentes uma compreensão melhor das dependências de um ativo e permitindo decisões embasadas sobre conformidade com licenças.

Agora, o trecho acima com as informações sobre licenças fica assim:

Trecho do SBOM após a inclusão das informações sobre licenças; as alterações estão indicadas por >:

{
  "bom-ref": "5-github.com/mattn/go-colorable@v0.0.7",
  "group": "github.com/mattn",
  "licenses": [
    {
      "expression": "(MIT AND Apache-2.0)"
    }
  ],
  "name": "github.com/mattn/go-colorable",
  "purl": "pkg:golang/github.com/mattn/go-colorable@v0.0.7",
  "type": "library",
  "version": "v0.0.7"
}

Como faço para incluir informações sobre licenças nos SBOMs gerados pelo Snyk?

Ao gerar um SBOM com o Snyk, os metadados de licença são incluídos automaticamente por padrão em todos os ecossistemas compatíveis e ambientes., Ou seja, você não precisa mudar nada para incluir os metadados de licença nos seus SBOMs nos formatos CycloneDX e SPDX. O recurso funciona com SBOMs gerados pela CLI do Snyk ou pelas várias APIs de geração de SBOM.

Conheça o cenário atual da segurança de código aberto

Entenda as tendências e abordagens atuais para proteger softwares de código aberto e a cadeia de suprimentos.