Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule wyjaśniono, jak używać interfejsu wiersza polecenia platformy Azure 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 dla interfejsu wiersza polecenia platformy Azure
Zainstaluj interfejs wiersza polecenia platformy Azure, aby uruchamiać polecenia interfejsu wiersza polecenia lokalnie. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Zaloguj się do interfejsu wiersza polecenia platformy Azure przy użyciu polecenia az login . Wykonaj kroki wyświetlane w terminalu, aby zakończyć proces uwierzytelniania. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
- Zainstaluj rozszerzenie analizy oprogramowania układowego, uruchamiając następujące polecenie:
az extension add --name firmwareanalysis
- Zainstaluj rozszerzenie analizy oprogramowania układowego, uruchamiając następujące polecenie:
Aby znaleźć zainstalowaną wersję i biblioteki zależne, uruchom polecenie az version. Aby przeprowadzić uaktualnienie do najnowszej wersji, uruchom polecenie az upgrade.
Dołącz subskrypcję do analizy oprogramowania układowego.
Wybierz odpowiedni identyfikator subskrypcji, w którym chcesz przekazać obrazy oprogramowania układowego, uruchamiając polecenie az account set.
Przekazywanie obrazu oprogramowania układowego do obszaru roboczego
Wygeneruj identyfikator GUID do użycia jako unikatowy identyfikator oprogramowania układowego. Przykład:
python -c "import uuid; print(uuid.uuid4())"
Użyj danych wyjściowych polecenia jako identyfikatora oprogramowania układowego w kolejnych przykładach
Utwórz obraz oprogramowania układowego do przekazania. Wstaw nazwę grupy zasobów, identyfikator subskrypcji i nazwę obszaru roboczego do odpowiednich parametrów.
az firmwareanalysis firmware create --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id {firmware ID from command above} --vendor {vendor name} --model {model name} --version {version number}
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ń:set resourceGroup=myResourceGroup set subscription=123e4567-e89b-12d3-a456-426614174000 set workspace=default set firmwareID=sampleFirmwareID for /f "tokens=*" %i in ('az firmwareanalysis workspace generate-upload-url --resource-group %resourceGroup% --subscription %subscription% --workspace-name %workspace% --firmware-id %firmwareID% --query "url"') do set sasURL=%iPrzekaż obraz oprogramowania układowego do usługi Azure Storage. Zastąp
pathToFileciąg ścieżką do obrazu oprogramowania układowego na komputerze lokalnym.az storage blob upload -f "pathToFile" --blob-url %sasURL%
Oto przykładowy przepływ pracy, w jaki sposób można użyć tych poleceń do utworzenia i przekazania obrazu oprogramowania układowego. Aby dowiedzieć się więcej na temat używania zmiennych w poleceniach interfejsu wiersza polecenia, odwiedź stronę How to use variables in Azure CLI commands (Jak używać zmiennych w poleceniach interfejsu wiersza polecenia platformy Azure):
set filePath="/path/to/image"
set resourceGroup="myResourceGroup"
set workspace="default"
set fileName="file1"
set vendor="vendor1"
set model="model"
set version="test"
for /f "tokens=*" %i in ('az firmwareanalysis firmware create --resource-group %resourceGroup% --workspace-name %workspace% --file-name %fileName% --vendor %vendor% --model %model% --version %version% --query "name"') do set FWID=%i
for /f "tokens=*" %i in ('az firmwareanalysis workspace generate-upload-url --resource-group %resourceGroup% --workspace-name %workspace% --firmware-id %FWID% --query "url"') do set URL=%i
az storage blob upload -f %filePath% --blob-url %URL%
Pobieranie wyników analizy oprogramowania układowego
Aby pobrać wyniki analizy oprogramowania układowego, upewnij się, że stan analizy to "Gotowe":
az firmwareanalysis firmware show --firmware-id sampleFirmwareID --resource-group myResourceGroup --workspace-name default
Wyszukaj pole "status", aby wyświetlić komunikat "Gotowe", a następnie uruchom następujące polecenia, aby pobrać wyniki analizy oprogramowania układowego.
Jeśli chcesz zautomatyzować proces sprawdzania stanu analizy, możesz użyć az resource wait polecenia .
Polecenie az resource wait ma --timeout parametr , czyli czas w sekundach, w którym analiza zakończy się, jeśli wartość "status" nie osiągnie wartości "Gotowe" w przedziale czasu. Domyślny limit czasu to 3600, czyli jedna godzina. Analizowanie dużych obrazów może trwać dłużej, więc można ustawić limit czasu przy użyciu parametru --timeout zgodnie z potrzebami. Oto przykład użycia az resource wait polecenia z parametrem --timeout w celu zautomatyzowania sprawdzania stanu analizy, przy założeniu, że utworzono już oprogramowanie układowe i zapisano identyfikator oprogramowania układowego w zmiennej o nazwie $FWID:
set resourceGroup="myResourceGroup"
set workspace="default"
set FWID="yourFirmwareID"
for /f "tokens=*" %i in ('az firmwareanalysis firmware show --resource-group %resourceGroup% --workspace-name %workspace% --firmware-id %FWID% --query "id"') do set ID=%i
echo Successfully created a firmware image with the firmware ID of %FWID%, recognized in Azure by this resource ID: %ID%.
for /f "tokens=*" %i in ('az resource wait --ids %ID% --custom "properties.status=='Ready'" --timeout 10800') do set WAIT=%i
for /f "tokens=*" %i in ('az resource show --ids %ID% --query "properties.status"') do set STATUS=%i
echo firmware analysis completed with status: %STATUS%
Po potwierdzeniu, że stan analizy to "Gotowe", możesz uruchomić polecenia, aby ściągnąć wyniki.
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, nazwy obszaru roboczego i identyfikatora oprogramowania układowego.
az firmwareanalysis firmware summary --resource-group myResourceGroup --workspace-name default --firmware-id 123e4567-e89b-12d3-a456-426614174000 --summary-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.
az firmwareanalysis firmware sbom-component --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID
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.
az firmwareanalysis firmware cve --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID
Aby uzyskać podsumowanie CVEs, uruchom następujące polecenie:
az firmwareanalysis firmware summary --resource-group myResourceGroup --workspace-name default --firmware-id 123e4567-e89b-12d3-a456-426614174000 --summary-type CommonVulnerabilitiesAndExposures
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.
az firmwareanalysis firmware binary-hardening --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID
Aby uzyskać podsumowanie wyników wzmacniania zabezpieczeń binarnych, uruchom następujące polecenie:
az firmwareanalysis firmware summary --resource-group myResourceGroup --workspace-name default --firmware-id 123e4567-e89b-12d3-a456-426614174000 --summary-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.
az firmwareanalysis firmware password-hash --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID
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.
az firmwareanalysis firmware crypto-certificate --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID
Aby uzyskać podsumowanie certyfikatów, uruchom następujące polecenie:
az firmwareanalysis firmware summary --resource-group myResourceGroup --workspace-name default --firmware-id 123e4567-e89b-12d3-a456-426614174000 --summary-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.
az firmwareanalysis firmware crypto-key --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID
Aby uzyskać podsumowanie kluczy, uruchom następujące polecenie:
az firmwareanalysis firmware summary --resource-group myResourceGroup --workspace-name default --firmware-id 123e4567-e89b-12d3-a456-426614174000 --summary-type CryptoKey