Freigeben über


Schnellstart: Hochladen von Firmwareimages in die Firmwareanalyse mit der Azure-Befehlszeilenschnittstelle

Dieser Artikel erklärt, wie Sie die der Azure-Befehlszeilenschnittstelle verwenden, um Firmwareimages für die Firmwareanalyse 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 Firmwareanalyse 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 Firmwareanalyse.

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 Firmwareanalyseerweiterung, 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.

  • Integrieren Sie Ihr Abonnement in die Firmwareanalyse.

  • 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. 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
    

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.

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

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

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

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