Compartilhar via


Início Rápido: Carregar imagens de firmware na Análise de Firmware usando a CLI do Azure

Este artigo explica como usar a CLI do Azure para carregar imagens de firmware na Análise de Firmware.

Análise de Firmware é uma ferramenta que analisa imagens de firmware e fornece um entendimento das vulnerabilidades de segurança nas imagens de firmware.

Pré-requisitos

Este início rápido pressupõe uma compreensão básica da análise de Firmware. Para obter mais informações, confira nossas Análise de firmware para criadores de dispositivos. Para obter uma lista dos sistemas de arquivos com suporte, confira Perguntas frequentes sobre a Análise de Firmware.

Preparar seu ambiente para a CLI do Azure

  • Instale a CLI do Azure para executar os comandos da CLI localmente. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para saber mais, confira Como executar a CLI do Azure em um contêiner do Docker.

  • Entre na CLI do Azure usando o comando az login. Siga as etapas exibidas no terminal para concluir o processo de autenticação. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.

  • Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.

    • Instale a extensão Análise de Firmware executando o seguinte comando:
      az extension add --name firmwareanalysis
      
  • 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 sua assinatura à Análise de Firmware.

  • Selecione a ID da assinatura apropriada em que você quer carregar suas imagens de firmware executando o comando az account set.

Carregue uma imagem de firmware no workspace

  1. Crie uma imagem de firmware a ser carregada. Insira o nome do grupo de recursos, a ID da assinatura e o nome do espaço de trabalho nos respectivos parâmetros.

    az firmwareanalysis firmware create --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default
    

A saída desse comando inclui uma propriedade name, que é sua ID do firmware. Salve essa ID para o próximo comando.

  1. Gere uma URL SAS, que você usará na próxima etapa para enviar sua imagem de firmware no Armazenamento do Azure. Substitua sampleFirmwareID pela ID do 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
    
  2. Carregue sua imagem de firmware no Armazenamento do Azure. Substitua pathToFile pelo caminho na sua imagem de firmware no seu computador 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 as variáveis nos 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 os resultados da análise de firmware

Para recuperar os resultados da análise de firmware, verifique se o status da análise está como "Pronto".

az firmwareanalysis firmware show --firmware-id sampleFirmwareID --resource-group myResourceGroup --workspace-name default

Procure o campo "status" para exibir "Pronto" e execute os comandos a seguir para recuperar os resultados da análise de firmware.

Se você quiser automatizar o processo de verificação do status da sua análise, poderá usar o comando az resource wait.

O comando az resource wait possui um parâmetro --timeout, que é o tempo em segundos que a análise terminará se o "status" não atingir "Pronto" no período de tempo limite. O tempo limite padrão é 3600, que é uma hora. As imagens grandes podem levar mais tempo para serem analisadas, para que você possa definir o tempo limite usando o parâmetro --timeout de acordo com suas necessidades. Aqui está um exemplo de como você pode usar o comando az resource wait com o parâmetro --timeout para automatizar a verificação do status da sua análise, supondo que você já tenha criado um firmware e armazenado a 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 está "Pronto", você pode executar os comandos para efetuar o pull dos resultados.

SBOM

O comando a seguir recupera o SBOM na sua imagem de firmware. Substitua cada argumento pelo valor apropriado no seu grupo de recursos, assinatura, nome do espaço de trabalho e ID do firmware.

az firmwareanalysis firmware sbom-component --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID

Pontos fracos

O comando a seguir recupera os CVEs encontrados na sua imagem de firmware. Substitua cada argumento pelo valor apropriado no seu grupo de recursos, assinatura, nome do espaço de trabalho e ID do firmware.

az firmwareanalysis firmware cve --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID

Proteção binária

O comando a seguir recupera os resultados da análise sobre a proteção binária na sua imagem de firmware. Substitua cada argumento pelo valor apropriado no seu grupo de recursos, assinatura, nome do espaço de trabalho e ID do firmware.

az firmwareanalysis firmware binary-hardening --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID

Hashes de senha

O comando a seguir recupera os códigos hash da senha na sua imagem de firmware. Substitua cada argumento pelo valor apropriado no seu grupo de recursos, assinatura, nome do espaço de trabalho e ID do 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 os certificados criptográficos vulneráveis que foram encontrados na imagem do firmware. Substitua cada argumento pelo valor apropriado no seu grupo de recursos, assinatura, nome do espaço de trabalho e ID do firmware.

az firmwareanalysis firmware crypto-certificate --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID

Teclas

O comando a seguir recupera as chaves criptográficas vulneráveis que foram encontradas na sua imagem de firmware. Substitua cada argumento pelo valor apropriado no seu grupo de recursos, assinatura, nome do espaço de trabalho e ID do firmware.

az firmwareanalysis firmware crypto-key --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID