Partager via


Démarrage rapide : télécharger des images de micrologiciel pour l'analyse du micrologiciel à l'aide d'Azure PowerShell

Cet article explique comment utiliser Azure PowerShell pour télécharger des images de micrologiciel vers l’analyse du micrologiciel.

L'analyse du micrologiciel est un outil qui analyse les images du micrologiciel et fournit une compréhension des vulnérabilités de sécurité dans les images du micrologiciel.

Prérequis

Ce démarrage rapide suppose une compréhension de base de l’analyse du micrologiciel. Pour obtenir plus d’informations, consultez Analyse de microprogramme pour les fabricants d’appareils. Pour obtenir la liste des systèmes de fichiers pris en charge, consultez la section Questions fréquemment posées sur l'analyse du micrologiciel.

Préparer votre environnement pour Azure PowerShell

  1. Installez Azure PowerShell ou Utilisez Azure Cloud Shell.

  2. Connectez-vous à Azure PowerShell en exécutant la commande Connect-AzAccount. Ignorez cette étape si vous utilisez Cloud Shell.

  3. S'il s'agit de votre première utilisation d'Azure PowerShell d'analyse du micrologiciel, installez l'extension :

    Find-Module -Name Az.FirmwareAnalysis | Install-Module
    
  4. Intégrez votre abonnement à l'analyse du firmware.

  5. Exécutez Set-AzContext pour définir votre abonnement à utiliser dans la session active. Sélectionnez l’abonnement où vous voulez charger vos images de microprogramme.

Charger une image de microprogramme dans l’espace de travail

  1. Créez une image de microprogramme à charger. Insérez le nom de votre groupe de ressources, le nom de votre espace de travail et tous les autres détails sur votre image de microprogramme que vous voulez inclure dans les paramètres respectifs, comme Description, FileName, Vendor, Model ou Version.

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

La sortie de cette commande inclut une propriété Name, qui est votre ID de microprogramme. Enregistrez cet ID pour la commande suivante.

  1. Générez une URL SAP que vous allez utiliser à l’étape suivante pour envoyer votre image de microprogramme à Stockage Azure. Remplacez sampleFirmwareID par l’ID de microprogramme que vous avez enregistré à l’étape précédente. Vous pouvez stocker l’URL SAP dans une variable pour faciliter l’accès aux commandes futures :

    $sasUrl = New-AzFirmwareAnalysisWorkspaceUploadUrl -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
    
  2. Utilisez le script suivant pour charger votre image de microprogramme dans Stockage Azure. Remplacez « pathToFile » par le chemin d’accès à votre image de microprogramme sur votre machine locale. Placez le chemin d’accès entre guillemets.

    $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
    

Voici un exemple de workflow de bout en bout de la façon dont vous pouvez utiliser les commandes Azure PowerShell pour créer et charger une image de microprogramme. Remplacez les valeurs des variables définies au début pour refléter votre environnement.

$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

Récupérer les résultats de l’analyse du microprogramme

Pour récupérer les résultats de l’analyse du microprogramme, vous devez vérifier que l’état de l’analyse est « Prêt ». Remplacez sampleFirmwareID par votre ID de microprogramme, myResourceGroup par le nom de votre groupe de ressources et default par le nom de votre espace de travail :

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

Vérifiez que le champ « État » indique « Prêt », puis exécutez les commandes respectives pour récupérer vos résultats d’analyse du microprogramme.

Si vous voulez automatiser le processus de vérification de l’état de votre analyse, vous pouvez utiliser le script suivant pour vérifier périodiquement l’état de la ressource jusqu’à ce qu’il soit « Prêt ». Vous pouvez définir la variable $timeoutInSeconds en fonction de la taille de votre image : l’analyse des images de plus grande taille peut prendre plus de temps. Vous pouvez donc ajuster cette variable en fonction de vos besoins.

$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
}

$80M

La commande suivante récupère la SBOM dans votre image de microprogramme. Remplacez chaque argument par la valeur appropriée pour votre groupe de ressources, votre abonnement, le nom de votre espace de travail et l’ID de votre microprogramme.

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

Faiblesses

La commande suivante récupère les vulnérabilités et menaces courantes (CVE) trouvées dans votre image de microprogramme. Remplacez chaque argument par la valeur appropriée pour votre groupe de ressources, votre abonnement, le nom de votre espace de travail et l’ID de votre microprogramme.

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

Renforcement binaire

La commande suivante récupère les résultats de l’analyse sur le renforcement binaire dans votre image de microprogramme. Remplacez chaque argument par la valeur appropriée pour votre groupe de ressources, votre abonnement, le nom de votre espace de travail et l’ID de votre microprogramme.

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

Hachages de mot de passe

La commande suivante récupère les hachages de mot de passe dans votre image de microprogramme. Remplacez chaque argument par la valeur appropriée pour votre groupe de ressources, votre abonnement, le nom de votre espace de travail et l’ID de votre microprogramme.

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

Certificats

La commande suivante récupère les certificats de chiffrement vulnérables qui ont été trouvés dans votre image de microprogramme. Remplacez chaque argument par la valeur appropriée pour votre groupe de ressources, votre abonnement, le nom de votre espace de travail et l’ID de votre microprogramme.

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

Clés

La commande suivante récupère les clés de chiffrement vulnérables qui ont été trouvées dans votre image de microprogramme. Remplacez chaque argument par la valeur appropriée pour votre groupe de ressources, votre abonnement, le nom de votre espace de travail et l’ID de votre microprogramme.

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