Condividi tramite


Guida introduttiva: Caricare immagini del firmware nell'analisi del firmware con l'interfaccia della riga di comando di Azure

Questo articolo illustra come usare l'interfaccia della riga di comando di Azure per caricare immagini del firmware nell'analisi del firmware.

L'analisi del firmware è uno strumento che analizza le immagini del firmware e fornisce informazioni sulle vulnerabilità di sicurezza nelle immagini del firmware.

Prerequisiti

Questa guida introduttiva presuppone una conoscenza di base dell'analisi del firmware. Per altre informazioni, vedere Analisi del firmware per i costruttori di dispositivi Per un elenco dei file system supportati, vedere Domande frequenti sull'analisi del firmware.

Preparare l'ambiente per l'interfaccia della riga di comando di Azure

Caricare un'immagine del firmware nell'area di lavoro

  1. Creare un'immagine del firmware da caricare. Inserire il nome del gruppo di risorse, l'ID sottoscrizione e il nome dell'area di lavoro nei rispettivi parametri.

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

L'output di questo comando include una name proprietà, ovvero l'ID firmware. Salvare questo ID per il comando successivo.

  1. Generare un URL di firma di accesso condiviso, che verrà usato nel passaggio successivo per inviare l'immagine del firmware a Archiviazione di Azure. Sostituire sampleFirmwareID con l'ID firmware salvato dal passaggio precedente. È possibile archiviare l'URL della firma di accesso condiviso in una variabile per semplificare l'accesso ai comandi futuri:

    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. Caricare l'immagine del firmware in Archiviazione di Azure. Sostituire pathToFile con il percorso dell'immagine del firmware nel computer locale.

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

Ecco un flusso di lavoro di esempio di come è possibile usare questi comandi per creare e caricare un'immagine del firmware. Per altre informazioni sull'uso delle variabili nei comandi dell'interfaccia della riga di comando, vedere Come usare le variabili nei comandi dell'interfaccia della riga di comando di Azure:

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%

Recuperare i risultati dell'analisi del firmware

Per recuperare i risultati dell'analisi del firmware, è necessario assicurarsi che lo stato dell'analisi sia "Pronto":

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

Cercare il campo "status" per visualizzare "Ready", quindi eseguire i comandi seguenti per recuperare i risultati dell'analisi del firmware.

Se si vuole automatizzare il processo di controllo dello stato dell'analisi, è possibile usare il az resource wait comando .

Il az resource wait comando ha un --timeout parametro, ovvero il tempo in secondi in cui l'analisi terminerà se "status" non raggiunge "Ready" entro l'intervallo di timeout. Il timeout predefinito è 3600, ovvero un'ora. Le immagini di grandi dimensioni possono richiedere più tempo per l'analisi, quindi è possibile impostare il timeout usando il --timeout parametro in base alle proprie esigenze. Di seguito è riportato un esempio di come usare il comando con il az resource wait --timeout parametro per automatizzare il controllo dello stato dell'analisi, presupponendo che sia già stato creato un firmware e archiviato l'ID firmware in una variabile denominata $FWID:

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%

Dopo aver confermato che lo stato dell'analisi è "Pronto", è possibile eseguire i comandi per eseguire il pull dei risultati.

SBOM

Il comando seguente recupera lo SBOM nell'immagine del firmware. Sostituire ogni argomento con il valore appropriato per il gruppo di risorse, la sottoscrizione, il nome dell'area di lavoro e l'ID firmware.

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

Punti di debolezza

Il comando seguente recupera le CVE trovate nell'immagine del firmware. Sostituire ogni argomento con il valore appropriato per il gruppo di risorse, la sottoscrizione, il nome dell'area di lavoro e l'ID firmware.

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

Protezione avanzata binaria

Il comando seguente recupera i risultati dell'analisi sulla protezione avanzata binaria nell'immagine del firmware. Sostituire ogni argomento con il valore appropriato per il gruppo di risorse, la sottoscrizione, il nome dell'area di lavoro e l'ID firmware.

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

Hash delle password

Il comando seguente recupera gli hash delle password nell'immagine del firmware. Sostituire ogni argomento con il valore appropriato per il gruppo di risorse, la sottoscrizione, il nome dell'area di lavoro e l'ID firmware.

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

Certificati

Il comando seguente recupera i certificati di crittografia vulnerabili trovati nell'immagine del firmware. Sostituire ogni argomento con il valore appropriato per il gruppo di risorse, la sottoscrizione, il nome dell'area di lavoro e l'ID firmware.

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

Chiavi

Il comando seguente recupera le chiavi di crittografia vulnerabili trovate nell'immagine del firmware. Sostituire ogni argomento con il valore appropriato per il gruppo di risorse, la sottoscrizione, il nome dell'area di lavoro e l'ID firmware.

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