> For the complete documentation index, see [llms.txt](https://wiki.datadike.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.datadike.com/es/pam/administration/integrations/vulnerability-scanners.md).

# Escáneres de vulnerabilidades

Dar a Tenable, a Qualys o a cualquier otro escáner la credencial privilegiada que exige un escaneo autenticado, obtenida de la bóveda en el momento del escaneo en lugar de almacenada dentro del escáne

Un escáner de vulnerabilidades ve muy poco desde fuera de un host. Sin autenticación, sólo puede inferir versiones a partir de lo que la red expone; autenticado, inicia sesión y lee los paquetes instalados, el nivel de parcheo y la configuración real. Esa es la diferencia entre una conjetura plausible y un hallazgo sobre el que se puede actuar, y por eso toda política seria de escaneo pide una credencial privilegiada.

El problema es dónde vive esa credencial. Un escáner configurado de la manera habitual guarda una contraseña de dominio o de root en su propio almacén, copiada de la bóveda, rotada a mano, y legible por quien administre el escáner.

## Qué es esto y cuándo usarlo

En lugar de almacenar la contraseña, el escáner **la recibe en el momento del escaneo**, obtenida de la bóveda por una identidad de aplicación creada aquí.

Lo que eso aporta:

|                          | Credencial almacenada en el escáner                     | Credencial obtenida de la bóveda                                                                                 |
| ------------------------ | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| Dónde vive la contraseña | En el escáner y en la bóveda                            | Sólo en la bóveda                                                                                                |
| Después de una rotación  | El escaneo falla hasta que alguien actualiza el escáner | La siguiente obtención devuelve la contraseña nueva                                                              |
| Quién puede leerla       | Cualquiera con derechos administrativos en el escáner   | Nadie. El valor nunca se muestra                                                                                 |
| Evidencia de uso         | Los registros del propio escáner                        | Cada obtención está en el rastro de auditoría, con la aplicación que llamó, la cuenta, la IP de origen y la hora |

## Cómo llega la credencial al escáner

La solución publica una API y el escáner la llama. **No existe un conector de encaje directo** para Tenable o Qualys, así que la obtención debe conectarse de una de estas dos formas:

| Patrón                          | Cómo funciona                                                                                                             | Cuándo elegirlo                                                             |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| **Obtención previa al escaneo** | Un script corto se ejecuta antes del escaneo, recupera la credencial y se la entrega al escáner o al proceso que lo lanza | La opción habitual. Funciona con cualquier escáner y cualquier planificador |
| **Extensión de la plataforma**  | El mecanismo de script o de plugin del propio escáner llama directamente al endpoint                                      | Donde la plataforma lo admita y usted no quiera un paso externo             |

El script no es trabajo desde cero: la solución sirve un cliente funcional para seis lenguajes en la pestaña **SDKs** de la aplicación, y la recuperación es una sola llamada. Vea [Acceso de aplicación a aplicación](/es/pam/administration/integrations/application-to-application.md) para el endpoint y la firma.

{% hint style="warning" %}
**Prevea trabajo de integración del lado del escáner.** La credencial viene de una API documentada con clientes de referencia, no de una casilla en el escáner. El esfuerzo es pequeño y puntual, pero no es nulo, y pertenece al plan del proyecto.
{% endhint %}

## Antes de empezar

* Los activos a escanear ya registrados, cada uno con la **cuenta** con la que el escaneo se autenticará. Vea [Cuentas gestionadas](/es/pam/administration/accounts/managed-accounts.md).
* La solución alcanzable desde el escáner por **HTTPS**, con un certificado en el que confíe la máquina que llama.
* Las **direcciones IP de origen** de los motores del escáner. No las de su estación, las de las máquinas que realmente harán las llamadas.
* Una decisión de granularidad: **una aplicación por escáner**, para que cada uno tenga su propio secreto, alcance, grupo de IP y rastro de auditoría. Compartir una aplicación entre varias herramientas destruye la atribución para la que usted montó esto.

## Pasos

1. **Cree la aplicación.** En **Configuración del sistema › A2A**, cree una con el nombre del consumidor, por ejemplo `tenable-scanner-prod`.
2. **Acótela a las cuentas a escanear.** Conceda las cuentas de la política de escaneo de ese escáner y nada más. Un escáner que puede obtener toda credencial de la bóveda es un riesgo peor que el que usted eliminó.
3. **Restrinja el grupo de IP** a los motores del escáner, como direcciones o rangos CIDR. **Permite cualquier dirección de forma predeterminada**, lo que anula el sentido de un secreto acotado.
4. **Revele el secreto** y colóquelo en el almacén de secretos del propio host del escáner, o en el del planificador que ejecuta la obtención.
5. **Escriba el paso de obtención**, partiendo del cliente en su lenguaje, en la pestaña **SDKs**.
6. **Ejecute la obtención a mano una vez**, desde el motor que realizará el escaneo, y confirme que devuelve la credencial.
7. **Sólo entonces programe el escaneo.**

{% hint style="danger" %}
Revelar el secreto de nuevo **sustituye el anterior**. Todo motor que conserve el valor antiguo deja de autenticarse, así que trate la rotación como un cambio, y no como una forma de consultar el valor.
{% endhint %}

{% hint style="warning" %}
Una aplicación sólo alcanza cuentas **de su propia organización**. Referirse a un activo de otro inquilino no resuelve nada en el momento del escaneo: la llamada informa que la cuenta no se encontró, y el escaneo cae silenciosamente a resultados no autenticados.
{% endhint %}

## Cómo verificar que funcionó

Un escaneo que termina no es prueba. Un escaneo no autenticado también termina, con muchos menos hallazgos y sin un error que diga por qué.

1. **Compruebe que la API responde.** Desde el propio host del escáner:

   ```bash
   curl -s "https://<su-instancia>/api/health/"
   ```

   Una instancia sana devuelve `"status": true`. Un fallo aquí es de red, de nombre de host o de certificado, no del secreto.
2. **Ejecute el paso de obtención a mano** desde el motor que realizará el escaneo, y no desde una estación en otra dirección.
3. **Escanee un activo y lea el rastro de auditoría.** Confirme que hay una recuperación de credencial registrada para esa cuenta, desde la IP del escáner, a la hora del escaneo. Un escaneo con resultados y sin registro de recuperación no está usando la bóveda, está usando una credencial todavía almacenada en el escáner.
4. **Compare el recuento de hallazgos** con un escaneo no autenticado anterior del mismo host. Los escaneos autenticados reportan bastante más, y la salida de la comprobación declara que la autenticación tuvo éxito. Si las cifras se parecen a las del escaneo antiguo, el inicio de sesión falló y el escáner volvió al modo anterior.
5. **Demuestre que la restricción de IP funciona.** Llame desde otra dirección y confirme el rechazo. Una lista de permitidos que nunca probó es una lista en la que no puede confiar.
6. **Demuestre que la rotación es transparente.** [Rote](/es/pam/administration/accounts/rotation.md) la contraseña de la cuenta y vuelva a escanear sin tocar el escáner. Debe seguir autenticándose.

## Errores comunes

| Síntoma                                                      | Causa                                                                                     | Corrección                                                                                                          |
| ------------------------------------------------------------ | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| La obtención falla con 401                                   | La firma, el reloj o la dirección de origen                                               | Revise el formato de la fecha y el reloj del host, luego confirme que la dirección del motor está en el grupo de IP |
| Funciona desde su estación, pero no desde el escáner         | Sólo su dirección está en el grupo de IP                                                  | Añada las direcciones de los motores del escáner. Para eso está la restricción                                      |
| 404 para un activo que usted ve en la consola                | El activo pertenece a otra organización                                                   | Una aplicación alcanza únicamente su propia organización                                                            |
| 404 para el activo correcto                                  | El nombre no coincide exactamente con el registro                                         | Use el nombre del activo y el de la cuenta exactamente como están registrados                                       |
| Algunos hosts se autentican y otros no                       | Esas cuentas están fuera del alcance de la aplicación                                     | Añádalas, o escanéelas con una aplicación aparte                                                                    |
| Todo funcionaba y todos los escaneos dejaron de autenticarse | El secreto se reveló de nuevo, lo que lo sustituye                                        | Distribuya el secreto nuevo a todos los motores                                                                     |
| El escaneo se autentica pero encuentra casi nada             | La cuenta no tiene privilegio suficiente en el objetivo para una comprobación autenticada | Corrija el privilegio de la cuenta en el activo. La bóveda entregó la credencial correctamente                      |

## Referencia de campos

Qué decidir para cada escáner, antes de crear nada:

| Decisión                    | Orientación                                                                                                                              |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| **Nombre de la aplicación** | Uno por escáner, con el nombre de la herramienta y del entorno, `tenable-scanner-prod`                                                   |
| **Alcance de cuentas**      | Las cuentas de la política de escaneo de ese escáner, y ninguna otra                                                                     |
| **Grupo de IP**             | Todo motor del escáner que vaya a llamar, como direcciones `/32` o el rango CIDR de los motores                                          |
| **Cuenta por activo**       | Una cuenta de escaneo dedicada, con exactamente el privilegio que exigen las comprobaciones, rotada como cualquier credencial gestionada |

La revocación es inmediata: **desactive** la aplicación y el escáner deja de recibir credenciales, sin que nada cambie en el objetivo.

## Páginas relacionadas

* [Acceso de aplicación a aplicación](/es/pam/administration/integrations/application-to-application.md), el endpoint, la firma y los clientes de referencia
* [API](/es/pam/reference/api.md), cómo firmar una solicitud
* [La bóveda de credenciales](/es/pam/administration/accounts/vault.md), donde vive la credencial de escaneo
* [Cuentas gestionadas](/es/pam/administration/accounts/managed-accounts.md), cómo registrar la cuenta con la que se autentica el escaneo
* [Rotar credenciales](/es/pam/administration/accounts/rotation.md), por qué el escáner nunca necesita actualizarse tras una rotación
* [Rastro de auditoría](/es/pam/administration/audit/audit-trail.md), donde queda registrada cada recuperación de credencial
