Skip to main content

Reduza os riscos à sua cadeia de suprimentos com uma lista de materiais de software (SBOM)

Escrito por
blog feature supply chain sbom

7 de junho de 2023

0 minutos de leitura

Hoje, temos o prazer de lançar alguns novos recursos como parte dos nossos esforços contínuos na solução Software Supply Chain Security. Essas ferramentas pensadas para desenvolvedores ajudam você a entender melhor a cadeia de suprimentos dos seus aplicativos, identificar possíveis riscos e tomar as medidas necessárias para se antecipar a eles.

A ascensão das SBOMs como parte essencial da segurança da cadeia de suprimentos

Os aplicativos modernos são mais montados do que construídos: softwares livres e de código aberto representam mais de 70% dos softwares atuais. Embora o uso de código aberto no seu aplicativo possa acelerar a chegada ao mercado, também pode trazer complexidades e riscos para sua cadeia de suprimentos. 

Em resposta às orientações regulatórias recentes, criadas para ajudar as organizações a se protegerem, muitas equipes estão incluindo a criação de listas de materiais de software (SBOMs) no SDLC. 

Para relembrar, uma SBOM é um inventário dos componentes que formam seu aplicativo e de suas dependências. Pense nela como algo equivalente à “lista de materiais” usada na fabricação, que informa aos compradores quais peças foram usadas em determinado produto. Formatos padronizados de SBOM, como CycloneDX e SPDX, ajudam a tornar esse inventário legível por pessoas e utilizável por ferramentas subsequentes.

Para as equipes de AppSec, ter visibilidade da composição em toda a empresa é uma etapa importante para entender e reduzir os riscos de ataques à cadeia de suprimentos, mantendo a conformidade com as exigências regulatórias. 

Mas como adotar essas práticas? E qual é o impacto nos fluxos de trabalho dos desenvolvedores? 

No passado, melhorar a postura de segurança podia desacelerar as equipes de desenvolvimento. Mas acreditamos firmemente que os desenvolvedores não deveriam ter que escolher entre inovação e segurança. Com a Snyk, é fácil gerar uma SBOM para seus aplicativos e ter visibilidade dos componentes que os formam (por exemplo, componentes, bibliotecas e frameworks de código aberto) e de como eles funcionam em conjunto. 

Agora disponível para todos, a Snyk oferece ferramentas de CLI pensadas para desenvolvedores, que geram SBOMs no formato SPDX ou CycloneDX localmente ou nos seus pipelines de CI/CD. 

snyk sbom --format spdx2.3+json --all-projects

Com a Project SBOM API — também disponível para todos —, você pode gerar uma SBOM para qualquer projeto de código aberto ou contêiner importado para a Snyk usando um único endpoint de API. 

Exemplo de um pacote em uma SBOM
{
"bom-ref": "35-curl@7.52.1-5",
"type": "library",
"name": "curl",
"version": "7.52.1-5",
"purl": "pkg:deb/debian/curl@7.52.1-5?distro=stretch"
}

Use SBOMs para identificar riscos e agir

Gerar uma SBOM é uma etapa importante para obter visibilidade e manter a conformidade, mas é apenas parte da solução. Muitas vezes, os artefatos de SBOM não fornecem informações práticas para quem os recebe. 

Como desenvolvedor ou profissional de AppSec, você também precisa testar as SBOMs e seu conteúdo para identificar possíveis problemas e agir mais rapidamente. À medida que a geração de SBOMs se torna mais comum na sua organização e você começa a receber SBOMs de fornecedores (por exemplo, de SaaS), provavelmente precisará testar vários formatos gerados por diferentes ferramentas.  

Talvez você queira até mesmo criar uma plataforma para gerenciar isso em todas as equipes da sua empresa. 

No início do terceiro trimestre, lançaremos a versão beta do nosso recurso de teste de SBOMs. Com essa API, você poderá analisar e testar SBOMs CycloneDX e SPDX em busca de vulnerabilidades conhecidas e problemas de licença no nosso banco de dados de vulnerabilidades de referência.

E com a Package Issues API, agora disponível para todos, oferecemos ferramentas para consultar vulnerabilidades por pacote usando o URL do pacote (purl), com suporte a vários ecossistemas de linguagens de programação e sistemas operacionais. Uma API granular e de baixo nível dá às equipes flexibilidade para adaptar os testes às suas necessidades.

Exemplo de consulta de problemas em um pacote

Você pode consultar um único pacote usando uma solicitação GET e um purl codificado em URL:

https://api.snyk.io/rest/orgs/{{orgId}}/packages/pkg%3Adeb%2Fdebian%2Fcurl%407.52.1-5%3Fdistro%3Dstretch/issues?version=2023-05-10
Exemplo de vulnerabilidade retornada (trecho) 
...
"id": "SNYK-DEBIAN9-CURL-2936242",
"type": "issue",
"attributes": {
"key": "SNYK-DEBIAN9-CURL-2936242",
"title": "Out-of-bounds Write",
"type": "package_vulnerability",
"created_at": "2022-06-28T02:25:54.487787Z",
"updated_at": "2023-02-14T13:32:10.421029Z",
"description": "## NVD Description\n**_Note:_** _Versions mentioned in the description apply only to the upstream `curl` package and not the `curl` package as distributed by `Debian:9`._\n_See `How to fix?` for `Debian:9` relevant fixed versions and status._\n\nWhen curl < 7.84.0 does FTP transfers secured by krb5, it handles message verification failures wrongly. This flaw makes it possible for a Man-In-The-Middle attack to go unnoticed 
...

Ampliando o valor das SBOMs

A transparência sobre a composição de um aplicativo tem valor próprio, mas os artefatos de SBOM geralmente contêm um conjunto limitado de informações.

Embora essas informações sejam suficientes como entrada para os testes de vulnerabilidade, elas deixam muito a desejar: quem recebe os artefatos ainda precisa usar a SBOM para obter as informações de que precisa.

Se podemos criar SBOMs e testá-las junto com seus componentes, por que não incluir essas informações no próprio artefato desde o início? Com Parlay, nossa contribuição mais recente para a comunidade de código aberto, queremos resolver exatamente esse problema. 

Os principais formatos (CycloneDX e SPDX) já permitem extensões em seus esquemas, o que possibilita enriquecer uma SBOM com metadados adicionais, como vulnerabilidades e procedência da origem.

Isso traz grandes benefícios para quem recebe esses dados, como as equipes de AppSec, que passam a contar com um retrato de determinado momento do aplicativo e dados detalhados para ajudar a automatizar ações ou embasar decisões.

Confira este blog para saber mais sobre as possibilidades abertas por esse projeto e assista à gravação sob demanda do SnykLaunch para conferir todos os detalhes que você perdeu.