Microsoft abre código de sua ferramenta SBOM

Sheila Zabeu -

Julho 15, 2022

Pensando em ajudar organizações a terem mais controle sobre as dependências entre os elementos presentes em suas cadeias de suprimentos, a Microsoft divulgou recentemente que vai abrir o código-fonte de sua ferramenta interna usada para gerar SBOMs (Software Bill of Materials ou Lista de Materiais de Software). Chamada Salus, a solução se baseia no padrão Software Package Data Exchange (SPDX) e pode ser usada com plataformas Windows, Linux e Mac.

Segundo a Microsoft, o Salus pode ser facilmente integrado a fluxos de trabalho de compilação e detecta automaticamente sistemas NPM, NuGet, PyPI, CocoaPods, Maven, Golang, Rust Crates, RubyGems, pacotes Linux em contêineres, Gradle, Ivy e repositórios públicos GitHub por meio do recurso de detecção de componentes.

Os SBOMs gerados pelo Salus contêm quatro seções principais baseadas na especificação SPDX:

  • Informações sobre a criação do documento: Dados gerais como nome do software, licença SPDX, versão do SPDX, quem criou o documento e quando foi criado, etc.
  • Seção de arquivos: Lista de arquivos que compõem o software, sendo que cada arquivo possui algumas propriedades.
  • Seção de pacotes: Lista de pacotes usados no desenvolvimento do software. Cada pacote tem outras propriedades, como nome, versão, fornecedor, hashes (SHA-1, SHA-256) e identificador de software Package URL (purl).
  • Seção de relacionamentos: Lista de relacionamentos entre os diferentes elementos do SBOM, como arquivos e pacotes.

O Salus também pode fazer referência a outros documentos SBOM para manter uma árvore completa de dependências.

A decisão da Microsoft de liberar o acesso ao código-fonte da Salus vem na esteira da ordem executiva da presidência dos Estados Unidos visando melhorar a segurança cibernética do país em maio de 2021. Uma das medidas exigidas tem a ver justamente com SBOM. Além disso, a Microsoft afirma estar envolvida com o tema há anos. Por exemplo, em setembro de 2019, liderou o grupo de trabalho intersetorial do Consortium for Information & Software Quality (CISQ) para definir um novo esquema para SBOM. A empresa decidiu, então, unir os esforços do grupo com o trabalho da Linux Foundation e usar o Software Package Data Exchange (SPDX) em todos os SBOMs gerados, abraçando a missão de fazer isso para todos pacotes de software produzidos.

Agora, com a liberação do Salus, a Microsoft pretende trabalhar com a comunidade de código aberto para ajudar todos a seguir as diretrizes do governo federal norte-americano. Na visão da empresa, esse é um passo importante para promover a colaboração e a inovação na comunidade e permitirá que mais organizações gerem SBOMs, contribuindo assim para seu desenvolvimento.

O próprio Departamento de Segurança Interna dos Estados Unidos, junto com a CISA (Agência de Segurança de Infraestruturas e Cibersegurança) dos Estados Unidos, está convocando empresas de tecnologia a desenvolver ferramentas automatizadas para lidar com os SBOMs por meio de uma oportunidade de contrato.

“Vulnerabilidades em software representam um risco importante para a segurança cibernética, sendo o principal caminho para que agentes mal-intencionados causem uma série de danos. Usando os SBOMs como elementos-chave para a segurança dos pacotes de software, podemos mitigar os riscos na cadeia de suprimentos de software e responder a novas ameaças com mais rapidez e eficiência”, afirma Allan Friedman, consultor sênior e estrategista da CISA.

 O programa terá quatro fases e uma quinta opcional que incluirão testes em ambientes operacionais e casos de uso. Os candidatos devem enviar inscrições com pedido de US$ 50.000 a US$ 200.000 em financiamento para desenvolver um produto mínimo viável (MVP) dentro de três a nove meses. Os MVPs escolhidos passarão para a fase 2 para desenvolvimento de protótipos.

De olho no futuro, mas também no passado

Ter mais visibildidade sobre as linhas de desenvolvimento de software e reduzir a chance de que vulnerabilidades causem grandes estragos ao longo de importantes cadeias de suprimento é um importante papel dos SBOMs, mas eles podem ir além.

Em organizações com grandes ambientes legados problemáticos e potencialmente uma enorme lista de lacunas de cibersegurança, os SBOMs podem ajudar a criar registros formalizados do acervo de software legado, com detalhes e relacionamentos entre componentes usados no desenvolvimento. Segundo um artigo da Forbes, poder ser uma forma de começar a modernizar os esquemas de segurança em infraestruturas mais antigas.

Infelizmente, criar SBOMs costuma ser uma tarefa mais desafiadora para organizações com ambientes mais antigos em comparação com aquelas que contam com infraestruturas tecnológicas modernas. No entanto, não é impossível. A ideia é reunir produtos e componentes de software mais antigos que fazem parte da infraestrutura crítica. Não se pode esquecer também que esses componentes de software podem continuar sofrendo mudanças ao longos do tempo, dependendo da aplicação, e isso deve ser levado em conta no processo de geração dos SBOMs.

De qualquer modo, SBOMs podem ser um bom caminho na jornada para modernizar a segurança de ambientes legados, ajudam a identificar melhor as vulnerabilidades e, consequentemente, a  reduzir riscos.