Guia de início rápido: carregar imagens de firmware para a Análise de Firmware usando a CLI do Azure
Este artigo explica como usar a CLI do Azure para carregar imagens de firmware para análise de firmware.
A análise de firmware é uma ferramenta que analisa imagens de firmware e fornece uma compreensão das vulnerabilidades de segurança nas imagens de firmware.
Pré-requisitos
Este guia de início rápido pressupõe uma compreensão básica da análise de firmware. Para obter mais informações, consulte Análise de firmware para construtores de dispositivos. Para obter uma lista dos sistemas de ficheiros suportados, consulte Perguntas mais frequentes sobre a análise de firmware.
Prepare o seu ambiente para o CLI do Azure
Instale a CLI do Azure para executar comandos da CLI localmente. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Entre na CLI do Azure usando o comando az login . Siga os passos apresentados no seu terminal para concluir o processo de autenticação. Para outras opções de entrada, consulte Entrar com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.
- Instale a extensão de análise de firmware executando o seguinte comando:
az extension add --name firmwareanalysis
- Instale a extensão de análise de firmware executando o seguinte comando:
Para localizar a versão e as bibliotecas dependentes instaladas, execute o comando az version. Para atualizar para a versão mais recente, execute o comando az upgrade.
Integre a sua subscrição à análise de firmware.
Selecione o ID de assinatura apropriado onde você gostaria de carregar suas imagens de firmware executando o comando az account set.
Carregar uma imagem de firmware para a área de trabalho
Crie uma imagem de firmware para ser carregada. Insira o nome do grupo de recursos, a ID da assinatura e o nome do espaço de trabalho nos respetivos parâmetros.
az firmwareanalysis firmware create --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default
A saída deste comando inclui uma name
propriedade, que é o seu ID de firmware. Salve essa ID para o próximo comando.
Gere uma URL SAS, que você usará na próxima etapa para enviar sua imagem de firmware para o Armazenamento do Azure. Substitua
sampleFirmwareID
pelo ID de firmware que você salvou da etapa anterior. Você pode armazenar a URL SAS em uma variável para facilitar o acesso a comandos futuros: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=%i
Carregue sua imagem de firmware no Armazenamento do Azure. Substitua
pathToFile
pelo caminho para a imagem do firmware na máquina local.az storage blob upload -f "pathToFile" --blob-url %sasURL%
Aqui está um exemplo de fluxo de trabalho de como você pode usar esses comandos para criar e carregar uma imagem de firmware. Para saber mais sobre como usar variáveis em comandos da CLI, visite Como usar variáveis nos comandos da CLI do 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%
Recuperar resultados da análise de firmware
Para recuperar os resultados da análise de firmware, você deve certificar-se de que o status da análise é "Pronto":
az firmwareanalysis firmware show --firmware-id sampleFirmwareID --resource-group myResourceGroup --workspace-name default
Procure o campo "status" para exibir "Ready" e execute os seguintes comandos para recuperar os resultados da análise de firmware.
Se você quiser automatizar o processo de verificação do status da sua análise, você pode usar o az resource wait
comando.
O az resource wait
comando tem um --timeout
parâmetro, que é o tempo em segundos que a análise terminará se "status" não atingir "Ready" dentro do período de tempo limite. O tempo limite padrão é 3600, que é de uma hora. Imagens grandes podem levar mais tempo para serem analisadas, então você pode definir o tempo limite usando o parâmetro de --timeout
acordo com suas necessidades. Aqui está um exemplo de como você pode usar o az resource wait
comando com o parâmetro para automatizar a --timeout
verificação do status da sua análise, supondo que você já tenha criado um firmware e armazenado o ID do firmware em uma variável chamada $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%
Depois de confirmar que o status da análise é "Pronto", você pode executar comandos para extrair os resultados.
$ 80 M
O comando a seguir recupera a SBOM na imagem do firmware. Substitua cada argumento pelo valor apropriado para seu grupo de recursos, assinatura, nome do espaço de trabalho e ID de firmware.
az firmwareanalysis firmware sbom-component --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID
Desvantagens
O comando a seguir recupera CVEs encontrados na imagem do firmware. Substitua cada argumento pelo valor apropriado para seu grupo de recursos, assinatura, nome do espaço de trabalho e ID de firmware.
az firmwareanalysis firmware cve --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID
Endurecimento binário
O comando a seguir recupera os resultados da análise sobre proteção binária na imagem do firmware. Substitua cada argumento pelo valor apropriado para seu grupo de recursos, assinatura, nome do espaço de trabalho e ID de firmware.
az firmwareanalysis firmware binary-hardening --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID
Hashes de palavras-passe
O comando a seguir recupera hashes de senha na imagem do firmware. Substitua cada argumento pelo valor apropriado para seu grupo de recursos, assinatura, nome do espaço de trabalho e ID de firmware.
az firmwareanalysis firmware password-hash --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID
Certificados
O comando a seguir recupera certificados de criptografia vulneráveis que foram encontrados na imagem do firmware. Substitua cada argumento pelo valor apropriado para seu grupo de recursos, assinatura, nome do espaço de trabalho e ID de firmware.
az firmwareanalysis firmware crypto-certificate --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID
Chaves
O comando a seguir recupera chaves de criptografia vulneráveis que foram encontradas na imagem do firmware. Substitua cada argumento pelo valor apropriado para seu grupo de recursos, assinatura, nome do espaço de trabalho e ID de firmware.
az firmwareanalysis firmware crypto-key --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID