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
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
,Vendor
Model
neboVersion
.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.
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
K nahrání image firmwaru do Azure Storage použijte následující skript.
pathToFile
Nahraď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