Escanear malware en PrestaShop: guía sencilla
¿Por qué es tan importante escanear malware en PrestaShop?
Si tienes una tienda online, tu plataforma es tu negocio. PrestaShop es un software muy popular, lo que lo convierte en un objetivo atractivo para los ciberdelincuentes. Un ataque de malware puede provocar desde la caída de tu tienda, el robo de datos de tus clientes (algo especialmente grave por normativas como el RGPD), hasta que Google marque tu sitio como peligroso, destruyendo tu reputación y tus ventas en cuestión de horas.
La buena noticia es que, en la mayoría de los casos, si actúas con rapidez y método, puedes detectar y eliminar el problema antes de que cause daños irreparables. Esta guía está diseñada para que, aunque no seas un experto en informática, puedas realizar un escaneo de seguridad básico y efectivo en tu PrestaShop.
Piensa en esta guía como tu botiquín de primeros auxilios digital. No te asustes si encuentras algo raro; vamos a ir paso a paso, con calma y con instrucciones muy claras.
Señales de que tu tienda PrestaShop puede tener malware
Antes de lanzarte a escanear, es útil saber qué estás buscando. El malware no siempre es obvio. A veces se esconde en archivos del sistema, otras veces inyecta código en tu base de datos o incluso crea usuarios administradores falsos para controlar tu tienda.
Estas son algunas de las señales más comunes de que tu tienda online puede estar infectada:
- Ralentización extrema: Tu tienda carga mucho más lento de lo habitual sin una razón aparente (no has instalado módulos nuevos ni tienes picos de tráfico).
- Redirecciones extrañas: Al hacer clic en un producto o enlace, eres redirigido a páginas de spam, casinos online o webs de venta de productos falsificados.
- Aparición de contenido extraño: Ves anuncios, pop-ups o textos que no has escrito en tu web, especialmente en el pie de página o en la página de inicio.
- Alertas del navegador o de Google: Tus clientes te avisan de que Chrome o Firefox muestran un aviso de "Sitio engañoso" o "Contenido no seguro". También puedes ver un aviso en Google Search Console.
- Archivos nuevos o modificados: Al mirar tu hosting, encuentras archivos con nombres extraños (como
.php,.phtml,.icoo.htaccessmodificados) que no recuerdas haber subido. - Usuarios administradores desconocidos: En el panel de administración de PrestaShop, en la sección de "Administradores", ves cuentas que no has creado tú.
Si has detectado una o varias de estas señales, es momento de actuar. Pero incluso si no ves ninguna, es una excelente práctica realizar un escaneo de seguridad de forma periódica (por ejemplo, una vez al mes) como medida preventiva.
Preparación antes del escaneo: crea un punto de restauración
Este es el paso más importante de todos, y el que más se suele saltar. Antes de tocar absolutamente nada, haz una copia de seguridad completa de tu tienda.
¿Por qué? Porque si durante la limpieza eliminamos un archivo que no debíamos (o si el malware ya ha dañado algo), podremos restaurar la tienda a su estado anterior. Sin una copia de seguridad, podrías perder meses de trabajo, pedidos y datos de clientes.
Para hacer una copia de seguridad completa necesitas dos cosas:
-
Copia de los archivos: Accede a tu panel de control de hosting (como cPanel, Plesk o Syspanel) y busca la opción "Gestor de archivos" o "Backup". Descarga una copia completa de la carpeta
public_html(o el nombre que tenga tu carpeta raíz donde está instalado PrestaShop). También puedes usar un cliente FTP como FileZilla para descargar todos los archivos a tu ordenador. -
Copia de la base de datos: PrestaShop guarda la mayoría de su información (productos, pedidos, clientes, configuración) en una base de datos MySQL. En tu panel de control, busca la sección de "Bases de datos" o "MySQL". Selecciona la base de datos de tu tienda y haz clic en "Exportar" o "Backup". Se descargará un archivo con extensión
.sql. Guárdalo junto con los archivos.
[WARNING] No subestimes este paso. Una copia de seguridad es tu red de seguridad. Si algo sale mal, es tu única forma de volver atrás. Dedica los minutos que sean necesarios a hacerla bien.
Método 1: Escaneo de seguridad con módulos nativos y de pago
La forma más sencilla y accesible para un principiante es utilizar módulos de seguridad diseñados específicamente para PrestaShop. Son como un antivirus para tu tienda.
Paso 1: Actualiza todo
Antes de escanear, asegúrate de tener la última versión de PrestaShop y de todos tus módulos y plantillas. La mayoría de los ataques explotan vulnerabilidades conocidas que ya han sido corregidas en versiones posteriores. Actualizar es la primera línea de defensa.
Ve a tu panel de administración de PrestaShop (normalmente en tudominio.com/admin) y busca la sección "Modules" o "Módulos" y luego "Module Manager". Ahí verás si hay actualizaciones pendientes. Instálalas todas.
Paso 2: Activa la verificación automática de PrestaShop
PrestaShop tiene una herramienta integrada de verificación de integridad de archivos. Es básica, pero útil.
- Ve a Parámetros Avanzados > Rendimiento (en versiones antiguas) o busca "Herramientas de utilidad".
- En versiones recientes (1.7 y 8.x), no hay una herramienta gráfica, pero puedes usar la consola de administración. Sin embargo, para simplificar, te recomiendo el siguiente paso.
Paso 3: Instala un módulo de seguridad de confianza
Hay varios módulos de seguridad excelentes. Algunos son de pago, pero merecen la pena. Otros tienen versiones gratuitas con funciones básicas.
- PrestaShop Security (módulo oficial): Es gratuito y está desarrollado por el equipo de PrestaShop. Escanea los archivos de la tienda en busca de firmas de malware conocidas. Es un buen punto de partida.
- Econet Security: Es un módulo de pago muy completo que no solo escanea, sino que también añade firewalls, protege contra fuerza bruta y bloquea IPs maliciosas.
- PrestaShop Cleaner: Otro módulo de pago popular que se enfoca en la limpieza de archivos y base de datos.
Cómo usar un módulo de escaneo:
- Ve a Módulos > Módulos y Servicios.
- Busca en el mercado de addons de PrestaShop el módulo que prefieras o súbelo desde un archivo
.zipsi lo has comprado. - Instálalo y actívalo.
- Sigue las instrucciones del módulo. Por lo general, tendrás un botón que dice "Escanear ahora" o "Iniciar análisis".
- El módulo revisará todos los archivos de tu servidor y te dará un informe con los archivos sospechosos o modificados.
[TIP] Si el módulo te da una lista de archivos "sospechosos", no los borres todos a la vez. Revisa cada uno. A veces, un archivo modificado puede ser parte de una actualización legítima de un módulo. Si tienes dudas, compara el archivo con la copia de seguridad que hiciste antes.
Método 2: Escaneo manual de archivos (para usuarios con más confianza)
Si quieres tener un control más profundo, puedes revisar los archivos de tu servidor manualmente. Esto requiere un poco más de paciencia, pero es muy efectivo.
Paso 1: Accede a tus archivos por FTP o Gestor de Archivos
Conecta con tu hosting mediante un cliente FTP (como FileZilla) o usa el "Administrador de Archivos" de tu panel de control (cPanel, Plesk, Syspanel). La estructura típica de PrestaShop es:
admin(o una carpeta con un nombre aleatorio, es tu panel de administración)cacheclassesconfigcontrollersdownloadimgjsmailmodulesoverridepdfthemestoolstranslationsvar(en versiones 1.7+)webservice- Archivos en la raíz:
.htaccess,index.php,config/,init.php, etc.
Paso 2: Busca archivos con fecha de modificación sospechosa
Ordena los archivos por "Fecha de modificación". Busca archivos que hayan sido modificados en una fecha y hora en la que tú no estabas trabajando en la tienda. Esto es una gran pista. Los ciberdelincuentes suelen dejar rastros de actividad reciente.
Paso 3: Presta especial atención a los archivos .php y .htaccess
- Archivos
.phpen la raíz: Revisaindex.php,config.php(si existe), y cualquier otro.phpque no reconozcas. Ábrelos con un editor de texto (como el Bloc de notas o Notepad++) y busca código ofuscado. El código ofuscado se ve como una línea larga de texto sin sentido, con caracteres raros, funciones comoeval(),base64_decode(),gzinflate(),str_rot13(), etc. Si ves algo así, es casi seguro que es malware. - Archivo
.htaccess: Este archivo es un archivo de configuración del servidor Apache. Es un objetivo común para los atacantes. Ábrelo y busca redirecciones a dominios extraños (que no sean el tuyo) o reglas de reescritura (RewriteRule) sospechosas. - Carpeta
modules: Revisa si hay carpetas de módulos que no hayas instalado. Los atacantes a veces suben módulos falsos que contienen código malicioso. - Carpeta
var/cacheocache: A veces, el malware se esconde aquí en archivos con nombres comosess_xxxxxo archivos.phpcon nombres aleatorios.
Paso 4: Revisa los archivos de imagen
El malware puede estar oculto en archivos de imagen (.jpg, .png, .gif) mediante una técnica llamada "infección poliglota". El archivo sigue siendo una imagen visible, pero tiene código PHP incrustado al final. Para detectarlo, abre el archivo con un editor de texto. Si ves caracteres como <?php o eval() al final de un archivo .jpg, es un archivo infectado.
[INFO] No intentes "limpiar" un archivo infectado manualmente si no tienes experiencia. Es muy fácil romper algo. Lo más seguro es eliminar el archivo infectado y reemplazarlo con una copia limpia de tu copia de seguridad.
Método 3: Escaneo de la base de datos
El malware no solo se esconde en los archivos. También puede estar en tu base de datos. Las técnicas de inyección SQL pueden insertar código malicioso en tablas como ps_product, ps_category, o incluso en la tabla ps_configuration.
Paso 1: Accede a phpMyAdmin (o similar)
En tu panel de control de hosting, busca el icono de "phpMyAdmin" o "Base de datos MySQL". Haz clic en él, selecciona tu base de datos de PrestaShop y entra.
Paso 2: Busca código sospechoso en las tablas principales
- Tabla
ps_productyps_product_lang: Busca en los campos "description", "description_short" y "meta_description" si hay texto o código HTML extraño, como enlaces a sitios de spam o scripts de JavaScript. - Tabla
ps_configuration: Busca valores que contengan URLs que no sean las tuyas o código base64. - Tabla
ps_connectionsops_connections_page: A veces, se insertan registros falsos para inflar las estadísticas o redirigir tráfico.
Cómo buscar de forma eficiente:
Puedes usar la función de búsqueda de phpMyAdmin. Ve a la pestaña "Buscar" en la parte superior, selecciona todas las tablas, y busca términos como:
<scripteval(base64_decodehttp://(para encontrar URLs que no sean las tuyas)iframe
[WARNING] Ten mucho cuidado al manipular la base de datos. Un error puede dejar tu tienda inservible. Siempre trabaja sobre la copia de seguridad que hiciste al principio. Si no te sientes seguro, contacta con un profesional o con tu soporte de hosting.
¿Qué hago si encuentro malware? Pasos para eliminarlo
Si has encontrado archivos o código malicioso, es hora de la limpieza. Sigue estos pasos con calma:
Paso 1: Aísla la tienda
Pon tu tienda en modo mantenimiento. Ve a Parámetros Avanzados > Mantenimiento en tu panel de administración y actívalo. Esto evitará que los clientes vean la tienda y que el malware siga propagándose o haciendo daño.
Paso 2: Elimina los archivos maliciosos
Si has encontrado archivos .php sospechosos en la raíz o en modules, elimínalos. Si es un archivo de imagen infectado, elimínalo y reemplázalo con la versión limpia de tu backup.
Paso 3: Limpia el código inyectado
Si el malware está dentro de un archivo legítimo (como index.php o un archivo de plantilla .tpl), abre el archivo con un editor de código, localiza el código malicioso (las líneas largas con eval o base64) y elimínalas. Guarda el archivo.
Paso 4: Limpia la base de datos
Si has encontrado código malicioso en la base de datos, elimina las filas o edita los campos para quitar el código. Usa las consultas SQL de forma precisa. Por ejemplo:
UPDATE ps_product_lang SET description = '' WHERE id_product = X;
(O reemplaza X con el ID del producto infectado).
Paso 5: Cambia todas tus contraseñas
Esto es crucial. Tras una infección, asume que los atacantes tienen acceso a tu panel de administración, FTP y base de datos. Cambia:
- La contraseña de tu panel de administración de PrestaShop.
- La contraseña de tu cuenta FTP.
- La contraseña de tu base de datos MySQL.
- La contraseña de tu correo electrónico asociado a la tienda.
Paso 6: Refuerza la seguridad
Una vez limpia tu tienda, es hora de evitar que esto vuelva a pasar.
- Mantén todo actualizado: Es la regla de oro.
- Usa contraseñas fuertes: Combina mayúsculas, minúsculas, números y símbolos.
- Instala un módulo de seguridad: Como los mencionados anteriormente.
- Limita los intentos de conexión al panel de administración: Esto dificulta los ataques de fuerza bruta.
- Revisa los permisos de tus archivos: Los archivos deben tener permiso
644y las carpetas755. No uses777a menos que sea estrictamente necesario y de forma temporal.
Preguntas frecuentes (FAQ) sobre malware en PrestaShop
¿Con qué frecuencia debo escanear mi tienda?
Lo ideal es hacer un escaneo básico una vez al mes. Si realizas muchos cambios (instalar módulos, modificar el tema, etc.), hazlo después de cada cambio importante.
¿Puedo usar el antivirus de mi PC para escanear mi tienda online?
No, el antivirus de tu PC escanea tu disco duro local, no tu servidor web. Necesitas módulos de seguridad para PrestaShop o herramientas de escaneo online.
¿Qué es el malware de redirección?
Es un tipo de malware que intercepta el tráfico de tu web y envía a los visitantes a otros sitios web, generalmente fraudulentos o de spam. Se detecta en el .htaccess o en archivos de configuración.
Mi tienda está en Syspanel, ¿cómo accedo a las herramientas de seguridad?
Syspanel es un panel de
