Snabbstart: Ladda upp avbildningar av inbyggd programvara till Defender for IoT Firmware Analysis med Azure PowerShell
Den här artikeln beskriver hur du använder Azure PowerShell för att ladda upp avbildningar av inbyggd programvara till Defender for IoT Firmware Analysis.
Defender for IoT Firmware Analysis är ett verktyg som analyserar bilder av inbyggd programvara och ger en förståelse för säkerhetsrisker i avbildningarna av inbyggd programvara.
Förutsättningar
Den här snabbstarten förutsätter en grundläggande förståelse av Defender for IoT Firmware Analysis. Mer information finns i Analys av inbyggd programvara för enhetsbyggare. En lista över de filsystem som stöds finns i Vanliga frågor och svar om Defender för analys av inbyggd IoT-programvara.
Förbereda din miljö för Azure PowerShell
Logga in på Azure PowerShell genom att köra kommandot Anslut-AzAccount. Hoppa över det här steget om du använder Cloud Shell.
Om det här är din första användning av Azure PowerShell för Defender for IoT Firmware Analysis installerar du tillägget:
Find-Module -Name Az.FirmwareAnalysis | Install-Module
Registrera din prenumeration på Defender for IoT Firmware Analysis.
Kör Set-AzContext för att ange att din prenumeration ska användas i den aktuella sessionen. Välj den prenumeration där du vill ladda upp dina avbildningar av inbyggd programvara.
Ladda upp en avbildning av inbyggd programvara till arbetsytan
Skapa en avbildning av inbyggd programvara som ska laddas upp. Infoga resursgruppens namn, arbetsytans namn och eventuell ytterligare information om din avbildning av den inbyggda programvaran som du vill inkludera i respektive parametrar, till exempel ,
Description
FileName
,Vendor
,Model
ellerVersion
.New-AzFirmwareAnalysisFirmware -ResourceGroupName myResourceGroup -WorkspaceName default -Description 'sample description' -FileName file -Vendor vendor -Model model -Version version
Utdata från det här kommandot innehåller en Name
egenskap, som är ditt ID för inbyggd programvara. Spara det här ID:t för nästa kommando.
Generera en SAS-URL som du ska använda i nästa steg för att skicka avbildningen av den inbyggda programvaran till Azure Storage. Ersätt
sampleFirmwareID
med det ID för inbyggd programvara som du sparade från föregående steg. Du kan lagra SAS-URL:en i en variabel för enklare åtkomst för framtida kommandon:$sasUrl = New-AzFirmwareAnalysisWorkspaceUploadUrl -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
Använd följande skript för att ladda upp avbildningen av den inbyggda programvaran till Azure Storage. Ersätt med
pathToFile
sökvägen till avbildningen av den inbyggda programvaran på den lokala datorn. Omslut sökvägen inom citattecken.$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
Här är ett exempel på ett arbetsflöde från slutpunkt till slutpunkt för hur du kan använda Azure PowerShell-kommandon för att skapa och ladda upp en avbildning av inbyggd programvara. Ersätt värdena för variablerna som angavs i början för att återspegla din miljö.
$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
Hämta resultat för analys av inbyggd programvara
Om du vill hämta resultat från analys av inbyggd programvara måste du se till att analysens status är "Klar". Ersätt sampleFirmwareID
med ditt ID för inbyggd programvara, myResourceGroup
med resursgruppens namn och default
med namnet på din arbetsyta:
Get-AzFirmwareAnalysisFirmware -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
Leta efter fältet "status" för att visa "Klar" och kör sedan respektive kommandon för att hämta analysresultatet för den inbyggda programvaran.
Om du vill automatisera processen för att kontrollera analysens status kan du använda följande skript för att kontrollera resursstatusen regelbundet tills den når "Klar". Du kan ange variabeln $timeoutInSeconds
beroende på storleken på bilden – större bilder kan ta längre tid att analysera, så justera den här variabeln efter dina behov.
$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
Följande kommando hämtar SBOM i avbildningen av den inbyggda programvaran. Ersätt varje argument med lämpligt värde för resursgruppen, prenumerationen, arbetsytans namn och ID för inbyggd programvara.
Get-AzFirmwareAnalysisSbomComponent -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
Svagheter
Följande kommando hämtar CVE:er som finns i avbildningen av den inbyggda programvaran. Ersätt varje argument med lämpligt värde för resursgruppen, prenumerationen, arbetsytans namn och ID för inbyggd programvara.
Get-AzFirmwareAnalysisCve -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
Binär härdning
Följande kommando hämtar analysresultat vid binär härdning i din avbildning av inbyggd programvara. Ersätt varje argument med lämpligt värde för resursgruppen, prenumerationen, arbetsytans namn och ID för inbyggd programvara.
Get-AzFirmwareAnalysisBinaryHardening -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
Lösenordshashvärden
Följande kommando hämtar lösenordshashvärden i avbildningen av den inbyggda programvaran. Ersätt varje argument med lämpligt värde för resursgruppen, prenumerationen, arbetsytans namn och ID för inbyggd programvara.
Get-AzFirmwareAnalysisPasswordHash -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
Certifikat
Följande kommando hämtar sårbara kryptocertifikat som hittades i avbildningen av den inbyggda programvaran. Ersätt varje argument med lämpligt värde för resursgruppen, prenumerationen, arbetsytans namn och ID för inbyggd programvara.
Get-AzFirmwareAnalysisCryptoCertificate -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
Nycklar
Följande kommando hämtar sårbara kryptonycklar som hittades i avbildningen av den inbyggda programvaran. Ersätt varje argument med lämpligt värde för resursgruppen, prenumerationen, arbetsytans namn och ID för inbyggd programvara.
Get-AzFirmwareAnalysisCryptoKey -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default