Skip to content

PCI DSS Pregunta 31 — Solución antimalware ​

CampoValor
SolicitanteJosé David Álvarez — QSA ControlCase
Pregunta«Evidencia de la solución antimalware desplegada: cobertura, actualización de firmas, análisis periódicos y detección»
DocumentoEVD-Q31, revisión 2
Fecha de esta revisión2026-08-12
Sustituye aRevisión 1, retirada — ver §1
Controles PCIReq 5.2.1, 5.3.1, 5.3.2
ElaboradoGabriel Ureña Chacón — CTO Fintrix Pay

1. Nota de corrección ​

Esta revisión sustituye a la anterior, que declaraba «solución activa con detecciones en vivo verificadas». La solución estaba desplegada, pero no operaba como el documento afirmaba. Se detectó el 2026-08-12 en una revisión interna y se corrigió el mismo día.

Qué se encontró:

ComprobaciónResultado
Reinicios del proceso de análisis421 en 8 días — uno cada 27 minutos
Estado que mostraba la plataforma3/3 Running de forma continua
Duración del análisis programado diario0,001 segundos
Ficheros analizados en ese análisisNinguno

El dato que importa es el tercero. Un análisis de sistema de ficheros que dura una milésima no ha analizado nada. En el registro figuraba, en cada ejecución:

ERROR: Could not connect to clamd on LocalSocket /run/clamav/clamd.sock:
       No such file or directory
Time: 0.001 sec (0 m 0 s)
Infected files: 0

Se declara expresamente que, durante el periodo afectado, el análisis periódico exigido por Req 5.3.2 no se estaba realizando, pese a ejecutarse puntualmente cada día y registrar «Infected files: 0».

1.1 Causa ​

Un desajuste de nombre entre dos componentes del mismo despliegue:

ComponenteRuta del socket
Configuración del servicio de análisis/var/run/clamav/clamd.**ctl**
Comprobación de arranque de la imagen/run/clamav/clamd.**sock**
Cliente que ejecuta el análisis diario/run/clamav/clamd.**sock**

El directorio era el correcto —/var/run enlaza a /run—; la extensión no. De ahí los dos síntomas: el arranque agotaba sus 1800 reintentos de un segundo —exactamente los 30 minutos del ciclo observado— y salía con error, y el cliente del análisis diario no encontraba a quién conectarse.

Un tercer efecto asociado: el componente de actualización de firmas tampoco alcanzaba el socket, por lo que las firmas nuevas solo llegaban al servicio al reiniciar. Funcionaba de rebote gracias al propio fallo.

1.2 Corrección ​

Se unificó el nombre del socket y se dio al componente de actualización acceso al volumen donde reside. Ningún otro cambio.


2. Estado verificado tras la corrección ​

Todas las cifras proceden de comprobaciones sobre el entorno en producción el 2026-08-12, posteriores al cambio.

2.1 Cobertura y versión ​

CampoValor
MotorClamAV 1.4.4
DespliegueUn proceso por nodo, 5 de 5 activos
Reinicios tras la corrección0
Base de firmasVersión 28090, con fecha 2026-08-12 16:34

La fecha de la base de firmas es del mismo día de la verificación: la actualización automática opera y ahora sí notifica al servicio de análisis.

2.2 Análisis periódico — Req 5.3.2 ​

CampoValor
ProgramaciónDiaria, 02:00 UTC
ÁmbitoConfiguración del sistema, directorios de administración, aplicaciones, registros y temporales de cada nodo

Comprobación de que el análisis recorre ficheros de verdad, ejecutada sobre la configuración del sistema de un nodo:

/host/etc: OK

----------- SCAN SUMMARY -----------
Infected files: 0
Time: 20.905 sec (0 m 20 s)

Veinte segundos frente a la milésima anterior. Es la diferencia entre un análisis que ocurre y un registro que dice que ocurrió.

2.3 Capacidad de detección — Req 5.2.1 ​

Verificada con el patrón de prueba estándar de la industria, diseñado específicamente para comprobar que un antivirus detecta sin usar código dañino:

/tmp/eicar-prueba.txt: Eicar-Test-Signature FOUND

----------- SCAN SUMMARY -----------
Infected files: 1

Esta es la comprobación que la revisión anterior declaraba y no respaldaba. Es reproducible por el equipo evaluador en cualquier momento.

3. Sobre por qué no se detectó antes ​

El indicador visible decía que todo funcionaba: los procesos figuraban en estado correcto de forma continua, el análisis se ejecutaba puntualmente cada día y su resultado era «0 ficheros infectados». Ninguna de las tres señales era falsa; las tres eran compatibles con un control que no analizaba nada.

Se ha incorporado a la revisión de controles la comprobación de la duración del análisis, no solo de su resultado. Un análisis de duración cercana a cero es un fallo, aunque informe de cero detecciones.

4. Verificación independiente ​

Quedamos a disposición para repetir cualquiera de estas comprobaciones en sesión compartida con el equipo evaluador.

Firma ​

  • Elaborado: Gabriel Ureña Chacón — CTO Fintrix Pay
  • Fecha: 2026-08-12
  • Revisión: 2

Documentación Confidencial — Solo para uso interno y auditoría PCI DSS