Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule wyjaśniono, jak używać programu Azure PowerShell do przekazywania obrazów oprogramowania układowego do analizy oprogramowania układowego.
Analiza oprogramowania układowego to narzędzie, które analizuje obrazy oprogramowania układowego i zapewnia zrozumienie luk w zabezpieczeniach na obrazach oprogramowania układowego.
Wymagania wstępne
W tym przewodniku Szybki start założono, że podstawowa wiedza na temat analizy oprogramowania układowego. Aby uzyskać więcej informacji, zobacz Analiza oprogramowania układowego dla konstruktorów urządzeń. Aby uzyskać listę obsługiwanych systemów plików, zobacz Często zadawane pytania dotyczące analizy oprogramowania układowego.
Przygotowywanie środowiska do programu Azure PowerShell
Zainstaluj program Azure PowerShell lub użyj usługi Azure Cloud Shell.
Zaloguj się do programu Azure PowerShell, uruchamiając polecenie Connect-AzAccount. Pomiń ten krok, jeśli używasz usługi Cloud Shell.
Jeśli jest to pierwsze użycie programu Azure PowerShell analizy oprogramowania układowego, zainstaluj rozszerzenie:
Find-Module -Name Az.FirmwareAnalysis | Install-ModuleDołącz subskrypcję do analizy oprogramowania układowego.
Uruchom polecenie Set-AzContext , aby ustawić subskrypcję do użycia w bieżącej sesji. Wybierz subskrypcję, w której chcesz przekazać obrazy oprogramowania układowego.
Przekazywanie obrazu oprogramowania układowego do obszaru roboczego
Utwórz obraz oprogramowania układowego do przekazania. Wstaw nazwę grupy zasobów, nazwę obszaru roboczego i wszelkie dodatkowe szczegóły dotyczące obrazu oprogramowania układowego, które chcesz uwzględnić w odpowiednich parametrach, takich jak , , , lub
DescriptionFileName.VendorModelVersionNew-AzFirmwareAnalysisFirmware -ResourceGroupName myResourceGroup -WorkspaceName default -Description 'sample description' -FileName file -Vendor vendor -Model model -Version version
Dane wyjściowe tego polecenia zawierają Name właściwość , która jest identyfikatorem oprogramowania układowego.
Zapisz ten identyfikator dla następnego polecenia.
Wygeneruj adres URL sygnatury dostępu współdzielonego, którego użyjesz w następnym kroku, aby wysłać obraz oprogramowania układowego do usługi Azure Storage. Zastąp
sampleFirmwareIDelement identyfikatorem oprogramowania układowego zapisanym w poprzednim kroku. Adres URL sygnatury dostępu współdzielonego można przechowywać w zmiennej, aby ułatwić dostęp do przyszłych poleceń:$sasUrl = New-AzFirmwareAnalysisWorkspaceUploadUrl -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName defaultUżyj poniższego skryptu, aby przekazać obraz oprogramowania układowego do usługi Azure Storage. Zastąp ciąg "
pathToFile" ścieżką do obrazu oprogramowania układowego na komputerze lokalnym. Zawijaj ścieżkę w cudzysłowie.$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
Oto przykładowy przepływ pracy z końca tego, jak można użyć poleceń programu Azure PowerShell do utworzenia i przekazania obrazu oprogramowania układowego. Zastąp wartości zmiennych ustawionych na początku, aby odzwierciedlić środowisko.
$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
Pobieranie wyników analizy oprogramowania układowego
Aby pobrać wyniki analizy oprogramowania układowego, upewnij się, że stan analizy to "Gotowe". Zastąp sampleFirmwareID ciąg identyfikatorem myResourceGroup oprogramowania układowego nazwą grupy zasobów i default nazwą obszaru roboczego:
Get-AzFirmwareAnalysisFirmware -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default
Wyszukaj pole "status", aby wyświetlić "Gotowe", a następnie uruchom odpowiednie polecenia, aby pobrać wyniki analizy oprogramowania układowego.
Jeśli chcesz zautomatyzować proces sprawdzania stanu analizy, możesz użyć następującego skryptu, aby okresowo sprawdzać stan zasobu, dopóki nie osiągnie wartości "Gotowe". Zmienną $timeoutInSeconds można ustawić w zależności od rozmiaru obrazu — analizowanie większych obrazów może trwać dłużej, więc dostosuj tę zmienną zgodnie z potrzebami.
$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
}
Podsumowanie oprogramowania sprzętowego
Następujące polecenie pobiera ogólne podsumowanie wyników analizy oprogramowania układowego. Zastąp każdy argument odpowiednią wartością dla grupy zasobów, subskrypcji, nazwy obszaru roboczego i identyfikatora oprogramowania układowego.
Get-AzFirmwareAnalysisSumary -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default -Type Firmware
SBOM
Następujące polecenie pobiera SBOM na obrazie oprogramowania układowego. Zastąp każdy argument odpowiednią wartością dla grupy zasobów, subskrypcji, nazwy obszaru roboczego i identyfikatora oprogramowania układowego.
Get-AzFirmwareAnalysisSbomComponent -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default | ConvertTo-Json
Wady
Następujące polecenie pobiera cves znalezione na obrazie oprogramowania układowego. Zastąp każdy argument odpowiednią wartością dla grupy zasobów, subskrypcji, nazwy obszaru roboczego i identyfikatora oprogramowania układowego.
Get-AzFirmwareAnalysisCve -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default | ConvertTo-Json
Aby uzyskać podsumowanie CVEs, uruchom następujące polecenie:
Get-AzFirmwareAnalysisSumary -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default -Type CVE
Wzmacnianie zabezpieczeń binarnych
Poniższe polecenie pobiera wyniki analizy dotyczące wzmacniania zabezpieczeń binarnych na obrazie oprogramowania układowego. Zastąp każdy argument odpowiednią wartością dla grupy zasobów, subskrypcji, nazwy obszaru roboczego i identyfikatora oprogramowania układowego.
Get-AzFirmwareAnalysisBinaryHardening -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default | ConvertTo-Json
Aby uzyskać podsumowanie wyników wzmacniania zabezpieczeń binarnych, uruchom następujące polecenie:
Get-AzFirmwareAnalysisSumary -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default -Type BinaryHardening
Skróty haseł
Następujące polecenie pobiera skróty haseł w obrazie oprogramowania układowego. Zastąp każdy argument odpowiednią wartością dla grupy zasobów, subskrypcji, nazwy obszaru roboczego i identyfikatora oprogramowania układowego.
Get-AzFirmwareAnalysisPasswordHash -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default | ConvertTo-Json
Certyfikaty
Następujące polecenie pobiera narażone certyfikaty kryptograficzne, które zostały znalezione na obrazie oprogramowania układowego. Zastąp każdy argument odpowiednią wartością dla grupy zasobów, subskrypcji, nazwy obszaru roboczego i identyfikatora oprogramowania układowego.
Get-AzFirmwareAnalysisCryptoCertificate -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default | ConvertTo-Json
Aby uzyskać podsumowanie certyfikatów, uruchom następujące polecenie:
Get-AzFirmwareAnalysisSumary -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default -Type CryptoCertificate
Klucze
Następujące polecenie pobiera wrażliwe klucze kryptograficzne, które zostały znalezione na obrazie oprogramowania układowego. Zastąp każdy argument odpowiednią wartością dla grupy zasobów, subskrypcji, nazwy obszaru roboczego i identyfikatora oprogramowania układowego.
Get-AzFirmwareAnalysisCryptoKey -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default | ConvertTo-Json
Aby uzyskać podsumowanie kluczy, uruchom następujące polecenie:
Get-AzFirmwareAnalysisSumary -FirmwareId sampleFirmwareID -ResourceGroupName myResourceGroup -WorkspaceName default -Type CryptoKey