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
Connectez-vous à Azure PowerShell en exécutant la commande Connect-AzAccount. Ignorez cette étape si vous utilisez Cloud Shell.
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
Intégrez votre abonnement à l'analyse du firmware.
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
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
ouVersion
.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.
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
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