Wird Hochgeladen Software Bill of MaterialsDateien, die eine REST-API verwenden

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 4 Minuten Lesedauer
  • Überprüfen Sie die folgenden Informationen vor dem Hochladen Software Bill of MaterialsDateien, die eine API verwenden.

    Mit der REST-API

    Zum Hochladen einer SBOM-Datei mit einer API ist die sn_sbom_core.sbom_ingest-Rolle erforderlich.

    API hochladen.

    Diese API wird zum Hochladen und Erfassen einer SBOM-Datei (CycloneDX/SPDX) in Ihre Instanz verwendet.

    Version 4,0 von SBOMCore-Unterstützung:
    • XML und JSON in CycloneDx (Versionen 1.0–1.6).
    • JSON in SPDX (Versionen 2,2–2,3)
    • Hinweis:
      Dateien mit mehr als 32 MB werden möglicherweise nicht ordnungsgemäß geladen.

    HTTP-Methode: (POST)

    API-URL: <host_name>/api/sbom/Core/Upload
    Hinweis:
    <host_name> Ist Ihr ServiceNowInstanzname.
    Alle folgenden Anforderungsparameter sind optional. Der Anforderungstext ist der Inhalt der SBOM-Datei. Wenn Sie DevOps als Teil Ihres Entwicklungsprozesses verwenden, muss der Wert von „requestedBy“ „devops“ sein. Siehe Wird Hochgeladen Software Bill of MaterialsFür DevOps SBOMDateienFür allgemeinere Informationen zu DevOps. Wenn der Wert für „requestedby“ „devops“ (Bereitstellungsvorgänge) ist, sind diese Parameter obligatorisch:
    • BuildId
    • Lebenszyklusphase
    Wenn „requestedBy“ auf „devops“ festgelegt ist, werden außerdem Daten für fetchVulenrabilityInfo und fetchPackageInfo enthalten.
    • BuildId: Zeichenfolge, die Sie senden
    • LifecycleStage: Zwei Werte, „Production“ oder „Pre_Production“
    • FetchVulenrabilityInfo – t/f
    • FetchPackageInfo-t/f
    Anforderungsparameter Mögliche Werte Beschreibung
    productModelId Sys-ID SYS-ID des Produktmodells, das der angegebenen Stammanwendung zugeordnet werden soll SBOM.
    BusinessApplicationId Sys-ID SYS-ID der Geschäftsanwendung, die der angegebenen Stammanwendung zugeordnet werden soll SBOM.
    BusinessApplicationName (veraltet) Name der Geschäftsanwendung Name der Geschäftsanwendung, die der angegebenen Stammanwendung zugeordnet werden soll SBOM.
    SbomSource Ein Produkt wie Veracode, Beispiel Die Quelle für SBOMDatei.
    requestedBy Ein Tool oder Name einer Methode, Jenkins. Wenn Sie „devops“ verwenden, sind „buildId“ und „lifecycleStage“ obligatorisch. Upload angefordert von
    BuildId Eine Zeichenfolge, die von der anfordernden Person gesendet wird. Build-ID von SBOMErstellen.
    Lebenszyklusphase Produktion oder Pre_Production Lebenszyklusphase der Entität.
    Ruft VulenrabilityInfo ab t/f Bei „wahr“ wird die Vulnerability Intelligence-Integration ausgelöst.
    Ruft Paketinformationen ab t/f Bei „wahr“ wird die Package Intelligence-Integration ausgelöst.
    API-Antwort hochladen: Enthält „Status“ erfolgreich/fehlgeschlagen, „message“ (Zeichenfolge), „bomRecordId“ (dies ist die SYS-ID der SBOM, die über die Upload-API für einen erfolgreichen SBOM-Upload zurückgegeben wird).
    {
    
    "result": {
    
    "status": "success",
    
    "message": "Queued for processing.",
    
    "bomRecordId": "f207059b4393c290629aa597cbb8f247"
    
    }
    
    }

    Status-API

    Diese API ruft den Status und die Zusammenfassung einer SBOM ab, die in der Warteschlange für die Erfassung steht.
    • API-URL: /api/sbom/Core/Upload/Status
    • HTTP-Methode (GET)
    Anforderungsparameter Mögliche Werte Beschreibung
    BomRecordId Sys-ID SBOM-Datensatz-ID, die über die Upload-API für einen erfolgreichen SBOM-Upload zurückgegeben wird.

    Standard-Antwortbeispiel für Status-API.

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

    Beispiel für Status-API-Antwort mit zusätzlichen Parametern. Wenn Sie „fetchVulenrabilityInfo“ für diese SBOM angefordert haben, erhalten Sie die Schwachstellenaufgliederung als Teil der Antwort.

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

    Wenn Sie „fetchPackageInfo“ für diese SBOM angefordert haben, erhalten Sie als Teil der Antwort veraltete und verworfene Anzahlen.

    Nach einem SBOMWird erfolgreich verarbeitet, wo Sie die hochgeladenen Datensätze anzeigen, hängt von den von Ihnen verwendeten Anwendungen ab.

    • Wenn Sie verwenden SBOMAntwort: Der Stücklistenentitätsdatensatz wird auf angezeigt SBOMListe „Erfassungsstatus“ im Modul „Stücklistenwarteschlange“ in SBOMArbeitsbereich.
    • Wenn Sie SBOM Core verwenden, navigieren Sie zu SBOM-Core > Stücklisten-Erfassungsstatusan.

    Erweiterungen zu unterstützt SBOMStandards und allgemeine Nutzungsinformationen

    Version 4,0 von SBOMCore-Unterstützung:
    • XML und JSON in CycloneDx (Versionen 1.0–1.6).
    • JSON in SPDX (Versionen 2,2–2,3)
    • Hinweis:
      Dateien mit mehr als 32 MB werden möglicherweise nicht ordnungsgemäß geladen.
    Beginnend mit v4.0 von SBOMCore, die folgenden Erweiterungen wurden zur Unterstützung der CycloneDx-Standards für die Versionen 1,0 bis 1,6 vorgenommen:
    • Importieren Sie zusätzliche Informationen in CycloneDX-SBOM-Dateien mit der Eigenschaft (sn_sbom_core.collect_properties). Diese Eigenschaft ist standardmäßig deaktiviert. Aktivieren Sie die Eigenschaft, um Informationen zu importieren, die im Allgemeinen nicht unterstützt werden. Alle aus diesen Eigenschaften importierten Informationen werden für Folgendes in die Tabelle „SBOM-Komponenteneigenschaft“ [sn_sbom_comp_property] hochgeladen:
      • SBOM-Dateien hochgeladen
      • Metadaten
      • Einzelne Schwachstellen
      • Komponenten
    • Zeigen Sie importierte Komponentendaten für deklarierte und abgeschlossene Lizenzen für SBOM-Dateien in Versionen 1,4 und höher von CycloneDX in zwei neuen Lizenzfeldern an:
      • Deklariert
      • Abgeschlossen
    • Die Unterstützung für die SBOM-Analyse wird für die folgenden CycloneDX-Komponententypen erweitert:
      • Version 1,5: Plattform, Daten, Gerätetreiber, Modell für maschinelles Lernen
      • Version 1,6: Kryptografisch
    Version 3,0 von SBOMCore-Unterstützung:
    • XML und JSON in CycloneDx (bis einschließlich Version 1,4).
    • JSON in SPDX (bis zu und einschließlich v2.3).

    Wenn der aufrufende Anwender erfolgreich authentifiziert wurde und die Rolle „sn_sbom_core.sbom_ingest“ in Ihrem hat ServiceNowInstanz können Sie von außerhalb Ihrer Instanz auf die API zugreifen, um hochzuladen SBOMDaten.

    Nachdem Daten hochgeladen wurden, werden sie analysiert. Bevor Daten analysiert werden, werden die folgenden Anforderungen verifiziert:

    • Eingehende Daten werden überprüft, ob sie eine gültige JSON- oder XML-Datei sind.
    • Das Stücklistenformat wird unterstützt. Beginnend mit v2.1 von SBOMDie Formate Core, CycloneDX (JSON und XML) und SPDX (XML) werden unterstützt.
    • Die Mindestanzahl von Feldern ist verfügbar, damit Daten analysiert werden können.

    Nachdem diese Prüfungen verifiziert wurden, wird ein Eintrag in die Tabelle „Stückliste“ [sn_sbom_doc] mit „eingehend“ vorgenommen SBOMDaten als Anhang.

    Die Process BOM fileDie Business-Regel wird automatisch infolge des Einfügens von Datensätzen und der Datenanalyse ausgelöst.
    Hinweis:
    Diese Business-Regel wird während der Installation von aktiviert SBOMStandardmäßig Core.

    Alle Komponenten, die in aufgeführt sind SBOMHaben definiert Typ .

    • Komponenten, für die SBOMDateien, die hochgeladen wurden, werden als Stücklistenentitäten betrachtet.
    • Komponenten aufgeführt als Type=Library Werden als Komponenten von Drittparteien betrachtet.