Carregando Lista de materiais de software arquivos usando uma REST API
Revise as informações a seguir antes de carregar arquivos Lista de materiais de software usando uma API.
Como usar a REST API
Para carregar um arquivo SBOM com uma API, a função sn_sbom_core.sbom_ingest é necessária.
Carregar API.
Esta API é usada para carregar e ingerir um arquivo SBOM (CycloneDX/SPDX) em sua instância.
- XML e JSON no CycloneDx (versões 1.0 - 1.6).
- JSON em SPDX (versões 2.2-2.3)
-
Nota:Arquivos com mais de 32 MB podem não ser carregados corretamente.
Método HTTP: (POST)
- buildId
- lifecycleStage
- buildId- cadeia de caracteres que você envia
- lifecycleStage- dois valores, produção ou pré-produção
- fetchVulenrabilityInfo- t/f
- fetchPackageInfo-t/f
| Parâmetros de solicitação | Valores possíveis | Descrição |
|---|---|---|
| productModelId | SYS ID | SYS ID do modelo de produto a ser mapeado com a aplicação raiz de determinado SBOM. |
| businessApplicationId | SYS ID | SYS ID da aplicação de negócios a ser mapeada com a aplicação raiz de determinado SBOM. |
| businessApplicationName | O nome da sua aplicação de negócios | Nome da aplicação de negócios a ser mapeada com a aplicação raiz de determinado SBOM. |
| sbomSource | Um produto como Vericode, por exemplo | A origem do arquivo SBOM. |
| requestedBy | Uma ferramenta ou nome de uma metodologia, Jenkins. Se você usar "devops", buildId e lifecycleStage serão obrigatórios. | Carregamento solicitado por |
| buildId | Um solicitante de cadeia de caracteres envia. | ID da compilação do SBOM. |
| lifecycleStage | produção ou pré_produção | Fase do ciclo de vida da entidade. |
| fetchVulenrabilityInfo | T/F | Se verdadeiro, aciona a integração de inteligência de vulnerabilidade. |
| Informações do fetchPackage | T/F | Se verdadeiro, aciona a integração de inteligência de pacote. |
{
"result": {
"status": "success",
"message": "Queued for processing.",
"bomRecordId": "f207059b4393c290629aa597cbb8f247"
}
}API de status
- URL da API: /api/sbom/core/upload/status
- Método HTTP (GET)
| Parâmetros de solicitação | Valores possíveis | Descrição |
|---|---|---|
| bomRegistroId | SYS ID | ID do registro de SBOM que é retornado por meio da API de upload para um carregamento de SBOM bem-sucedido. |
Exemplo de resposta padrão da API de status.
{
"result": {
"bomRecordId": "0407c0fea3e70a505df340f5251e617e",
"uploadStatus": "processed",
"additionalInfoStatus": "not_requested",
"uploadSummary": {
"components": {
"added": 0,
"removed": 0,
"total": 70
}
}
}
}
Exemplo de resposta da API Status com parâmetros adicionais. Se você solicitou fetchVulenrabilityInfo para esse SBOM, receberá o detalhamento da vulnerabilidade como parte da resposta.
{
"result": {
"bomRecordId": "93af349b4393c290629aa597cbb8f258",
"uploadStatus": "processed",
"additionalInfoStatus": "complete",
"uploadSummary": {
"components": {
"added": 0,
"removed": 0,
"total": 3
},
"vulnerabilityInfo": {
"critical": 0,
"high": 0,
"medium": 0,
"low": 0,
"none": 0
}
},
"buildId": "1"
}
}
Se você solicitou fetchPackageInfo para esse SBOM, obterá contagens obsoletas e abandonadas como parte da resposta.
Depois que um SBOM é processado com sucesso, o local onde você exibe os registros carregados depende das aplicações que você está usando.
- Se você estiver usando a resposta SBOM, o registro de entidade da lista de materiais será exibido na lista de status de ingestão SBOM no módulo Fila da lista de materiais no espaço SBOM.
- Se você estiver usando o SBOM Core, navegue até .
Melhorias nos padrões SBOM compatíveis e informações de uso geral
- XML e JSON no CycloneDx (versões 1.0 - 1.6).
- JSON em SPDX (versões 2.2-2.3)
-
Nota:Arquivos com mais de 32 MB podem não ser carregados corretamente.
- Importe informações adicionais em arquivos SBOM do CycloneDX com a propriedade (sn_sbom_core.collect_properties). Esta propriedade está desativada por padrão. Ative a propriedade para importar informações que geralmente não são compatíveis. Todas as informações importadas dessas propriedades são carregadas na tabela Propriedade do componente SBOM [sn_sbom_comp_property] para o seguinte:
- Arquivos SBOM carregados
- Metadados
- Vulnerabilidades individuais
- Componentes
- Exiba os dados do componente importado para licenças declaradas e concluídas para arquivos SBOM nas versões 1.4 e posteriores do CycloneDX em dois novos campos de licença:
- Declarado
- Concluído
- O suporte à análise de SBOM foi estendido para os seguintes tipos de componente do CycloneDX:
- Versão 1.5: plataforma, dados, driver de dispositivo, modelo de aprendizado de máquina
- Versão 1.6: Criptográfica
- XML e JSON no CycloneDx (até e incluindo a versão 1.4).
- JSON em SPDX (até e incluindo v2.3).
Se o usuário de chamada for autenticado com sucesso e tiver a função sn_sbom_core.sbom_ingest na instância ServiceNow, você poderá acessar a API de fora da instância para carregar os dados SBOM.
Depois que os dados são carregados, eles são analisados. Antes que os dados sejam analisados, os seguintes requisitos são verificados:
- Os dados de entrada são verificados para garantir que sejam JSON ou XML válidos.
- O formato da lista de materiais é compatível. A partir da versão 2.1 do SBOM Core, os formatos CycloneDX (JSON e XML) e SPDX (XML) são compatíveis.
- Os campos mínimos estão disponíveis para que os dados possam ser analisados.
Depois que essas verificações são verificadas, uma entrada é feita na tabela Lista de materiais [sn_sbom_doc] com dados de entrada SBOM como um anexo.
Todos os componentes listados em SBOM têm um tipodefinido.
- Os componentes para os quais os arquivos SBOM foram carregados são considerados entidades da lista de materiais.
- Os componentes listados como type=library são considerados componentes de terceiros.