Informe final

Informe técnico · 14 septiembre 2026

A&S Digital A&S Digital · auditoría técnica

Informe de auditoría de seguridad de PrestaShop y VPS

Estado: final
Inicio real: 2026-09-14 11:27:08 CEST (UTC+02:00)
Fin real: 2026-09-14 12:44:35 CEST (UTC+02:00)
Equipo de ejecución: PASCAL (Windows, sesión local de VS Code)
Destino remoto autorizado: centos@vps-90041654.vps.ovh.net
Directorio local verificado: C:\Git\audit-14-09-2026

Hallazgos11documentados
ModalidadSolo lecturasin remediación
EstadoFinalcorte 14 sep 2026

1. Resumen ejecutivo

La revisión técnica de solo lectura se completó mediante una única sesión SSH interactiva con el usuario no elevado centos. No se confirmó ejecución maliciosa activa en el periodo real examinado: estado del sistema y archivos el 14 de septiembre de 2026, journal disponible desde el arranque del 13 de septiembre a las 21:46:47 CEST y registros históricos parciales descritos en la cobertura. Esta conclusión tiene confianza limitada porque no se pudo fechar la restauración ni revisar los logs HTTP, de autenticación rotados, de auditoría o la base de datos.

La revisión confirma una plataforma sin soporte (CentOS 7, PHP 5.4, MariaDB 5.5, phpMyAdmin 4.4 y PrestaShop 1.6.0.14), permisos 0777 sobre gran parte de la aplicación, un archivo phpinfo.php funcional dentro de la raíz pública y una consola de instalación de phpMyAdmin a la que Apache concede acceso general. MariaDB escucha en todas las interfaces, aunque su exposición pública no se comprobó. El contraste con los changelogs RPM permitió descartar seis avisos seleccionados para las revisiones instaladas; la cadena de ejecución remota comunicada por PrestaShop en 2022 permanece posible, porque la versión está en rango y conserva el soporte de caché Smarty en MySQL, pero no se demostró la inyección SQL previa requerida.

El riesgo de mayor impacto observado es una ruta directa de escalada y persistencia: /etc/crontab ejecuta seis scripts como root; cinco pertenecen a centos con modo 0777 y el sexto se encuentra en un directorio de la aplicación controlado por Apache y con modo 0777. La sustitución de cualquiera de esos scripts permitiría que código de una identidad menos privilegiada se ejecutara como root en el siguiente intervalo programado. Esto confirma una debilidad crítica, pero no que los scripts actuales sean maliciosos ni que esa ruta haya sido explotada.

También permanecen bajo la raíz pública dos conectores de migración con acceso a datos y claves. MigrationPro 4.0.0, replicado en varios directorios, autentica mediante un token literal estático y ofrece lectura de archivos, ejecución de SQL aportado por la petición y devolución de claves internas. ETS Migrate Connector 1.1.0 aplica controles adicionales, pero tras un token generado con longitud predeterminada de 10 caracteres permite exportar tablas y _COOKIE_KEY_. Las capacidades están confirmadas por lectura estática; no se invocaron los endpoints, no se revelaron tokens y su accesibilidad externa es inferida, no demostrada.

No se observaron archivos ejecutables o de configuración con mtime dentro de las últimas 72 horas en una búsqueda del árbol web limitada a 20 segundos que finalizó dentro del límite. Doce de catorce archivos críticos seleccionados coinciden byte a byte con la etiqueta oficial de PrestaShop 1.6.0.14; las dos diferencias quedaron aisladas como cambios funcionales mínimos sin primitivas peligrosas observadas. La revisión de persistencia no identificó unidades systemd locales inesperadas ni comandos añadidos a rc.local.

El journal del arranque confirma que la contraseña de centos se cambió el 13 de septiembre, pero también muestra 2.211 fallos de contraseña desde 134 orígenes y 403 autenticaciones aceptadas para tres cuentas hasta el corte. Cinco corresponden a esta auditoría; las restantes no pudieron atribuirse y siguen siendo compatibles tanto con integraciones legítimas como con accesos no autorizados. Los logs HTTP, de auditoría y de autenticación rotados no son legibles sin elevación, por lo que no existe cobertura suficiente para confirmar o descartar el uso de los conectores sensibles.

No se aplicaron medidas de contención, limpieza ni remediación durante el encargo.

2. Contexto, alcance y exclusiones

Antecedentes comunicados por el operador

  • La tienda PrestaShop sufrió un incidente de seguridad.
  • PrestaShop fue restaurado desde el último backup disponible.
  • Se rotaron las contraseñas de PrestaShop y del VPS.

Estos antecedentes todavía no han sido verificados técnicamente. No consta que el sistema operativo se reinstalara, que el backup precediera al compromiso, que se corrigiera el punto de entrada ni que se rotaran otras credenciales, claves o sesiones.

Alcance

  • VPS y aplicación PrestaShop identificables con el usuario SSH autorizado.
  • Consultas de solo lectura y bajo impacto.
  • Documentación y evidencia mínima redactada almacenadas exclusivamente en el repositorio local.

Exclusiones

  • Base de datos, credenciales y volcados.
  • Explotación, escaneo activo, fuerza bruta, fuzzing y pruebas de carga.
  • Ejecución de PHP, módulos, temas, consolas o scripts hallados en el VPS.
  • Toda modificación remota, instalación, elevación, reinicio o remediación.

3. Inventario y cronología

  • Reloj observado: 2026-09-14 11:30:18 CEST (UTC+02:00), zona Europe/Madrid, NTP habilitado y sincronizado.
  • Identidad: centos (uid=1000), miembro de centos, adm, wheel y systemd-journal; no se utilizó elevación.
  • Plataforma declarada: KVM, CentOS Linux 7 (Core), kernel 3.10.0-1160.11.1.el7.x86_64, arquitectura x86-64.
  • Arranque actual: 2026-09-13 21:46:44, aproximadamente 13 h 44 min antes de la observación.
  • Recursos: 7,5 GiB RAM, 5,6 GiB disponibles, sin swap; raíz XFS de 160 GiB al 37 %.
  • Servicios principales activos: Apache HTTP Server, MariaDB, OpenSSH, Postfix, rpcbind, auditd, chronyd, crond, rsyslog y snapd.
  • Sockets locales observados: TCP 22, 80, 443, 111 y 3306 en todas las interfaces; TCP 25 solo en loopback; UDP 68, 111, 323 y 805 según dirección. Esto no confirma exposición desde Internet.
  • Aplicación: raíz /var/www/html; versión declarada estáticamente por PrestaShop: 1.6.0.14.
  • Paquetes relevantes: Apache 2.4.6-97.el7.centos.2, MariaDB Server 5.5.68-1.el7, OpenSSH Server 7.4p1-21.el7, OpenSSL 1.0.2k-21.el7_9, PHP 5.4.16-48.el7 y phpMyAdmin 4.4.15.10-6.el7.

El historial wtmp muestra un apagado del arranque anterior el 13 de septiembre a las 02:37 CEST, un nuevo arranque a las 21:46:47 y una sesión de centos desde 77.226.200.136 a las 21:52:42. Apache inició a las 21:53:23 y MariaDB a las 21:54:01. La contraseña de centos cambió correctamente a las 22:28:18, según el journal y la fecha de chage. La proximidad temporal es compatible con una puesta en servicio manual, pero no identifica quién la realizó ni demuestra que coincidiera con la restauración. Los ctime de la muestra web permanecen entre 2021 y 2025 y machine-id data de 2020. No se ha situado la restauración ni determinado si afectó al sistema, a archivos o solo a datos; un reinicio no se interpreta como reinstalación o restauración.

4. Cobertura

Área Periodo o rutas Método Resultado Limitaciones
Entorno local 2026-09-14 11:27 CEST Verificación acotada del directorio de trabajo y cliente SSH Destino local correcto; cliente OpenSSH de Windows localizado No se inspeccionaron otros archivos locales
Sistema base Estado a 2026-09-14 11:30 CEST Identidad, reloj, hostnamectl, uptime, memoria y volumen raíz Inventario inicial completado Fuente en vivo potencialmente afectable por un compromiso
Servicios y sockets Estado a 2026-09-14 11:33 CEST Unidades activas y sockets locales Apache, MariaDB, SSH y otros inventariados; MariaDB escucha globalmente No equivale a exposición externa; faltan firewall y red perimetral
Apache/PHP/PrestaShop Configuración y metadatos actuales RPM y lectura estática selectiva PrestaShop 1.6.0.14 en /var/www/html; plataforma obsoleta y controles débiles No se ejecutó PHP ni se hicieron solicitudes HTTP
Soporte y vulnerabilidades Productos y revisiones observados; fuentes consultadas el 2026-09-14 Avisos oficiales, política de backports y changelogs RPM locales Plataforma fuera de soporte; cadena PrestaShop 2022 posible; seis avisos seleccionados descartados para las revisiones instaladas No es una enumeración exhaustiva; índices locales de 2023 y sin actualización; no se explotó ni se consultó la DB
Cambios web recientes Últimas 72 h desde 2026-09-11 11:30 CEST find acotado a 20 s, mismo sistema de archivos, extensiones ejecutables/configuración Sin coincidencias y finalización dentro del límite Solo mtime; no detecta timestomping, cambios anteriores, contenido almacenado ni base de datos
Datos dinámicos 2026-09-14 Metadatos de primer nivel de upload y webservice CSV y JSON generados por Apache; no se leyó contenido Accesibilidad inferida, no probada por HTTP
Persistencia Cron del sistema, timers, unidades locales y rc.local Lectura de definiciones y metadatos; hash selectivo de seis destinos Cron ejecuta como root seis scripts sustituibles por identidades menos privilegiadas; sin unidades locales inesperadas ni carga adicional en rc.local No se ejecutaron ni se volcaron los scripts; no se leyó el crontab de root por falta de elevación
Accesos Journal del arranque hasta 2026-09-14 12:30 CEST, wtmp, cuentas y metadatos SSH Agregación por evento, usuario y origen; last, getent, chage y metadatos 403 autenticaciones por contraseña aceptadas, incluidas cinco de la auditoría; 2.211 fallos desde 134 orígenes; rotación de centos verificada Legitimidad de otros orígenes no atribuida; sshd_config y rotaciones protegidas; solo se conserva el arranque actual
Firewall Estado local actual Paquetes, tablas publicadas en /proc e intento no elevado de listar reglas iptables instalado; reglas no consultables como centos No permite concluir ausencia de filtrado local o perimetral
Logs Journal del arranque; cron del 16 de agosto al 14 de septiembre; excepciones de 2021 a 2026 Agregados por tipo y fecha, muestras redactadas y metadatos Presión SSH, lanzamientos efectivos de cron y nueve excepciones en 72 h; sin firmas dirigidas de explotación en excepciones HTTP, secure, messages y auditoría protegidos; exposición HTTP de excepciones no probada
Integridad del núcleo 14 puntos de entrada, bootstrap, despacho, búsqueda, hooks y webservice SHA-256 frente a etiqueta oficial 1.6.0.14 y comparación segmentada de las divergencias 12 coincidencias exactas; dos cambios mínimos explicados, sin primitivas peligrosas observadas Muestra selectiva; no certifica todo el árbol ni descarta contenido fuera de las rutas comparadas
Módulos, temas y overrides Primer nivel, dos conectores de migración, dos pagos, tema y overrides; rutas de cargas seleccionadas Metadatos, hashes y lectura estática dirigida, sin ejecutar PHP Dos conectores sensibles; pagos y overrides sin primitivas peligrosas en la muestra; coincidencias del tema explicadas Estado de activación no consultado en DB; exposición HTTP no probada; búsqueda de firmas embebidas agotó 25 s y fue no concluyente

5. Hallazgos

ID Clasificación Severidad Confianza Evidencia resumida Impacto Recomendación inicial
H-01 3. Debilidad/vulnerabilidad Crítica Alta CentOS 7, PHP 5.4, MariaDB 5.5, phpMyAdmin 4.4 y PrestaShop 1.6.0.14 fuera de soporte Ausencia de nuevas correcciones del proveedor y superficie extensa; una cadena PrestaShop de 2022 es posible bajo una precondición no verificada Reconstruir urgentemente sobre versiones soportadas y validar avisos contra paquetes del nuevo distribuidor
H-02 3. Debilidad de configuración Crítica Alta Código, configuración y directorios de aplicación con modo 0777; settings.inc.php también 0777 Cualquier proceso o usuario local puede alterar código y persistir; exposición innecesaria de configuración a usuarios locales Reconstruir permisos mínimos desde una referencia fiable tras preservar evidencia y reinstalar en entorno confiable
H-03 3. Debilidad de configuración Alta Alta phpinfo.php contiene una llamada activa a phpinfo() bajo un DocumentRoot con Require all granted Divulgación de versiones, rutas y configuración si es alcanzable Retirar tras preservar evidencia y verificar desde un punto autorizado durante la remediación
H-04 3. Debilidad/vulnerabilidad Alta Alta phpMyAdmin 4.4.15.10 instalado; alias web presente; /setup/ existe y Apache le concede Require all granted Exposición de superficie administrativa obsoleta y del instalador Bloquear externamente y retirar/actualizar durante la recuperación; revisar logs del alias
H-05 3. Debilidad de configuración Alta provisional Media MariaDB escucha en *:3306 Posible acceso remoto directo a la base de datos Confirmar firewall y perímetro; enlazar a loopback o red privada y filtrar en la remediación
H-06 3. Debilidad de configuración Alta Media JSON transaccionales en webservice sin .htaccess propio y CSV en upload, ambos bajo raíz pública Posible divulgación de información comercial o personal e indexación de archivos Mover datos fuera del DocumentRoot y denegar acceso directo; validar reglas efectivas sin exponer datos
H-07 3. Debilidad de configuración Crítica Alta Seis trabajos de /etc/crontab ejecutan como root archivos sustituibles por centos o Apache Persistencia y escalada a root desde una cuenta o proceso web comprometido Preservar evidencia; reconstruir los trabajos con scripts inmutables para sus ejecutores, propietario root y permisos mínimos; validar hashes y ejecución funcional
H-08 3. Debilidad de configuración Alta condicional Alta sobre contenido; media sobre exposición 1.073 logs 0644 bajo /var/www/html/log, sin denegación local; incluyen consultas SQL y errores de datos de clientes Posible divulgación de rutas, esquema, consultas y datos incluidos en excepciones Mover logs fuera del DocumentRoot, restringir lectura y comprobar reglas efectivas durante la remediación
H-09 3. Componente residual de alto privilegio Crítica condicional Alta sobre capacidad; media sobre exposición MigrationPro 4.0.0 usa token literal y permite leer archivos, ejecutar SQL de la petición y devolver claves internas; nueve copias idénticas de server.php Si el endpoint y token son alcanzables, acceso amplio a datos, configuración y secretos, con posible reinfección Bloquear el punto de entrada durante la contención; preservar una copia forense, confirmar legitimidad y uso, rotar claves potencialmente expuestas y retirar todas las copias en una reconstrucción controlada
H-10 3. Componente residual sensible Alta condicional Alta sobre capacidad; media sobre exposición ETS Migrate Connector 1.1.0 usa token configurable generado por defecto con 10 caracteres y exporta tablas, archivos y _COOKIE_KEY_ Si permanece habilitado y el token es conocido o descubierto, extracción amplia de datos y secretos Bloquear el endpoint hasta confirmar necesidad; revisar logs y configuración durante la respuesta, rotar claves potencialmente expuestas y retirarlo si la migración terminó
H-11 2. Indicio pendiente de corroboración Alta provisional Alta sobre eventos; baja sobre naturaleza 398 accesos ajenos a la auditoría aceptados por contraseña para centos, u2875 y u4659; 2.211 fallos desde 134 orígenes; sin fail2ban Una credencial reutilizada o comprometida permitiría acceso remoto; las cuentas SFTP pueden explicar parte del patrón Atribuir orígenes y flujos de integración, preservar/revisar logs completos, cerrar sesiones no reconocidas y migrar a claves con lista de acceso durante la contención

6. Desarrollo de hallazgos

La evidencia mínima se conserva en EV-001 - contexto e inventario, EV-002 - accesos y persistencia, EV-003 - integridad de PrestaShop, EV-004 - logs y cronología y EV-005 - fuentes y aplicabilidad.

H-01. Plataforma sin soporte y aplicabilidad de avisos

CentOS Linux 7 dejó de recibir actualizaciones el 30 de junio de 2024. PHP 5.4 terminó su soporte upstream en 2015, MariaDB 5.5 en 2020 y los avisos de phpMyAdmin califican 4.4 como rama no soportada. La política actual de PrestaShop normalmente aplica actualizaciones de seguridad solo a la última versión; 1.6.0.14, publicada en marzo de 2015, quedó además por detrás de 1.6.1.24, publicada en mayo de 2019. Esta convergencia hace crítico sustituir la plataforma aunque una CVE individual no sea aplicable.

No se equiparó el número upstream a una versión vulnerable. Los changelogs de los RPM instalados permiten descartar, para esas revisiones, CVE-2021-40438, CVE-2019-11043, CVE-2020-1971, CVE-2018-15473, PMASA-2017-8 y PMASA-2018-1. En cambio, el aviso de PrestaShop de julio de 2022 incluye 1.6.0.10 y posteriores y requiere una inyección SQL previa. El bloque de caché Smarty en MySQL que el proveedor recomendó retirar sigue presente y coincide con la etiqueta oficial; no se observó /var/www/html/blm.php. Sin logs HTTP legibles ni revisión de base de datos, la cadena se clasifica como posible, no confirmada, y la ausencia de ese nombre de archivo no la descarta.

H-07. Ejecución como root de scripts sustituibles

Los seis destinos de cron se fijaron mediante metadatos y SHA-256, sin ejecutar ni volcar su contenido. Cinco son propiedad de centos con modo 0777. El sexto, /var/www/html/scripts/articulos_categorias.sh, depende de una ruta cuyo directorio scripts pertenece a apache:apache y también tiene modo 0777; su mtime es del 3 de septiembre de 2026. Por tanto, una intrusión en la aplicación o en la cuenta centos podría cruzar la frontera de privilegios al siguiente ciclo de cron.

Los logs de cron accesibles entre el 16 de agosto y el 14 de septiembre confirman miles de lanzamientos como root, incluidos los seis destinos; no informan si terminaron correctamente. No hay evidencia de que los archivos actuales contengan código malicioso ni de que la ruta haya sido explotada. La fecha del script web puede corresponder a mantenimiento legítimo y no se usa como fecha de compromiso. El riesgo existe por el modelo de confianza y permisos, independientemente del contenido actual.

H-08. Logs de excepción dentro de la raíz pública

Se observaron 1.073 archivos diarios de excepción, 5,18 MB en conjunto, propiedad de Apache y con modo 0644 bajo /var/www/html/log; el directorio es 0777, no tiene .htaccess y la regla raíz no contiene una denegación específica. En las últimas 72 horas disponibles, cinco eventos refieren validación de correo de atención al cliente, tres son deadlocks y uno expone una consulta y un error de esquema. No se realizaron solicitudes HTTP, de modo que la exposición sigue inferida y no confirmada.

H-09. Servidor MigrationPro residual con acceso amplio

El punto de entrada modules/migrationproserver/server.php implementa tres acciones. Check devuelve metadatos que incluyen claves internas; File decodifica una ruta recibida y lee el archivo resultante sin canonicalización visible; Query decodifica y ejecuta SQL recibido, incluidas estructuras serializadas. El único control observado en ese archivo es la comparación con un token literal de 32 caracteres. El valor fue redactado y no se probó.

El mismo archivo aparece en nueve ubicaciones y todas comparten SHA-256 ca9a1264866242980cdbdbc9851dc8c73ee2c7e75a45c39563533238a69fa8cf. No se observó un .htaccess específico que deniegue esos puntos de entrada y la copia canónica tiene modo 0777. Esto confirma una superficie de administración extremadamente sensible y fácilmente alterable en disco. No demuestra que el token sea conocido por terceros, que el módulo esté habilitado en la base de datos, que el endpoint sea accesible desde Internet ni que se haya utilizado de forma abusiva. Al ser un archivo PHP directamente direccionable, deshabilitar el módulo en PrestaShop no necesariamente elimina la superficie.

H-10. ETS Migrate Connector con capacidad de extracción

modules/ets_migrate_connector/server.php comprueba que el módulo esté instalado y activo, un ajuste de acceso esté habilitado y el token recibido coincida con el almacenado en configuración. Su valor predeterminado se genera con Tools::passwdGen(10); no se leyó el valor real. Tras autenticarse, el cliente elige tablas existentes con el prefijo de PrestaShop, recibe sus filas y puede obtener _COOKIE_KEY_, rutas y archivos de entidades conocidas. La descarga valida el nombre y limita la ruta a estructuras internas, por lo que no se equipara a la lectura de rutas de MigrationPro.

La interfaz es coherente con una migración legítima, pero constituye una capacidad residual de extracción bajo el DocumentRoot. No se verificaron su activación, ajuste, accesibilidad externa ni uso histórico. Estas condiciones justifican menor severidad que H-09, pero requieren confirmar que el conector ya no sea necesario y revisar cualquier exposición durante la respuesta al incidente.

H-11. Autenticaciones SSH pendientes de atribución

En el corte fijo del journal se observaron 403 autenticaciones aceptadas, todas por contraseña. Cinco son las conexiones generadas por esta auditoría. Las otras 398 corresponden a centos y a dos cuentas con hogar SFTP y shell nologin; una dirección produjo 265 conexiones recurrentes de centos y u4659 utilizó 27 orígenes. El patrón puede corresponder a integraciones y mantenimiento legítimos, pero no se pudo confirmar la configuración ForceCommand ni atribuir cada origen.

En la misma ventana hubo 2.211 fallos de contraseña desde 134 orígenes y 1.393 líneas Invalid user. No hay fail2ban instalado. Los eventos confirman exposición de SSH, conocimiento de credenciales por varios clientes y presión automatizada; no confirman que una autenticación aceptada fuera hostil. La revisión completa requiere los archivos secure protegidos y validación del operador fuera de esta auditoría.

7. Indicadores

  • Seis hashes SHA-256 de scripts ejecutados por cron como root: indicadores de integridad de referencia, no indicadores confirmados de compromiso. Se conservan en EV-002.
  • SHA-256 ca9a1264866242980cdbdbc9851dc8c73ee2c7e75a45c39563533238a69fa8cf: nueve copias observadas de migrationproserver/server.php; indicador de presencia, no de compromiso.
  • 46.26.196.190: origen de 265 accesos de centos y ocho de u4659 en el corte; legitimidad no verificada.
  • 77.226.200.136: origen de una sesión de centos iniciada el 2026-09-13 21:52:42 CEST; legitimidad no verificada.
  • 79.112.29.215: origen de las cinco conexiones de auditoría incluidas en el journal; conocido y no sospechoso en este contexto.

8. Recuperación verificada y aspectos pendientes

La rotación de la contraseña de centos queda verificada por el evento del journal y la fecha de chage del 13 de septiembre de 2026. No se verificó la rotación de PrestaShop ni de otras cuentas, base de datos, SFTP, claves o sesiones. La restauración continúa siendo un dato comunicado: los metadatos seleccionados no permiten fecharla ni determinar su alcance. Permanecen pendientes el origen del incidente, la seguridad temporal y material del backup y la corrección del punto de entrada.

9. Limitación sobre la base de datos

La base de datos está excluida. No se verificarán administradores de PrestaShop, configuración almacenada ni posibles inyecciones persistentes en ella, salvo evidencia independiente disponible fuera de la base de datos.

10. Plan de acciones recomendado

Las acciones siguientes son recomendaciones; ninguna se ejecutó durante esta auditoría. Deben coordinarse como respuesta a incidente y preservar evidencia antes de modificar el sistema.

Fase Acción Finalidad Responsable sugerido Validación
Inmediato Preservar logs protegidos, configuración, metadatos, imagen de disco o snapshot y evidencia de proveedor antes de cambios Mantener capacidad de atribución y análisis Responsable de respuesta a incidentes y proveedor VPS Inventario, cadena de custodia, sellos de tiempo y hashes verificados desde almacenamiento restringido
Inmediato Restringir por firewall o proxy el acceso administrativo y cerrar la exposición externa de 3306 Reducir superficie mientras se recupera el servicio Infraestructura y red Escaneo autorizado desde fuera y dentro: solo puertos y orígenes aprobados responden
Inmediato Bloquear migrationproserver, ETS Migrate, phpMyAdmin y su setup, phpinfo.php, logs y archivos de datos bajo el DocumentRoot, después de preservar evidencia Cortar rutas de extracción, administración y divulgación Infraestructura y responsable PrestaShop Peticiones de control autorizadas devuelven denegación; la tienda mantiene solo las rutas de negocio necesarias
Inmediato Eliminar la frontera cron insegura: scripts y directorios ejecutados por root bajo propiedad de root, sin escritura para Apache ni usuarios de servicio Impedir escalada y persistencia por sustitución Administración Linux y propietarios de integraciones namei/stat confirman propietarios y modos mínimos; hashes aprobados y ejecución funcional supervisada
Inmediato Revocar sesiones y rotar, desde equipos confiables, credenciales de VPS, SFTP, PrestaShop, base de datos, paneles, correo, APIs, conectores y claves internas potencialmente expuestas Invalidar acceso persistente tras el incidente Identidad, aplicación y dueños de cada integración Credenciales anteriores fallan, sesiones existentes quedan invalidadas y pruebas funcionales usan secretos nuevos almacenados en un gestor
Inmediato Atribuir los orígenes SSH aceptados y detener sesiones o integraciones no reconocidas Distinguir automatización legítima de acceso no autorizado Respuesta a incidentes, negocio y proveedores de integración Lista aprobada de cuenta-origen-finalidad; sesiones activas y registros posteriores solo muestran el conjunto autorizado
24–48 horas Reconstruir en infraestructura nueva con SO, PHP, base de datos y PrestaShop soportados, desde fuentes verificadas; no confiar en una limpieza in situ Recuperar una base de confianza y soporte Plataforma, aplicación y negocio Inventario/SBOM, paquetes firmados, configuración revisada y pruebas de seguridad y negocio antes del cambio de tráfico
24–48 horas Revisar bajo autorización separada los logs HTTP, secure, auditoría, panel/proveedor y la base de datos Determinar punto de entrada, alcance, cuentas, persistencia y posible exfiltración Forense, administración de sistemas y DBA Cronología correlacionada, indicadores explicados y conclusiones con cobertura y lagunas documentadas
24–48 horas Validar el backup fuera de producción y migrar solo contenido necesario tras análisis Evitar reintroducir código, configuración o datos persistentes comprometidos Aplicación, DBA y respuesta a incidentes Fecha/procedencia verificadas, análisis de contenido, restauración de prueba y comparación con referencia limpia
24–48 horas Retirar conectores y artefactos de instalación no necesarios; reconstruir permisos desde una matriz de propietarios Reducir capacidades residuales y escritura transversal Responsable PrestaShop y administración Linux Inventario no contiene copias residuales; pruebas de permisos negativas y flujo funcional completo satisfactorio
Posterior Adoptar SSH con claves individuales, acceso por VPN o lista permitida, mínimo privilegio y protección frente a intentos repetidos Reducir abuso de contraseñas y mejorar atribución Identidad, red y administración Linux Contraseña deshabilitada donde proceda, prueba de acceso y recuperación, alertas ante fallos y revisión periódica de cuentas
Posterior Implantar parcheo continuo, inventario de componentes, logs centralizados, detecciones para cambios web/cron y alertas de autenticación Detectar y corregir nuevas exposiciones Operaciones y seguridad SLA de parcheo medido, simulaciones de alerta y revisión periódica de integridad con línea base aprobada
Posterior Mantener backups inmutables, separados y probados mediante ejercicios de restauración Asegurar recuperación sin depender del último backup disponible Operaciones, negocio y seguridad Restauraciones periódicas documentadas con RPO/RTO alcanzados y credenciales de backup aisladas

11. Fuentes oficiales y comprobaciones omitidas

Las fuentes, rangos, requisitos y revisiones RPM se detallan en EV-005 - fuentes y aplicabilidad, consultada el 2026-09-14. Las referencias principales fueron:

  • PrestaShop: aviso de la cadena de ejecución remota de 2022, etiquetas 1.6.0.14 y 1.6.1.24, y política de seguridad actual.
  • CentOS Project: fin de vida de CentOS Linux 7 el 2024-06-30, sin actualizaciones posteriores.
  • PHP y MariaDB Foundation: fechas de fin de soporte de PHP 5.4 y MariaDB 5.5.
  • phpMyAdmin: PMASA-2017-8 y PMASA-2018-1.
  • Red Hat: política de backports y fichas de CVE-2021-40438, CVE-2019-11043, CVE-2020-1971 y CVE-2018-15473.

Comprobaciones deliberadamente omitidas o no concluyentes:

  • Enumeración exhaustiva de CVE: no se realizó porque CentOS 7 está fuera de soporte, los metadatos locales datan de diciembre de 2023 y comparar solo versiones upstream generaría falsos positivos. No se actualizaron índices.
  • Explotación y exposición efectiva: no se hicieron solicitudes HTTP, escaneos ni pruebas de credenciales; por ello la accesibilidad de conectores, phpMyAdmin, datos y logs, así como el filtrado perimetral, no quedó demostrada.
  • Base de datos: quedó fuera de alcance; no se comprobó la precondición SQLi de la cadena PrestaShop 2022, administradores, configuración ni persistencia almacenada.
  • Logs protegidos: los logs HTTP, secure, messages, auditoría y cloud-init requerían permisos no disponibles; no se intentó elevar privilegios.
  • Configuración SSH efectiva: sshd_config no era legible; no se confirmó ForceCommand para cuentas SFTP ni el conjunto completo de claves, restricciones o inclusiones.
  • Avisos de módulos y tema de terceros: no se obtuvo una referencia oficial íntegra para cada versión instalada; la revisión fue estática y dirigida a capacidades de riesgo, no una certificación del código completo.

12. Respuestas directas

  • ¿Hay evidencia de compromiso actual? No se ha confirmado ejecución maliciosa actual en lo revisado. La comparación selectiva no mostró alteraciones maliciosas en los 14 archivos examinados; 398 autenticaciones SSH ajenas a la auditoría requieren atribución, pero no demuestran intrusión.
  • ¿Qué debilidades persisten? Cron permite escalar a root desde centos o Apache; MigrationPro conserva lectura de archivos, SQL remoto y acceso a claves; ETS puede exportar tablas, archivos y _COOKIE_KEY_; y SSH acepta contraseñas bajo fuerza bruta sostenida. Además persisten plataforma sin soporte, permisos web excesivos, phpinfo.php, phpMyAdmin obsoleto con instalador, escucha global de MariaDB y posible acceso directo a datos y logs.
  • ¿Qué recuperación se verificó? Solo el cambio de contraseña de centos, efectuado el 13 de septiembre a las 22:28 CEST. La restauración y la rotación de PrestaShop permanecen comunicadas, no verificadas.
  • ¿Qué falta para aumentar la confianza? Situar y validar la restauración, atribuir accesos SSH, revisar logs HTTP, autenticación y auditoría protegidos, comprobar controles de red y exposición efectiva, validar la base de datos bajo autorización separada y analizar el backup y los componentes de terceros antes de migrarlos.

Metodología y efectos incidentales

La conexión SSH y las lecturas pudieron generar registros de acceso y actualizar atime. No se alteraron historiales ni montajes para evitarlo. Al tratarse de una inspección en vivo tras un incidente, la salida de las herramientas del propio VPS no se consideró intrínsecamente fiable y se corroboró entre fuentes cuando fue posible.

La trazabilidad detallada se conserva en registro_comandos.jsonl.