Carregando Lista de materiais de softwareArquivos que usam uma REST API

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 5 min. de leitura
  • Revise as informações a seguir antes de carregar Lista de materiais de softwareArquivos que usam uma API.

    Usando a REST API

    Para carregar um arquivo SBOM com uma API, a função sn_sbom_core.sbom_ingest é necessária.

    API de upload.

    Esta API é usada para carregar e ingerir um arquivo SBOM (CycloneDX/SPDX) em sua instância.

    Versão 4,0 de SBOMSuporte principal:
    • XML e JSON no CycloneDx (versões 1.0 - 1.6).
    • JSON no SPDX (versões 2,2-2,3)
    • Nota:
      Arquivos com mais de 32 MB podem não carregar corretamente.

    Método HTTP: (POST)

    URL DA API: <host_name>/api/sbom/core/upload
    Nota:
    <host_name> é seu ServiceNownome da instância.
    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 DevOps como parte do seu processo de desenvolvimento, o valor de "questedBy" deve ser "developps". Consulte Carregando Lista de materiais de softwarePara DevOps SBOMarquivosPara obter mais informações gerais sobre DevOps. Se o valor de "questedby" for "devops" (operações de desenvolvimento), estes parâmetros serão obrigatórios:
    • Criado
    • LifecycleStage
    Além disso, se "questedBy" for "devops", os dados de fetchVulenrabilityInfo e fetchPackageInfo serão incluídos.
    • Cadeia de caracteres buildid- que você enviou
    • LifecycleStage- Dois valores, production ou pre_production
    • FetchVulenrabilityInfo- t/f
    • FetchPackageInfo-t/f
    Parâmetros da 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 fornecida SBOM.
    ApplicationId de negócios SYS ID SYS ID da aplicação de negócios a ser mapeada com a aplicação raiz de fornecida SBOM.
    BusinessApplicationName (obsoleto) 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 fornecida SBOM.
    SbomSource Um produto como Veracode, por exemplo A origem do seu SBOMarquivo.
    requestedBy Uma ferramenta, ou nome de uma metodologia, Jenkins. Se você usar "devops", buildid e lifecycleStage serão obrigatórios. Carregamento solicitado por
    Criado Um solicitante de cadeia de caracteres envia. ID de compilação do SBOMcriar.
    LifecycleStage produção ou pre_production Fase do ciclo de vida da entidade.
    FetchVulenrabilityInfo t/f Se verdadeiro, aciona a integração de inteligência de vulnerabilidade.
    FetchPackage Info t/f Se verdadeiro, aciona a integração de inteligência de pacote.
    Resposta da API de upload: Sucesso/falha "status", "message" (cadeia de caracteres), "bomRecordId" incluído (este é o sys ID da SBOM que é retornado por meio da API de upload para um carregamento bem-sucedido da SBOM).
    {
    
    "result": {
    
    "status": "success",
    
    "message": "Queued for processing.",
    
    "bomRecordId": "f207059b4393c290629aa597cbb8f247"
    
    }
    
    }

    API de status

    Esta API obtém o status e o resumo de uma SBOM que está enfileirada para ingestão.
    • URL DA API: /api/sbom/core/upload/status
    • Método HTTP (GET)
    Parâmetros da solicitação Valores possíveis Descrição
    BomRecordId SYS ID ID do registro de SBOM que é retornado por meio da API de upload para um carregamento bem-sucedido de SBOM.

    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 de status com parâmetros adicionais. Se você solicitou fetchVulenrabilityInfo para essa SBOM, você obterá 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 essa SBOM, obterá contagens obsoletas e abandonadas como parte da resposta.

    Após um SBOMé processado com sucesso, onde você exibe os registros carregados depende das aplicações que você está usando.

    • Se você estiver usando SBOMResposta, o registro da entidade da BOM é exibido no SBOMLista de status de ingestão no módulo Fila da BOM no SBOMEspaço.
    • Se você estiver usando o SBOM Core, navegue até Base para SBOM > Status de ingestão da lista de materiais.

    Aprimoramentos para compatíveis SBOMinformações gerais e de uso

    Versão 4,0 de SBOMSuporte principal:
    • XML e JSON no CycloneDx (versões 1.0 - 1.6).
    • JSON no SPDX (versões 2,2-2,3)
    • Nota:
      Arquivos com mais de 32 MB podem não carregar corretamente.
    A partir de v4.0 de SBOMCore, as seguintes melhorias foram feitas para oferecer suporte aos padrões CycloneDx para as versões 1,0 a 1,6:
    • Importe informações adicionais nos 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 de SBOM carregados
      • Metadados
      • Vulnerabilidades individuais
      • Componentes
    • Veja dados de componentes importados 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 é estendido para os seguintes tipos de componentes CycloneDX:
      • Versão 1,5: Plataforma, dados, driver de dispositivo, modelo de aprendizado de máquina
      • Versão 1,6: Criptográfico
    Versão 3,0 de SBOMSuporte principal:
    • 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 chamador for autenticado com sucesso e tiver a função sn_sbom_core.sbom_ingest em seu ServiceNow, você pode acessar a API de fora da sua instância para carregar o. SBOMdados.

    Depois que os dados são carregados, eles são analisados. Antes de os dados serem analisados, os seguintes requisitos são verificados:

    • Os dados de entrada são verificados se são JSON ou XML válidos.
    • O formato da BOM é compatível. A partir da v2.1 de SBOMOs formatos Core, 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.

    Após essas verificações serem verificadas, uma entrada é feita na tabela da Lista de materiais [sn_sbom_doc] com a entrada SBOMdados como um anexo.

    . Process BOM filea regra de negócio é 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 de SBOMCore por padrão.

    Todos os componentes listados em um SBOMum definido tipo .

    • Componentes para os quais SBOMOs arquivos carregados são considerados entidades da BOM.
    • Componentes listados como biblioteca são considerados componentes de terceiros.