Rychlý start: Nahrání imagí firmwaru do Defenderu pro analýzu firmwaru IoT pomocí Azure PowerShellu

Tento článek vysvětluje, jak pomocí Azure PowerShellu nahrát image firmwaru do Defenderu pro analýzu firmwaru IoT.

Defender for IoT Firmware Analysis je nástroj, který analyzuje image firmwaru a poskytuje porozumění ohrožením zabezpečení v imagích firmwaru.

Požadavky

V tomto rychlém startu se předpokládá základní znalost analýzy firmwaru Defenderu pro IoT. Další informace najdete v tématu Analýza firmwaru pro tvůrce zařízení. Seznam podporovaných systémů souborů najdete v tématu Nejčastější dotazy k analýze firmwaru Defenderu pro IoT.

Příprava prostředí pro Azure PowerShell

  • Nainstalujte Azure PowerShell nebo použijte Azure Cloud Shell.

  • Přihlaste se k Azure PowerShellu spuštěním příkazu Připojení-AzAccount. Pokud používáte Cloud Shell, tento krok přeskočte.

  • Pokud se jedná o první použití Azure PowerShellu pro analýzu firmwaru Služby IoT Defenderu, nainstalujte rozšíření:

    Find-Module -Name Az.FirmwareAnalysis | Install-Module
    
  • Připojte své předplatné do programu Defender for IoT Firmware Analysis.

  • Spuštěním rutiny Set-AzContext nastavte své předplatné tak, aby se používalo v aktuální relaci. Vyberte předplatné, do kterého chcete nahrát image firmwaru.

Nahrání image firmwaru do pracovního prostoru

  1. Vytvořte image firmwaru, která se má nahrát. Vložte název skupiny prostředků, název pracovního prostoru a všechny další podrobnosti o imagi firmwaru, kterou chcete zahrnout do příslušných parametrů, například a Description, , FileName, VendorModelnebo Version.

    New-AzFirmwareAnalysisFirmware -ResourceGroupName myResourceGroup -WorkspaceName default -Description 'sample description' -FileName file -Vendor vendor -Model model -Version version
    

Výstup tohoto příkazu zahrnuje Name vlastnost, což je ID vašeho firmwaru. Uložte toto ID pro další příkaz.

  1. Vygenerujte adresu URL SAS, kterou použijete v dalším kroku k odeslání image firmwaru do Služby Azure Storage. Nahraďte sampleFirmwareID ID firmwaru, které jste uložili v předchozím kroku. Adresu URL SAS můžete uložit do proměnné, abyste usnadnili přístup pro budoucí příkazy:

    $sasUrl = New-AzFirmwareAnalysisWorkspaceUploadUrl -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
    
  2. K nahrání image firmwaru do Azure Storage použijte následující skript. pathToFileNahraďte cestu k imagi firmwaru na místním počítači. Zabalte cestu do uvozovek.

    $uri = [System.Uri] $sasURL.Url
    $storageAccountName = $uri.DnsSafeHost.Split(".")[0]
    $container = $uri.LocalPath.Substring(1)
    $containerName, $blob = $container -split '/', 2
    $sasToken = $uri.Query
    $filePath = 'pathToFile'
    $storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -SasToken $sasToken
    Set-AzStorageBlobContent -File $filePath -Container $containerName -Context $storageContext -Blob $blob -Force
    

Tady je ukázkový pracovní postup od konce do konce, jak můžete pomocí příkazů Azure PowerShellu vytvořit a nahrát image firmwaru. Nahraďte hodnoty proměnných nastavených na začátku tak, aby odrážely vaše prostředí.

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

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

$FWID = (New-AzFirmwareAnalysisFirmware -ResourceGroupName $resourceGroup -WorkspaceName $workspace -FileName $fileName -Vendor $vendor -Model $model -Version $version).Name

$sasUrl = New-AzFirmwareAnalysisWorkspaceUploadUrl -FirmwareId $FWID -ResourceGroupName $resourceGroup -WorkspaceName $workspace

$uri = [System.Uri] $sasURL.Url
$storageAccountName = $uri.DnsSafeHost.Split(".")[0]
$container = $uri.LocalPath.Substring(1)
$containerName, $blob = $container -split '/', 2
$sasToken = $uri.Query
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -SasToken $sasToken
Set-AzStorageBlobContent -File $filePath -Container $containerName -Context $storageContext -Blob $blob -Force

Načtení výsledků analýzy firmwaru

Pokud chcete načíst výsledky analýzy firmwaru, musíte se ujistit, že stav analýzy je Připravený. Nahraďte sampleFirmwareID ID firmwaru, myResourceGroup názvem vaší skupiny prostředků a default názvem vašeho pracovního prostoru:

Get-AzFirmwareAnalysisFirmware -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default

Vyhledejte pole Status (Stav), aby se zobrazilo "Připraveno", a pak spusťte příslušné příkazy, které načtou výsledky analýzy firmwaru.

Pokud chcete automatizovat proces kontroly stavu analýzy, můžete pomocí následujícího skriptu pravidelně kontrolovat stav prostředku, dokud nedosáhne stavu Připraveno. Proměnnou $timeoutInSeconds můžete nastavit v závislosti na velikosti obrázku – analýza větších obrázků může trvat déle, takže tuto proměnnou upravte podle svých potřeb.

$ID = Get-AzFirmwareAnalysisFirmware -ResourceGroupName $resourceGroup -WorkspaceName default -FirmwareId $FWID | Select-Object -ExpandProperty Id

Write-Host "Successfully created a firmware image, recognized in Azure by this resource id: $ID."

$timeoutInSeconds = 10800
$startTime = Get-Date

while ($true) {
    $resource = Get-AzResource -ResourceId $ID
    $status = $resource.Properties.Status

    if ($status -eq 'ready') {
        Write-Host "Firmware analysis completed with status: $status"
        break
    }

    $elapsedTime = (Get-Date) - $startTime
    if ($elapsedTime.TotalSeconds -ge $timeoutInSeconds) {
        Write-Host "Timeout reached. Firmware analysis status: $status"
        break
    }

    Start-Sleep -Seconds 10
}

SBOM

Následující příkaz načte SBOM v imagi firmwaru. Nahraďte každý argument odpovídající hodnotou pro vaši skupinu prostředků, předplatné, název pracovního prostoru a ID firmwaru.

Get-AzFirmwareAnalysisSbomComponent -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default

Slabé stránky

Následující příkaz načte CVE nalezené v imagi firmwaru. Nahraďte každý argument odpovídající hodnotou pro vaši skupinu prostředků, předplatné, název pracovního prostoru a ID firmwaru.

Get-AzFirmwareAnalysisCve -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default 

Binární posílení zabezpečení

Následující příkaz načte výsledky analýzy binárního posílení zabezpečení v imagi firmwaru. Nahraďte každý argument odpovídající hodnotou pro vaši skupinu prostředků, předplatné, název pracovního prostoru a ID firmwaru.

Get-AzFirmwareAnalysisBinaryHardening -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default 

Hodnoty hash hesel

Následující příkaz načte hodnoty hash hesel v imagi firmwaru. Nahraďte každý argument odpovídající hodnotou pro vaši skupinu prostředků, předplatné, název pracovního prostoru a ID firmwaru.

Get-AzFirmwareAnalysisPasswordHash -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default 

Certifikáty

Následující příkaz načte zranitelné kryptografické certifikáty, které byly nalezeny v imagi firmwaru. Nahraďte každý argument odpovídající hodnotou pro vaši skupinu prostředků, předplatné, název pracovního prostoru a ID firmwaru.

Get-AzFirmwareAnalysisCryptoCertificate -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default 

Klávesy

Následující příkaz načte zranitelné kryptografické klíče, které byly nalezeny v imagi firmwaru. Nahraďte každý argument odpovídající hodnotou pro vaši skupinu prostředků, předplatné, název pracovního prostoru a ID firmwaru.

Get-AzFirmwareAnalysisCryptoKey -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default