Delen via


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

  • Installeer Azure PowerShell of gebruik Azure Cloud Shell.

  • 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

  1. 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, Vendorof Model.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.

  1. 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
    
  2. 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