Compartir a través de


Inicio rápido: carga de imágenes de firmware en Análisis de firmware de Defender para IoT mediante la CLI de Azure

En este artículo se explica cómo usar la CLI de Azure para cargar imágenes de firmware en Análisis de firmware de Defender para IoT.

Análisis de firmware de Defender para IoT es una herramienta que analiza las imágenes de firmware y proporciona una comprensión de las vulnerabilidades de seguridad en las imágenes de firmware.

Requisitos previos

En esta guía de inicio rápido se da por supuesto un conocimiento básico de Análisis de firmware de Defender para IoT. Para más información, consulte el Análisis de firmware para generadores de dispositivos. Para obtener una lista de los sistemas de archivos compatibles, consulte Preguntas más frecuentes sobre Análisis de firmware de Defender para IoT.

Preparar el entorno para la CLI de Azure

  • Instale la CLI de Azure para ejecutar comandos de la CLI localmente. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.

  • Inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para finalizar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.

  • En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.

    • Ejecute el siguiente comando para instalar la extensión Análisis de firmware de Defender para IoT:
      az extension add --name firmwareanalysis
      
  • Para encontrar la versión y las bibliotecas dependientes que están instaladas, ejecute el comando az version. Para actualizar a la versión más reciente, ejecute el comando az upgrade.

  • Incorpore la suscripción a Análisis de firmware de Defender para IoT.

  • Seleccione el identificador de suscripción adecuado en el que desea cargar las imágenes de firmware ejecutando el comando az account set.

Carga de una imagen de firmware en el área de trabajo

  1. Cree una imagen de firmware para cargar. Inserte el nombre del grupo de recursos, el identificador de suscripción y el nombre del área de trabajo en sus respectivos parámetros.

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

La salida de este comando incluye una propiedad name, que es el identificador de firmware. Guarde este identificador para el siguiente comando.

  1. Genere una dirección URL de SAS, que usará en el siguiente paso para enviar la imagen de firmware a Azure Storage. Reemplace sampleFirmwareID por el identificador de firmware que guardó del paso anterior. Puede almacenar la dirección URL de SAS en una variable para facilitar el acceso a los comandos futuros:

    $sasURL = $(az firmwareanalysis workspace generate-upload-url --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID --query "url")
    
  2. Cargue la imagen de firmware en Azure Storage. Reemplace pathToFile por la ruta de acceso a la imagen de firmware en el equipo local.

    az storage blob upload -f pathToFile --blob-url $sasURL
    

Este es un flujo de trabajo de ejemplo de cómo puede usar estos comandos para crear y cargar una imagen de firmware. Para más información sobre el uso de variables en comandos de la CLI, visite Uso de variables en comandos de la CLI de Azure:

$filePath='/path/to/image'
$resourceGroup='myResourceGroup'
$workspace='default'

$fileName='file1'
$vendor='vendor1'
$model='model'
$version='test'

$FWID=$(az firmwareanalysis firmware create --resource-group $resourceGroup --workspace-name $workspace --file-name $fileName --vendor $vendor --model $model --version $version --query "name")

$URL=$(az firmwareanalysis workspace generate-upload-url --resource-group $resourceGroup --workspace-name $workspace --firmware-id $FWID --query "url")

$OUTPUT=(az storage blob upload -f $filePath --blob-url $URL)

Recuperación de los resultados de Análisis de firmware

Para recuperar los resultados de Análisis de firmware, debe asegurarse de que el estado del análisis es "Listo":

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

Busque el campo "estado" para mostrar "Listo" y ejecute los siguientes comandos para recuperar los resultados de Análisis de firmware.

Si desea automatizar el proceso de comprobación del estado del análisis, puede usar el comando az resource wait.

El comando az resource wait tiene un parámetro --timeout, que es el tiempo en segundos que el análisis terminará si "estado" no alcanza "Listo" dentro del marco de tiempo de espera. El tiempo de espera predeterminado es 3600, que es una hora. Las imágenes grandes pueden tardar más tiempo en analizarse, por lo que puede establecer el tiempo de espera mediante el parámetro --timeout según sus necesidades. Este es un ejemplo de cómo puede usar el comando az resource wait con el parámetro --timeout para automatizar la comprobación del estado del análisis, suponiendo que ya ha creado un firmware y almacenado el identificador de firmware en una variable denominada $FWID:

$ID=$(az firmwareanalysis firmware show --resource-group $resourceGroup --workspace-name $workspace --firmware-id $FWID --query "id")

Write-Host (‘Successfully created a firmware image with the firmware ID of ‘ + $FWID + ‘, recognized in Azure by this resource ID: ‘ + $ID + ‘.’)

$WAIT=$(az resource wait --ids $ID --custom "properties.status=='Ready'" --timeout 10800) 

$STATUS=$(az resource show --ids $ID --query 'properties.status')

Write-Host ('Firmware analysis completed with status: ' + $STATUS)

Una vez que haya confirmado que el estado del análisis es "Listo", puede ejecutar comandos para extraer los resultados.

SBOM

El siguiente comando recupera el SBOM en la imagen de firmware. Reemplace cada argumento por el valor adecuado para el grupo de recursos, la suscripción, el nombre del área de trabajo y el identificador de firmware.

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

Puntos débiles

El siguiente comando recupera los CVE que se encuentran en la imagen de firmware. Reemplace cada argumento por el valor adecuado para el grupo de recursos, la suscripción, el nombre del área de trabajo y el identificador de firmware.

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

Protección binaria

El siguiente comando recupera los resultados del análisis sobre la protección binaria en la imagen de firmware. Reemplace cada argumento por el valor adecuado para el grupo de recursos, la suscripción, el nombre del área de trabajo y el identificador de firmware.

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

Valores hash de contraseñas

El siguiente comando recupera los hash de contraseña en la imagen de firmware. Reemplace cada argumento por el valor adecuado para el grupo de recursos, la suscripción, el nombre del área de trabajo y el identificador de firmware.

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

Certificados

El siguiente comando recupera certificados criptográficos vulnerables que se encontraron en la imagen de firmware. Reemplace cada argumento por el valor adecuado para el grupo de recursos, la suscripción, el nombre del área de trabajo y el identificador de firmware.

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

Claves

El siguiente comando recupera claves criptográficas vulnerables que se encontraron en la imagen de firmware. Reemplace cada argumento por el valor adecuado para el grupo de recursos, la suscripción, el nombre del área de trabajo y el identificador de firmware.

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