Carregando Lista de materiais de software arquivos usando uma REST API

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 5 min. de leitura
  • 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.

    A versão 4.0 do SBOM Core é compatível com:
    • 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)

    URL da API:<host_name> /api/sbom/core/upload
    Nota:
    <host_name>é o nome da sua instância ServiceNow .
    Todos os parâmetros de solicitação abaixo são opcionais. o corpo da solicitação é o conteúdo do arquivo SBOM. Se você estiver usando o DevOps como parte do processo de desenvolvimento, o valor de "requestedBy" deve ser "devops". Consulte Carregando Lista de materiais de software para arquivos de DevOps SBOM para obter informações gerais sobre DevOps. Se o valor de "requestedby" for "devops" (operações de desenvolvimento), estes parâmetros serão obrigatórios:
    • buildId
    • lifecycleStage
    Além disso, se "requestedBy" for "devops", os dados para fetchVulenrabilityInfo e fetchPackageInfo serão incluídos.
    • 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.
    Resposta da API de upload: incluiu "status" com sucesso/falha, "message" (cadeia de caracteres), "bomRecordId" (este é o SYS ID do SBOM que é retornado por meio da API de upload para um carregamento de SBOM bem-sucedido.
    {
    
    "result": {
    
    "status": "success",
    
    "message": "Queued for processing.",
    
    "bomRecordId": "f207059b4393c290629aa597cbb8f247"
    
    }
    
    }

    API de status

    Esta API obtém o status e o resumo de um SBOM que está na fila para ingestão.
    • 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é Núcleo de SBOM > Status de ingestão da lista de materiais.

    Melhorias nos padrões SBOM compatíveis e informações de uso geral

    A versão 4.0 do SBOM Core é compatível com:
    • 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.
    A partir da v4.0 do SBOM Core, os seguintes aprimoramentos foram feitos para oferecer suporte aos padrões CycloneDx para as versões 1.0 - 1.6:
    • 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
    A versão 3.0 do SBOM Core é compatível com:
    • 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.

    A regra de negócio Process BOM file é acionada automaticamente como resultado da inserção de registro e da análise de dados.
    Nota:
    Esta regra de negócio é ativada durante a instalação do SBOM Core por padrão.

    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.