Inicio rápido: Carga de imágenes de firmware en Análisis de firmware 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 el análisis de firmware.
Análisis de firmware 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 del análisis de firmware. Para más información, consulte Análisis de firmware para generadores de dispositivos. Para obtener una lista de los sistemas de archivos compatibles, consulte Preguntas más frecuentes sobre el análisis de firmware.
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.
- Instale la extensión de análisis de firmware mediante la ejecución del siguiente comando:
az extension add --name firmwareanalysis
- Instale la extensión de análisis de firmware mediante la ejecución del siguiente comando:
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 al análisis de firmware.
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
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.
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: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
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:
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%
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
:
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%
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 id. 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 id. 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 comando siguiente 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 id. 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 comando siguiente 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 id. 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 los 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 id. de firmware.
az firmwareanalysis firmware crypto-certificate --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID
Claves
El comando siguiente recupera las 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 id. de firmware.
az firmwareanalysis firmware crypto-key --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID