Quickstart: Firmware-installatiekopieën uploaden naar Defender for IoT Firmware Analysis met behulp van Azure PowerShell
In dit artikel wordt uitgelegd hoe u Azure PowerShell gebruikt om firmware-installatiekopieën te uploaden naar Defender for IoT Firmware Analysis.
Defender for IoT Firmware Analysis is een hulpprogramma dat firmwareafbeeldingen analyseert en inzicht biedt in beveiligingsproblemen in de firmware-installatiekopieën.
Vereisten
In deze quickstart wordt ervan uitgegaan dat u basiskennis hebt van Defender for IoT Firmware Analysis. Zie Firmwareanalyse voor apparaatbouwers voor meer informatie. Zie Veelgestelde vragen over Defender for IoT Firmware Analysis voor een lijst met ondersteunde bestandssystemen.
Uw omgeving voorbereiden voor Azure PowerShell
Meld u aan bij Azure PowerShell door de opdracht Verbinding maken-AzAccount uit te voeren. Sla deze stap over als u Cloud Shell gebruikt.
Als dit uw eerste gebruik is van De Azure PowerShell van Defender for IoT Firmware Analysis, installeert u de extensie:
Find-Module -Name Az.FirmwareAnalysis | Install-Module
Onboarding van uw abonnement op Defender for IoT Firmware Analysis.
Voer Set-AzContext uit om uw abonnement in te stellen voor gebruik in de huidige sessie. Selecteer het abonnement waar u uw firmware-installatiekopieën wilt uploaden.
Een firmware-installatiekopieën uploaden naar de werkruimte
Maak een firmware-installatiekopieën die moeten worden geüpload. Voeg de naam van uw resourcegroep, werkruimtenaam en eventuele aanvullende informatie over de firmware-installatiekopieën in die u wilt opnemen in de respectieve parameters, zoals een
Description
,FileName
,Vendor
ofModel
.Version
New-AzFirmwareAnalysisFirmware -ResourceGroupName myResourceGroup -WorkspaceName default -Description 'sample description' -FileName file -Vendor vendor -Model model -Version version
De uitvoer van deze opdracht bevat een Name
eigenschap, die uw firmware-id is. Sla deze id op voor de volgende opdracht.
Genereer een SAS-URL die u in de volgende stap gaat gebruiken om uw firmware-installatiekopieën naar Azure Storage te verzenden. Vervang door
sampleFirmwareID
de firmware-id die u in de vorige stap hebt opgeslagen. U kunt de SAS-URL opslaan in een variabele voor eenvoudigere toegang voor toekomstige opdrachten:$sasUrl = New-AzFirmwareAnalysisWorkspaceUploadUrl -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
Gebruik het volgende script om uw firmware-installatiekopieën te uploaden naar Azure Storage. Vervang '
pathToFile
' door het pad naar uw firmware-installatiekopieën op uw lokale computer. Plaats het pad tussen aanhalingstekens.$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
Hier volgt een voorbeeldwerkstroom van end-to-end hoe u de Azure PowerShell-opdrachten kunt gebruiken om een firmware-installatiekopieën te maken en te uploaden. Vervang de waarden voor de variabelen die aan het begin zijn ingesteld om uw omgeving weer te geven.
$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
Firmwareanalyseresultaten ophalen
Als u de resultaten van de firmwareanalyse wilt ophalen, moet u ervoor zorgen dat de status van de analyse gereed is. Vervang sampleFirmwareID
door uw firmware-id, myResourceGroup
door de naam van de resourcegroep en default
door de naam van uw werkruimte:
Get-AzFirmwareAnalysisFirmware -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
Zoek naar het veld Status om 'Gereed' weer te geven en voer vervolgens de respectieve opdrachten uit om de resultaten van de firmwareanalyse op te halen.
Als u het proces voor het controleren van de status van uw analyse wilt automatiseren, kunt u het volgende script gebruiken om de resourcestatus periodiek te controleren totdat deze gereed is. U kunt de $timeoutInSeconds
variabele instellen, afhankelijk van de grootte van uw afbeelding. Het kan langer duren voordat grotere afbeeldingen worden geanalyseerd, dus pas deze variabele aan op basis van uw behoeften.
$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
Met de volgende opdracht wordt de SBOM opgehaald in de firmware-installatiekopieën. Vervang elk argument door de juiste waarde voor uw resourcegroep, abonnement, werkruimtenaam en firmware-id.
Get-AzFirmwareAnalysisSbomComponent -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
Zwakke punten
Met de volgende opdracht worden CV's opgehaald die zijn gevonden in de firmware-installatiekopieën. Vervang elk argument door de juiste waarde voor uw resourcegroep, abonnement, werkruimtenaam en firmware-id.
Get-AzFirmwareAnalysisCve -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
Binaire beveiliging
Met de volgende opdracht worden analyseresultaten opgehaald over binaire beveiliging in uw firmware-installatiekopieën. Vervang elk argument door de juiste waarde voor uw resourcegroep, abonnement, werkruimtenaam en firmware-id.
Get-AzFirmwareAnalysisBinaryHardening -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
Wachtwoordhashes
Met de volgende opdracht worden wachtwoordhashes opgehaald in de firmware-installatiekopieën. Vervang elk argument door de juiste waarde voor uw resourcegroep, abonnement, werkruimtenaam en firmware-id.
Get-AzFirmwareAnalysisPasswordHash -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
Certificaten
Met de volgende opdracht worden kwetsbare cryptocertificaten opgehaald die zijn gevonden in uw firmware-installatiekopieën. Vervang elk argument door de juiste waarde voor uw resourcegroep, abonnement, werkruimtenaam en firmware-id.
Get-AzFirmwareAnalysisCryptoCertificate -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
Toetsen
Met de volgende opdracht worden kwetsbare cryptosleutels opgehaald die zijn gevonden in uw firmware-installatiekopieën. Vervang elk argument door de juiste waarde voor uw resourcegroep, abonnement, werkruimtenaam en firmware-id.
Get-AzFirmwareAnalysisCryptoKey -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default