Freigeben über


Schnellstart: Hochladen von Firmwareimages in die Firmware-Analyse mit der Azure CLI

In diesem Artikel wird erklärt, wie Sie die Azure CLI verwenden, um Firmwareimages in die Firmware-Analyse hochzuladen.

Die Firmwareanalyse ist ein Tool, das Firmwareimages analysiert und ein Verständnis von Sicherheitsrisiken in den Firmwareimages vermittelt.

Voraussetzungen

In diesem Schnellstart wird ein grundlegendes Verständnis der Firmware-Analyse vorausgesetzt. Weitere Informationen finden Sie unter Firmwareanalyse für Geräteentwickler. Eine Liste der unterstützten Dateisysteme finden Sie unter Häufig gestellte Fragen zur Firmware-Analyse.

Vorbereiten der Umgebung für die Azure CLI

  • Installieren Sie die Azure CLI, damit Sie Azure CLI-Befehle lokal ausführen können. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.

  • Melden Sie sich mit dem Befehl az login bei der Azure CLI an. Führen Sie die auf Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.

  • Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.

    • Installieren Sie die Erweiterung für die Firmware-Analyse, indem Sie den folgenden Befehl ausführen:
      az extension add --name firmwareanalysis
      
  • Um die installierte Version und die abhängigen Bibliotheken zu ermitteln, führen Sie az version aus. Um ein Upgrade auf die neueste Version durchzuführen, führen Sie das Befehl az upgrade aus.

  • Führen Sie ein Onboarding Ihres Abonnements für die Firmware-Analyse durch.

  • Wählen Sie die entsprechende Abonnement-ID aus, in die Sie Ihre Firmwareimages hochladen möchten, indem Sie den Befehl az account set ausführen.

Hochladen eines Firmwareimages in den Arbeitsbereich

  1. Generieren Sie eine GUID, die als eindeutige Firmware-ID verwendet werden soll. Beispiel:

    python -c "import uuid; print(uuid.uuid4())"
    

Verwenden Sie die Ausgabe des Befehls als Firmware-ID in den nachfolgenden Beispielen.

  1. Erstellen Sie ein Firmwareimage, das hochgeladen werden soll. Fügen Sie ihren Ressourcengruppennamen, die Abonnement-ID und den Arbeitsbereichsnamen in die entsprechenden Parameter ein.

    az firmwareanalysis firmware create --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id {firmware ID from command above} --vendor {vendor name} --model {model name} --version {version number}
    

Die Ausgabe dieses Befehls enthält die Eigenschaft name, die Ihre Firmware-ID enthält. Speichern Sie diese ID für den nächsten Schritt.

  1. Generieren Sie eine SAS-URL, die Sie im nächsten Schritt verwenden werden, um Ihr Firmwareimage an Azure Storage zu senden. Ersetzen Sie sampleFirmwareID durch die Firmware-ID, die Sie im vorherigen Schritt gespeichert haben. Sie können die SAS-URL in einer Variablen speichern, um den Zugriff für zukünftige Befehle zu erleichtern:

    set resourceGroup=myResourceGroup
    set subscription=123e4567-e89b-12d3-a456-426614174000
    set workspace=default
    set firmwareID=sampleFirmwareID
    
    for /f "tokens=*" %i in ('az firmwareanalysis workspace generate-upload-url --resource-group %resourceGroup% --subscription %subscription% --workspace-name %workspace% --firmware-id %firmwareID% --query "url"') do set sasURL=%i
    
  2. Laden Sie Ihr Firmwareimage in Azure Storage hoch. Ersetzen Sie pathToFile durch den Pfad zu Ihrem Firmwareimage auf Ihrem lokalen Computer.

    az storage blob upload -f "pathToFile" --blob-url %sasURL%
    

Hier ist ein Beispielworkflow, der zeigt, wie Sie diese Befehle verwenden können, um ein Firmwareimage zu erstellen und hochzuladen. Weitere Informationen zur Verwendung von Variablen in CLI-Befehlen finden Sie unter Verwenden von Variablen in Azure CLI-Befehlen:

set filePath="/path/to/image"
set resourceGroup="myResourceGroup"
set workspace="default"

set fileName="file1"
set vendor="vendor1"
set model="model"
set version="test"

for /f "tokens=*" %i in ('az firmwareanalysis firmware create --resource-group %resourceGroup% --workspace-name %workspace% --file-name %fileName% --vendor %vendor% --model %model% --version %version% --query "name"') do set FWID=%i

for /f "tokens=*" %i in ('az firmwareanalysis workspace generate-upload-url --resource-group %resourceGroup% --workspace-name %workspace% --firmware-id %FWID% --query "url"') do set URL=%i

az storage blob upload -f %filePath% --blob-url %URL%

Abrufen von Firmwareanalyseergebnissen

Um Firmwareanalyseergebnisse abzurufen, müssen Sie sicherstellen, dass der Status der Analyse „Bereit“ lautet:

az firmwareanalysis firmware show --firmware-id sampleFirmwareID --resource-group myResourceGroup --workspace-name default

Suchen Sie nach dem Feld „Status“, um „Bereit“ anzuzeigen, und führen Sie dann die folgenden Befehle aus, um die Ergebnisse der Firmwareanalyse abzurufen.

Wenn Sie die Überprüfung des Analysestatus automatisieren möchten, können Sie den Befehl az resource wait verwenden.

Der Befehl az resource wait verfügt über den Parameter --timeout, der die Zeit in Sekunden angibt, nach der die Analyse beendet wird, wenn „Status“ nicht innerhalb des Zeitrahmens den Wert „Bereit“ erreicht. Das Standardtimeout beträgt 3600, also eine Stunde. Da die Analyse großer Images länger dauern kann, können Sie das Timeout mithilfe des Parameters --timeout entsprechend Ihren Anforderungen festlegen. Hier ist ein Beispiel dafür, wie Sie den Befehl az resource wait mit dem Parameter --timeout verwenden können, um die Überprüfung des Analysestatus zu automatisieren, vorausgesetzt, Sie haben bereits eine Firmware erstellt und die Firmware-ID in einer Variablen namens $FWIDgespeichert:

set resourceGroup="myResourceGroup"
set workspace="default"
set FWID="yourFirmwareID"

for /f "tokens=*" %i in ('az firmwareanalysis firmware show --resource-group %resourceGroup% --workspace-name %workspace% --firmware-id %FWID% --query "id"') do set ID=%i

echo Successfully created a firmware image with the firmware ID of %FWID%, recognized in Azure by this resource ID: %ID%.

for /f "tokens=*" %i in ('az resource wait --ids %ID% --custom "properties.status=='Ready'" --timeout 10800') do set WAIT=%i

for /f "tokens=*" %i in ('az resource show --ids %ID% --query "properties.status"') do set STATUS=%i

echo firmware analysis completed with status: %STATUS%

Nachdem Sie bestätigt haben, dass der Analysestatus „Bereit“ lautet, können Sie Befehle ausführen, um die Ergebnisse abzurufen.

Firmwarezusammenfassung

Der folgende Befehl ruft eine allgemeine Zusammenfassung Ihrer Firmwareanalyseergebnisse ab. Ersetzen Sie jedes Argument durch den entsprechenden Wert für Die Ressourcengruppe, den Arbeitsbereichsnamen und die Firmware-ID.

az firmwareanalysis firmware summary --resource-group myResourceGroup --workspace-name default --firmware-id 123e4567-e89b-12d3-a456-426614174000 --summary-type Firmware

SBOM

Mit dem folgenden Befehl wird das SBOM in Ihrem Firmwareimage abgerufen. Ersetzen Sie die einzelnen Argumente durch den entsprechenden Wert für Ihre Ressourcengruppe, Ihr Abonnement, den Arbeitsbereichsnamen und die Firmware-ID.

az firmwareanalysis firmware sbom-component --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID

Schwächen

Der folgende Befehl ruft die in Ihrem Firmware-Image gefundenen CVEs ab. Ersetzen Sie die einzelnen Argumente durch den entsprechenden Wert für Ihre Ressourcengruppe, Ihr Abonnement, den Arbeitsbereichsnamen und die Firmware-ID.

az firmwareanalysis firmware cve --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID

Führen Sie für eine Zusammenfassung Ihrer CVEs den folgenden Befehl aus:

az firmwareanalysis firmware summary --resource-group myResourceGroup --workspace-name default --firmware-id 123e4567-e89b-12d3-a456-426614174000 --summary-type CommonVulnerabilitiesAndExposures

Binäre Härtung

Der folgende Befehl ruft Analyseergebnisse zur binären Härtung in Ihrem Firmwareimage ab. Ersetzen Sie die einzelnen Argumente durch den entsprechenden Wert für Ihre Ressourcengruppe, Ihr Abonnement, den Arbeitsbereichsnamen und die Firmware-ID.

az firmwareanalysis firmware binary-hardening --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID

Führen Sie den folgenden Befehl aus, um eine Zusammenfassung ihrer binären Härtungsergebnisse zu erzielen:

az firmwareanalysis firmware summary --resource-group myResourceGroup --workspace-name default --firmware-id 123e4567-e89b-12d3-a456-426614174000 --summary-type BinaryHardening

Kennworthashes

Mit dem folgenden Befehl werden Kennworthashes in Ihrem Firmwareimage abgerufen. Ersetzen Sie die einzelnen Argumente durch den entsprechenden Wert für Ihre Ressourcengruppe, Ihr Abonnement, den Arbeitsbereichsnamen und die Firmware-ID.

az firmwareanalysis firmware password-hash --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID

Zertifikate

Mit dem folgenden Befehl werden anfällige Kryptozertifikate abgerufen, die in Ihrem Firmwareimage gefunden wurden. Ersetzen Sie die einzelnen Argumente durch den entsprechenden Wert für Ihre Ressourcengruppe, Ihr Abonnement, den Arbeitsbereichsnamen und die Firmware-ID.

az firmwareanalysis firmware crypto-certificate --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID

Führen Sie für eine Zusammenfassung Ihrer Zertifikate den folgenden Befehl aus:

az firmwareanalysis firmware summary --resource-group myResourceGroup --workspace-name default --firmware-id 123e4567-e89b-12d3-a456-426614174000 --summary-type CryptoCertificate

Tasten

Der folgende Befehl ruft anfällige Kryptoschlüssel ab, die in Ihrem Firmwareimage gefunden wurden. Ersetzen Sie die einzelnen Argumente durch den entsprechenden Wert für Ihre Ressourcengruppe, Ihr Abonnement, den Arbeitsbereichsnamen und die Firmware-ID.

az firmwareanalysis firmware crypto-key --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID

Führen Sie den folgenden Befehl aus, um eine Zusammenfassung der Tasten anzuzeigen:

az firmwareanalysis firmware summary --resource-group myResourceGroup --workspace-name default --firmware-id 123e4567-e89b-12d3-a456-426614174000 --summary-type CryptoKey