Chargement de Nomenclature logicielle fichiers à l’aide d’une REST API

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 5 minutes de lecture
  • Vérifiez les informations suivantes avant de Nomenclature logicielle charger des fichiers à l’aide d’une API.

    Utilisation de REST API

    Pour charger un fichier SBOM avec une API, le rôle sn_sbom_core.sbom_ingest est requis.

    Charger l’API.

    Cette API est utilisée pour charger et ingérer un fichier SBOM (CycloneDX/SPDX) dans votre instance.

    La version 4.0 de SBOM Core prend en charge :
    • XML et JSON dans CycloneDx (versions 1.0 - 1.6).
    • JSON dans SPDX (versions 2.2-2.3)
    • Remarque :
      Les fichiers de plus de 32 Mo peuvent ne pas se charger correctement.

    Méthode HTTP : (POST)

    URL de l’API : <host_name>/api/sbom/core/upload
    Remarque :
    <host_name> s’agit de votre ServiceNow nom d’instance.
    Tous les paramètres de demande ci-dessous sont facultatifs ; le corps de la demande est le contenu du fichier SBOM. Si vous utilisez DevOps dans le cadre de votre processus de développement, la valeur de « requestedBy » doit être « devops ». Pour plus d’informations générales sur DevOps, consultez la rubrique Chargement des Nomenclature logicielle fichiers DevOps SBOM Si la valeur de « requestedby » est « devops » (opérations de développement), les paramètres suivants sont obligatoires :
    • ID de construction
    • lifecycleStage
    En outre, si « requestedBy » est « devops », les données pour fetchVulenrabilityInfo et fetchPackageInfo sont incluses.
    • buildId : chaîne que vous envoyez
    • lifecycleStage : deux valeurs, production ou pre_production
    • fetchVulenrabilityInfo- t/f
    • fetchPackageInfo-t/f
    Paramètres de demande Valeurs possibles Description
    ID modèle produit ID système ID système du modèle de produit à mapper avec l’application racine de la nomenclature logicielle donnée.
    ID d’application commerciale ID système ID système de l’application d’entreprise à mapper avec l’application racine de la nomenclature logicielle donnée.
    businessApplicationName (en anglais seulement) Nom de votre application d’entreprise Nom de l’application d’entreprise à mapper avec l’application racine de la nomenclature logicielle donnée.
    sbomSource (en anglais seulement) Un produit tel que Vericode, par exemple La source de votre fichier SBOM.
    requestedBy Un outil, ou le nom d’une méthodologie, Jenkins. Si vous utilisez « devops », buildId et lifecycleStage sont obligatoires. Chargement demandé par
    ID de construction Une chaîne envoyée par le demandeur. ID de build de la build SBOM.
    lifecycleStage Production ou pre_production Étape du cycle de vie de l’entité.
    fetchVulenrabilityInfo T/F Si vrai, déclenche l’intégration de l’intelligence des vulnérabilités.
    informations sur le package fetchPackage T/F Si vrai, déclenche l’intégration de l’intelligence du package.
    Réponse API de chargement : réussite/échec « état » inclus, « message » (chaîne), « bomRecordId » (il s’agit de l’ID système de la nomenclature logicielle qui est renvoyé via l’API de chargement pour un chargement de nomenclature logicielle réussi.
    {
    
    "result": {
    
    "status": "success",
    
    "message": "Queued for processing.",
    
    "bomRecordId": "f207059b4393c290629aa597cbb8f247"
    
    }
    
    }

    API d’état

    Cette API obtient l’état et le résumé d’une nomenclature logicielle mise en file d’attente pour l’ingestion.
    • URL de l’API : /api/sbom/core/upload/status
    • Méthode HTTP (GET)
    Paramètres de demande Valeurs possibles Description
    BomRecordId (en anglais seulement) ID système ID d’enregistrement SBOM renvoyé via l’API de chargement pour un chargement SBOM réussi.

    Exemple de réponse par défaut de l’API d’état.

    
    {
       "result": {
          "bomRecordId": "0407c0fea3e70a505df340f5251e617e",
          "uploadStatus": "processed",
          "additionalInfoStatus": "not_requested",
          "uploadSummary": {
             "components": {
                "added": 0,
                "removed": 0,
                "total": 70
             }
           }
        } 
    }

    Réponse API d’état avec exemple de paramètres supplémentaires. Si vous avez demandé fetchVulenrabilityInfo pour ce SBOM, vous obtenez la répartition des vulnérabilités dans le cadre de la réponse.

    
    {
     "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"
    
     }
    
    }

    Si vous avez demandé fetchPackageInfo pour cette nomenclature logicielle, vous obtenez les nombres périmés et abandonnés dans le cadre de la réponse.

    Une fois qu’un SBOM processus est traité avec succès, l’emplacement d’affichage des enregistrements chargés dépend des applications que vous utilisez.

    • Si vous utilisez SBOM la réponse, l’enregistrement de l’entité BOM s’affiche dans la liste État d’ingestion SBOM du module File d’attente BOM de l’espace SBOM de travail.
    • Si vous utilisez SBOM Core, accédez à SBOM principal > État de l'ingestion BOM.

    Améliorations apportées aux normes prises en charge SBOM et aux informations générales sur l’utilisation

    La version 4.0 de SBOM Core prend en charge :
    • XML et JSON dans CycloneDx (versions 1.0 - 1.6).
    • JSON dans SPDX (versions 2.2-2.3)
    • Remarque :
      Les fichiers de plus de 32 Mo peuvent ne pas se charger correctement.
    À partir de la version 4.0 de SBOM Core, les améliorations suivantes ont été apportées pour prendre en charge les normes CycloneDx pour les versions 1.0 à 1.6 :
    • Importez des informations supplémentaires dans les fichiers SBOM CycloneDX avec la propriété (sn_sbom_core.collect_properties). Cette propriété est désactivée par défaut. Activez la propriété pour importer des informations qui ne sont généralement pas prises en charge. Toutes les informations importées à partir de ces propriétés sont téléchargées dans la table Propriété du composant SBOM [sn_sbom_comp_property] pour ce qui suit :
      • Fichiers SBOM chargés
      • Métadonnées
      • Vulnérabilités individuelles
      • Composants
    • Affichez les données de composants importés pour les licences déclarées et conclues pour les fichiers SBOM dans les versions 1.4 et ultérieures de CycloneDX dans deux nouveaux champs de licence :
      • Déclaré
      • Conclu
    • La prise en charge de l’analyse SBOM est étendue aux types de composants CycloneDX suivants :
      • Version 1.5 : plateforme, données, pilote d’appareil, modèle d’apprentissage automatique
      • Version 1.6 : Cryptographique
    La version 3.0 de SBOM Core prend en charge :
    • XML et JSON dans CycloneDx (jusqu’à la version 1.4 incluse).
    • JSON dans SPDX (jusqu’à la version 2.3 incluse).

    Si l’utilisateur appelant est authentifié avec succès et qu’il dispose du rôle sn_sbom_core.sbom_ingest dans votre ServiceNow instance, vous pouvez accéder à l’API depuis l’extérieur de votre instance pour charger les SBOM données.

    Une fois les données chargées, elles sont analysées. Avant l’analyse des données, les exigences suivantes sont vérifiées :

    • On vérifie que les données entrantes sont valides au format JSON ou XML.
    • Le format BOM est pris en charge. À partir de la version 2.1 de SBOM Core, les formats CycloneDX (JSON et XML) et SPDX (XML) sont pris en charge.
    • Le nombre minimum de champs est disponible afin que les données puissent être analysées.

    Une fois ces vérifications vérifiées, une entrée est effectuée dans la table Nomenclature [sn_sbom_doc] avec les données entrantes SBOM en pièce jointe.

    La Process BOM file règle métier est déclenchée automatiquement à la suite de l’insertion de l’enregistrement et de l’analyse des données.
    Remarque :
    Cette règle métier est activée par défaut lors de l’installation de SBOM Core.

    Tous les composants répertoriés dans un SBOM ont un type défini.

    • Les composants pour lesquels SBOM les fichiers ont été chargés sont considérés comme des entités BOM.
    • Les composants répertoriés comme type=library sont considérés comme des composants tiers.