sgcWebSockets agora instala seu próprio SBOM | Blog eSeGeCe

sgcWebSockets agora instala seu próprio SBOM

· Componentes

Se você desenvolve software para o mercado europeu, provavelmente alguém já lhe pediu uma lista de materiais de software. O Regulamento de Ciberresiliência exige que os fabricantes elaborem uma e a mantenham em sua documentação técnica, e seus clientes a pedem cada vez mais, muito antes de qualquer órgão regulador. Quando o seu produto incorpora uma biblioteca de componentes, essa pergunta chega até nós.

A partir desta versão, toda instalação do sgcWebSockets responde a ela. O instalador grava uma lista de materiais CycloneDX na pasta de instalação como sbom.cdx.json, relacionando os componentes de nível superior a partir dos quais a biblioteca é construída, com suas versões e licenças.

Gerado pelo instalador, não mantido à mão

A parte interessante não é o arquivo, é de onde ele vem. Uma lista de materiais que alguém atualiza à mão fica desatualizada, silenciosamente, e um documento de conformidade que informa uma versão que você já não distribui é pior do que não ter documento algum.

Por isso ela não é mantida à mão. O script do instalador executa um gerador no momento da compilação, e esse gerador lê cada versão a partir do arquivo que realmente a define: a versão do produto em history.txt, o Indy em IdVers.inc, o zlib em zlib.h, o OpenSSL nas unidades de vinculação estática. Se algum desses valores não puder ser lido, o gerador para com um erro e a compilação do instalador falha. Ele nunca adivinha e nunca recorre a um valor que alguém digitou uma vez.

O efeito prático é que o SBOM não pode divergir. Atualize o zlib e o próximo instalador que você compilar já dirá isso, sem que ninguém precise se lembrar.

Ele descreve a sua edição, não um produto genérico

Esta é a parte que mais provavelmente importa para você. A lista de materiais não é a mesma para todas as edições, porque as edições não contêm o mesmo código de terceiros.

Enterprise e All-Access compilam o Indy personalizado que acompanha o sgcWebSockets, e esse fork traz o seu próprio zlib. Core, Standard e Professional compilam com o Indy que vem com a sua instalação do Delphi ou do C++ Builder, do qual não fazemos fork nem redistribuímos. Para essas edições não podemos, honestamente, indicar uma versão do Indy, porque a versão é a que o seu IDE fornece.

Um único SBOM genérico seria, portanto, incorreto para a maioria das instalações. Em vez disso, o instalador gera o documento para a edição que está empacotando, de modo que o arquivo que você recebe descreve o que você realmente tem.

EdiçãoIndyzlib
Core, Standard, Professionalfornecido pelo seu IDE, não redistribuído por nóschega ao produto por meio desse mesmo Indy
Enterprise, All-Accesso fork personalizado do Indy, com versão indicadaa cópia incorporada, com versão indicada

O que há dentro

O documento é CycloneDX 1.6 em JSON, um formato legível por máquina bastante comum que as ferramentas de inventário e de varredura já compreendem. Além dos componentes, ele registra a licença de cada um, se somos nós que o redistribuímos ou se o seu IDE o fornece, e onde ele fica na árvore de código-fonte.

Ele também traz declarações VEX quando são úteis. Se uma CVE conhecida afeta a versão de um componente mas não é alcançável a partir do nosso código, o documento diz isso explicitamente, com o motivo, em vez de deixar você descobrir sozinho. Essas entradas aparecem e desaparecem automaticamente conforme as versões dos componentes mudam, porque o gerador decide a partir da versão que leu, e não de uma anotação que alguém deixou.

Onde encontrá-lo

Procure na pasta em que você instalou, ao lado do history.txt e da licença.

C:\Program Files (x86)\sgcWebSockets\sbom.cdx.json

Entregue-o ao que você usar para inventário, anexe-o a um questionário de fornecedores ou incorpore suas entradas à lista de materiais que você produz para o seu próprio produto. Se a sua equipe de conformidade precisar dele em outro formato, ou quiser um formulário de avaliação de fornecedor preenchido para uma compilação específica, fale conosco pelo formulário de contato informando o produto, a edição e a versão que você usa.

Uma coisa que deliberadamente não fizemos

Não publicamos o SBOM neste site. O Regulamento de Ciberresiliência exige que os fabricantes elaborem uma lista e a mantenham na documentação técnica, não exige a publicação, e há pouco a ganhar em entregar um inventário de componentes a qualquer um que o peça. Distribuí-lo dentro do produto o coloca nas mãos de quem tem direito a ele, ou seja, os licenciados e, mediante solicitação, as autoridades de fiscalização do mercado.

Você pode ler mais sobre como abordamos o Regulamento em nossa página do Cyber Resilience Act.