共用方式為


快速入門:使用 Azure CLI 將韌體映像上傳至韌體分析

本文說明如何使用 Azure CLI 將韌體映像上傳至韌體分析。

韌體分析是一種工具 ,可分析韌體映像,並瞭解韌體映射中的安全性弱點。

必要條件

本快速入門假設對韌體分析有基本的瞭解。 如需詳細資訊,請參閱裝置建立器的韌體分析。 如需支援的文件系統清單,請參閱 韌體分析的常見問題。

備妥環境以使用 Azure CLI

將韌體映像上傳至工作區

  1. 建立要上傳的韌體映像。 將資源組名、訂用帳戶標識碼和工作區名稱插入個別參數中。

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

此命令的輸出包含 name 屬性,也就是您的韌體標識碼。 儲存下一個命令的這個標識碼。

  1. 產生 SAS URL,您將在下一個步驟中用來將韌體映射傳送至 Azure 儲存體。 將取代 sampleFirmwareID 為您從上一個步驟儲存的韌體標識碼。 您可以將 SAS URL 儲存在變數中,以便日後命令更容易存取:

    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. 將您的韌體映像上傳至 Azure 儲存體。 將取代 pathToFile 為本機計算機上韌體映射的路徑。

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

以下是如何使用這些命令來建立和上傳韌體映像的範例工作流程。 若要深入瞭解如何在 CLI 命令中使用變數,請流覽 如何在 Azure CLI 命令中使用變數:

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%

擷取韌體分析結果

若要擷取韌體分析結果,您必須確定分析的狀態為「就緒」:

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

尋找 [狀態] 欄位以顯示 [就緒],然後執行下列命令來擷取韌體分析結果。

如果您想要將檢查分析狀態的程式自動化,您可以使用 az resource wait 命令。

az resource wait此命令具有--timeout參數,這是分析在逾時範圍內未到達「就緒」時,分析將會結束的時間。 默認逾時為 3600,也就是一小時。 大型影像可能需要較長的時間進行分析,因此您可以根據需求使用 --timeout 參數來設定逾時。 以下範例說明如何使用 az resource wait 命令搭配 --timeout 參數來自動檢查分析的狀態,假設您已建立韌體,並將韌體標識符儲存在名為 $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%

確認分析狀態為「就緒」之後,您可以執行命令來提取結果。

SBOM

下列命令會擷取韌體映像中的SBOM。 將每個自變數取代為資源群組、訂用帳戶、工作區名稱和韌體標識碼的適當值。

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

弱點

下列命令會擷取韌體映像中找到的 CVE。 將每個自變數取代為資源群組、訂用帳戶、工作區名稱和韌體標識碼的適當值。

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

二進位強化

下列命令會擷取韌體映像中二進位強化的分析結果。 將每個自變數取代為資源群組、訂用帳戶、工作區名稱和韌體標識碼的適當值。

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

密碼雜湊

下列命令會擷取韌體映像中的密碼哈希。 將每個自變數取代為資源群組、訂用帳戶、工作區名稱和韌體標識碼的適當值。

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

憑證

下列命令會擷取韌體映像中找到的易受攻擊密碼編譯憑證。 將每個自變數取代為資源群組、訂用帳戶、工作區名稱和韌體標識碼的適當值。

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

[索引鍵]

下列命令會擷取韌體映像中找到的易受攻擊密碼編譯密鑰。 將每個自變數取代為資源群組、訂用帳戶、工作區名稱和韌體標識碼的適當值。

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