Condividi tramite


Avvio rapido: Caricare immagini del firmware nel sistema di analisi del firmware usando 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 nel sistema di analisi del firmware.

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

Prerequisiti

Questo argomento di avvio rapido 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. Generare un GUID da usare come ID firmware univoco. Per esempio:

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

Negli esempi successivi, usare l'output del comando come ID firmware

  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 --firmware-id {firmware ID from command above} --vendor {vendor name} --model {model name} --version {version number}
    

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

  1. Generare un URL di firma di accesso condiviso, che si userà nel passaggio successivo per inviare l'immagine del firmware ad Archiviazione di Azure. Sostituire sampleFirmwareID con l'ID firmware salvato nel passaggio precedente. È possibile archiviare l'URL di firma di accesso condiviso in una variabile per facilitarne l'accesso nei 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 "Ready":

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

Cercare il campo "status" per accertarsi che venga visualizzato lo stato "Ready", quindi eseguire i comandi seguenti per recuperare i risultati dell'analisi del firmware.

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

Il comando az resource wait contiene un parametro --timeout, ovvero il tempo in secondi entro il quale l'analisi terminerà se il campo “status” non raggiungerà il valore “Ready” entro il tempo di timeout. Il timeout predefinito è 3600, ovvero un'ora. Le immagini di grandi dimensioni possono richiedere un tempo di analisi più lungo; è quindi possibile impostare il timeout usando il parametro --timeout in base alle proprie esigenze. Ecco un esempio di come è possibile usare il comando az resource wait con il parametro --timeout per automatizzare la verifica dello stato dell'analisi, supponendo che sia già stato creato un firmware e che l'ID firmware sia stato archiviato 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 verificato che lo stato dell'analisi sia impostato su "Ready", è possibile eseguire i comandi richiesti per eseguire il pull dei risultati.

Riepilogo firmware

Il comando seguente recupera un riepilogo generale dei risultati dell'analisi del firmware. Sostituire ogni argomento con il valore appropriato per il gruppo di risorse, il nome dell'area di lavoro e l'ID firmware.

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

SBOM

Il comando seguente recupera la distinta base software (SBOM) presente 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 vulnerabilità ed esposizione comuni (CVE) individuate 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

Per un riassunto delle CVE, eseguire il comando seguente:

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

Protezione avanzata binaria

Il comando seguente recupera i risultati dell'analisi relativi alla protezione avanzata binaria presente 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

Per un riepilogo dei risultati della protezione avanzata binaria, eseguire il comando seguente:

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

Hash delle password

Il comando seguente recupera gli hash delle password presenti 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 individuati 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

Per un riepilogo dei certificati, eseguire il comando seguente:

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

Chiavi

Il comando seguente recupera le chiavi di crittografia vulnerabili individuate 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

Per un riepilogo delle chiavi, eseguire il comando seguente:

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