Freigeben über


Schnellstart: Hochladen von Firmwareimages zur Defender for IoT-Firmwareanalyse mit Azure CLI

In diesem Artikel wird erläutert, wie Sie die Azure CLI verwenden, um Firmwareimages zur Defender for IoT Firmwareanalyse hochzuladen.

Defender for IoT-Firmwareanalyse ist ein Tool, das Firmwareimages analysiert und ein Verständnis von Sicherheitsrisiken in den Firmwareimages vermittelt.

Voraussetzungen

In dieser Schnellstartanleitung wird ein grundlegendes Verständnis der Defender for IoT-Firmwareanalyse vorausgesetzt. Weitere Informationen finden Sie unter Firmwareanalyse für Gerätehersteller. Eine Liste der unterstützten Dateisysteme finden Sie unter Häufig gestellte Fragen zu Defender for IoT-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 Erweiterung Defender for IoT-Firmwareanalyse, 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 für Ihr Abonnement für Defender for IoT-Firmwareanalyse 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. 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:

    $sasURL = $(az firmwareanalysis workspace generate-upload-url --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID --query "url")
    
  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:

$filePath='/path/to/image'
$resourceGroup='myResourceGroup'
$workspace='default'

$fileName='file1'
$vendor='vendor1'
$model='model'
$version='test'

$FWID=$(az firmwareanalysis firmware create --resource-group $resourceGroup --workspace-name $workspace --file-name $fileName --vendor $vendor --model $model --version $version --query "name")

$URL=$(az firmwareanalysis workspace generate-upload-url --resource-group $resourceGroup --workspace-name $workspace --firmware-id $FWID --query "url")

$OUTPUT=(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:

$ID=$(az firmwareanalysis firmware show --resource-group $resourceGroup --workspace-name $workspace --firmware-id $FWID --query "id")

Write-Host (‘Successfully created a firmware image with the firmware ID of ‘ + $FWID + ‘, recognized in Azure by this resource ID: ‘ + $ID + ‘.’)

$WAIT=$(az resource wait --ids $ID --custom "properties.status=='Ready'" --timeout 10800) 

$STATUS=$(az resource show --ids $ID --query 'properties.status')

Write-Host ('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 Firmwareimage vorhandenen 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