Seguridad en PrestaShop: protege tu eCommerce

Seguridad en PrestaShop

Uno de los asuntos más importantes a tener en cuenta cuando abrimos una tienda online es la seguridad en PrestaShop. Desgraciadamente tenemos que contar con que siempre puede haber algunas personas malintencionadas que pueden poner en peligro nuestro medio de vida por intereses propios.

No es que tenga que obsesionarte, pero sí que es recomendable que dediques parte de tu tiempo y tus recursos a pensar en la seguridad de tu PrestaShop. ¿Está realmente preparado para anticiparse a un ataque? ¿Ofreces todas las garantías a tus clientes?

Entendemos que puede parecer un asunto más denso que otros, incluso que muchos responsables de eCommerce no se quieran ocupar personalmente de ello por cuestiones de tiempo o conocimientos técnicos, pero incluso ellos están «obligados» a saber cómo funciona para anticiparse o buscar a un partner que sea experto en PrestaShop y resuelva con garantías la situación.

Principales vulnerabilidades de PrestaShop

En realidad son, más o menos, las mismas que en cualquier otra plataforma o CMS que se utilice para generar tiendas online.

Cualquier atacante va a buscar siempre aquellas brechas por las que colarse para intentar comprometer la seguridad de PrestaShop (con más de 250.000 eCommerce instalados en todo el mundo) tal y como lo haría, por ejemplo, en Magento o Woocommerce. Intentan hacerse con el control de tu sitio e incluso pueden secuestrarlo completamente.

Veamos cuales son las principales vulnerabilidades de PrestaShop, es decir, las que se dan con más frecuencia.

#1 – XSS o Cross Site Scripting

A través de una brecha de seguridad del software instalado en el servidor, los hackers pueden acceder a la tienda e inyectar sus propios códigos sin que los responsables de la misma se lleguen a dar cuenta.

El auténtico objetivo de los ataques XSS no es tanto el eCommerce en sí mismo como los usuarios y clientes que interactúan con él. Ese código malicioso pretende hacerse con datos y contraseñas o incluso sesiones. En algunos casos, puede llegar a instalar software en el equipo de la propia víctima para monitorizar su interacción fuera de nuestra web y hacerse pasar por ella.

Básicamente lo que hace es ejecutar ese código en el navegador del usuario, en cualquier campo que admita la introducción de texto como puede ser un buscador interno, formulario o comentario y redirigirlo a una URL maliciosa.

¿Cómo protegemos PrestaShop de XSS?

En primer lugar, desde el mismo código de la tienda. Tenemos que estar seguros que nadie puede ejecutar HTML o JavaScript en los campos comentados. Este es un trabajo que corresponde al programador de cada aplicación y que debe supervisar también el responsable de seguridad de nuestra tienda.

Además, se recomienda que desde el servidor se instalen medidas como los WAF (Web Application Firewall). Este tipo de elemento de seguridad filtra y bloquea (si es preciso) todo el tráfico de una aplicación web.

El usuario también tiene un rol en esto y no debería hacer click en enlaces que pudieran parecer sospechosos, pero, como no es nuestra función hacérselo entender, será mejor que tomemos las medidas que estén en nuestra mano para evitarle esos problemas. Al fin y al cabo, somos responsables de su seguridad.

Pensando en lo que puede acarrear un ataque XSS y otras vulnerabilidades que comentaremos a continuación, siempre es una buena idea implantar protocolos que saneen la entrada de información por parte del usuario.

Obviamente necesitamos que los clientes puedan interactuar con la web para comprar, con lo que no podemos restringirlo totalmente (no tendría sentido), pero sí podemos hacer lo que en términos de seguridad web se llama input validation and sanitization. Esto es algo que debes hablar con el responsable de tu web para estar seguro ante posibles ataques que vengan por esta vía.

#2 – Clickjacking

Esta vulnerabilidad tiene la «cualidad» de resultar prácticamente transparente para el usuario. Detrás de una interacción aparentemente legítima, como hacer click sobre un botón o un enlace dentro de la tienda, los hackers consiguen lograr su objetivo.

¿Cuál es el fin del Clickjacking en PrestaShop? Pues básicamente generar descargas no autorizadas en el equipo del cliente o redirigir el tráfico a webs de terceros con la intención de capturar sus cookies o, lo que sería peor, sus datos personales.

Para ello colocan elementos invisibles mediante HTML en una capa que estaría por encima de nuestra web, con lo que el usuario no tiene en ningún momento la sensación de estar interactuando con ningún elemento malicioso. Esto complica mucho el que pueda tomar sus precauciones de manera proactiva.

Al ser una táctica que se apoya en la propia experiencia de usuario web para generar los clicks necesarios, también recibe el nombre de UI Redressing.

¿Cómo protegemos PrestaShop de clickjacking / UI Redressing?

Este tipo de acciones vienen directamente del lado del navegador, puesto que es aquí donde se produce la interacción.

En PrestaShop se suelen utilizar, a este efecto, los llamados framebusters. Son pequeños fragmentos de código en JavaScript que hacen visibles todos los frames, comprueban si hay ventanas en la parte anterior y, en definitiva, evitan que el usuario haga click en estos elementos transparentes.

Aún así, esto no detendrá a todos los que quieran comprometer la seguridad de nuestro PrestaShop, pero al menos supondrá una primera línea de defensa que filtrará muchos ataques.

Si queremos ser más expeditivos podemos recurrir a la generación de URLs de un solo uso en aquellas partes de la web que sean más críticas. Con esto estamos poniéndole las cosas más complicadas al hacker que necesita conocer la dirección de la página a atacar.

Desde la parte del servidor se pueden tomar algunas medidas más, especialmente para evitar que se carguen iframes que, potencialmente, puedan incluir este tipo de amenazas.

#3 – Inclusión remota de archivos (RFI)

La verdad es que su propio nombre define bastante bien de lo que estamos hablando. Esta vulnerabilidad que está presente en las páginas creadas con PHP permite al usuario malicioso enlazar archivos que están alojados en otros servidores.

Gracias a esto son capaces de ejecutar malware en nuestro propio servidor que puede desembocar en el robo de información, ver comprometido nuestro servidor y, en el peor de los casos, la perdida total del control de nuestra tienda PrestaShop en manos del atacante y el robo de los datos de nuestros clientes.

Este tipo de vulnerabilidades y problemas de seguridad se han dado especialmente en tiendas que contaban con una instalación realizada en PrestaShop 1.3.6. Es relativamente común encontrarse incidencias RFI en esa versión.

¿Cómo protegemos PrestaShop de ataques RFI?

Al igual que en el caso de las acciones maliciosas de tipo XSS, lo mejor es realizar unas pulcra input validation and sanitization. Comprueba todos los campos y formas en las que el usuario pueda introducir información en remoto.

De hecho, si no vas a necesitar utilizar este recurso lo puedes bloquear, pero en el caso de tener necesariamente que emplearlo, será mejor que trabajes con listas blancas y que solo los usuarios validados por ellas puedan acceder a esta funcionalidad.

#4 – Cross-Site Request Forgery (CSRF)

Esta es una de las vulnerabilidades más explotadas en PrestaShop y en todos los CMS más utilizados.

Consiste en aprovechar que el usuario ha iniciado sesión en una determinada plataforma o servicio web para utilizar esa sesión con el fin de realizar acciones dañinas y causar estafas online sin que este se llegue a dar cuenta en ningún momento.

Lo más crítico de los ataques CSRF es que el hacker no necesita hacerse pasar por una tienda ni por un usuario, ya que tiene un acceso aparentemente legítimo a nuestro cliente y puede realizar acciones en su nombre que otros sistemas no van a detectar.

Vamos, que si el usuario de nuestra tienda ha realizado una compra, solo con enviar un enlace aparentemente inofensivo o colocar un script en nuestra web (XSRF), los hackers pueden realizar compras en su nombre aprovechando que la sesión sigue abierta.

¿Cómo protegemos PrestaShop de ataques CSRF?

Esta es una vulnerabilidad que se tiene que abordar eminentemente desde el lado del usuario, ya que es desde su navegador desde el que se produce el hackeo.

Son nuestros clientes los que tienen que revisar habitualmente su equipo para asegurarse de no tener malware instalado que pueda realizar ataques de este tipo o de cualquier otro.

También es recomendable que sea consciente de la importancia de cerrar la sesión una vez haya completado la interacción con el eCommerce o cada servicio web susceptible de generar acciones en su nombre.

Desde nuestro lado no tenemos muchas opciones, aunque siempre podemos forzar el cierre de sesiones cuando ha pasado un tiempo determinado sin dejar que estén iniciadas indefinidamente. Esto puede resultar un tanto incómodo para el usuario, pero lo entenderá si le hacemos ver que es por su seguridad.

Algunas webs utilizan la autenticación en dos pasos para doblar la seguridad. Esto también es un engorro para el cliente, pero es realmente efectivo.

#5 – SQL Injection en PrestShop

Este tipo de ataques de inyección de código SQL utilizan también un campo de la web (como por ejemplo un formulario) para añadir un código que permita a los atacantes acceder y modificar o borrar los datos almacenados en una base de datos.

Utilizando esos campos, los hackers consiguen acceso a la información almacenada en nuestro backend, especialmente los datos de clientes (nombres de usuario, contraseñas, tarjetas de crédito…)

También se ha reportado que algunos módulos como el llamado Responsive Mega Menu es particularmente vulnerable a la inyección de código SQL.

¿Cómo protegemos PrestaShop de ataques SQL injection?

En este caso la pelota está prácticamente en el tejado del propietario del eCommerce.

Para empezar es imprescindible que nuestro servidor sea realmente seguro, es decir, que solo permita instalar las aplicaciones que realmente son imprescindibles para la gestión de la base de datos. También debemos estar atentos a la aparición de nuevas cuentas con permisos de administración que resulten sospechosas: elimínalas siempre.

En el caso de detectar que la seguridad de nuestro PrestaShop ha sido comprometida, debemos ser responsables y comunicárselo a nuestros usuarios para que puedan proceder a cambiar sus datos de acceso y contraseña una vez solucionado el ataque.

Conclusión sobre seguridad en PrestaShop

Nadie está 100% a salvo de sufrir un ataque en Internet y, lógicamente, los eCommerce junto a la banca online, son uno de los objetivos más interesantes para aquellos que tienen intenciones fraudulentas.

Como ves, habitualmente los ataques ocurren cuando tenemos una versión desactualizada del software, ya sea el de la propia tienda o el de cualquiera de los módulos que tengamos instalados. Por eso solemos recomendar en la medida de lo posible pasar de versiones antiguas como PrestaShop 1.6 a 1.7 y la más reciente posible.

Con los módulos ocurre lo mismo: instala solo aquellos cuyo desarrollador te ofrezca todas las garantías y tenlos siempre actualizados.

Y, por último, vigila regularmente tu servidor y dótalo de medidas de seguridad como los comentados Firewalls que mantengan a raya a los hackers.

Tenemos una responsabilidad con nuestros clientes y no podemos permitir que sus datos se vean comprometidos en ningún caso.

Somos conscientes que este tema es un tanto denso y complicado de ejecutar para los propietarios y desarrolladores de PrestaShop que no están dedicados específicamente a la seguridad. Hay demasiados factores que controlar técnicamente.

Por eso, si te preocupa la seguridad de tu PrestaShop o tienes sospechas de que esta puede estar en riesgo, desde SOY.es nos ofrecemos a echarte una mano en todo lo que necesites. Somos especialistas y sabemos cómo tratar cada tienda como se merece.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *