# Escaneo de malware


El pipeline de las Docker Hardened Images (DHI) escanea en busca de virus y malware como parte
del proceso de construcción. Los resultados del escaneo se incorporan como una atestación
firmada, que puedes recuperar y verificar de forma independiente.

## Cómo funciona

Docker utiliza [ClamAV](https://www.clamav.net/), un motor antivirus de código abierto,
para escanear cada capa de cada imagen. El escaneo se ejecuta automáticamente durante el
proceso de construcción y comprueba todos los archivos en la imagen, incluidos los archivos
dentro de archivos comprimidos, en busca de virus conocidos y firmas de malware.

Los resultados del escaneo se publican como una atestación firmada adjunta a la imagen.
La atestación incluye el informe de escaneo completo de ClamAV, que contiene el número de
archivos escaneados, la versión de la base de datos de firmas de virus y si se detectó
algún archivo infectado.

## Visualizar la atestación de escaneo de malware

Puedes recuperar la atestación de escaneo de malware utilizando la CLI de Docker Scout.

1. Utiliza el comando `docker scout attest get` con el tipo de predicado de escaneo de virus:

   ```console
   $ docker scout attest get \
     --predicate-type https://scout.docker.com/virus/v0.1 \
     --predicate \
     dhi.io/<image>:<tag>
   ```

   > [!NOTE]
   >
   > Si la imagen existe localmente en tu dispositivo, debes anteponer el prefijo
   > `registry://` al nombre de la imagen. Por ejemplo, utiliza `registry://dhi.io/python` en lugar de
   > `dhi.io/python`.

   Por ejemplo:

   ```console
   $ docker scout attest get \
     --predicate-type https://scout.docker.com/virus/v0.1 \
     --predicate \
     dhi.io/python:3.13
   ```

   La salida es un objeto JSON que contiene el escáner utilizado y el informe del escaneo
   codificado en base64:

   ```json
   {
     "scanner": {
       "report": "<base64-encoded ClamAV report>",
       "uri": "clamav/clamav:stable"
     }
   }
   ```

   Al decodificar el informe se muestra la salida completa de ClamAV, finalizando con un
   resumen del escaneo:

   ```text
   ----------- SCAN SUMMARY -----------
   Known viruses: 3627833
   Engine version: 1.5.2
   Scanned directories: 4
   Scanned files: 21
   Infected files: 0
   Data scanned: 44.90 MiB
   Data read: 23.88 MiB (ratio 1.88:1)
   Time: 11.473 sec (0 m 11 s)
   Start Date: 2026:04:12 02:36:19
   End Date:   2026:04:12 02:36:30
   ```

2. Verifica la firma de la atestación. Para asegurarte de que la atestación es auténtica y
   está firmada por Docker, ejecuta:

   ```console
   $ docker scout attest get \
     --predicate-type https://scout.docker.com/virus/v0.1 \
     --verify \
     dhi.io/<image>:<tag> --platform <platform>
   ```

   Si la atestación es válida, Docker Scout confirma la firma y muestra el comando `cosign
   verify` correspondiente.

Para ver otras atestaciones, como SBOM o resultados de pruebas, consulta [Verificar una imagen](/dhi/how-to/verify/).

