Las Mejores prácticas
El comercio electrónico ha cobrado impulso en estos últimos años. Por lo anterior, han surgido múltiples plataformas en línea tales como Magento, Opencart y PrestaShop. De este modo, PrestaShop ha ido ganando popularidad a nivel mundial gracias a su naturaleza de código abierto. Sin embargo, como cualquier tienda en línea, la máxima prioridad para los clientes es la Seguridad PrestaShop. En los últimos años se han descubierto varios problemas de seguridad, pero nada que no se pueda remediar con una buena administración de este CMS.
¿Es seguro PrestaShop?
Si bien configurar PrestaShop es fácil, se necesita mucha precaución para mantenerlo seguro. Las tiendas en línea generalmente administran información confidencial, tales como los datos de tarjetas de crédito, y las empresas tienen una gran responsabilidad de tratar esos datos confidenciales de forma segura. Los piratas informáticos están constantemente tratando de robar estos datos y venderlos en la deep web a precios muy baratos.
Tipos de ataques a PrestaShop
Para mantener segura la tienda de PrestaShop, echemos un vistazo a las formas en que se puede explotar la seguridad de PrestaShop.
Inyección SQL en PrestaShop
Como todos los sistemas modernos de información, PrestaShop se constituye de dos componentes principales. Estos componentes son el código PHP, que es el software PrestaShop, y la Base de Datos (MySQL o MariaDB) que guarda información de configuración y transacciones. El código PHP se ejecuta y este ejecuta a la vez sentencias SQL contra la Base de Datos. El ataque de SQL Injection o SQLi consiste en inyectar sentencias SQL maliciosas para recuperar información confidencial desde la Base de Datos.
Por ejemplo, un caso en que se expuso una vulnerabilidad SQLi en una plataforma PrestaShop es el que a continuación se describe. Esto ocurrió debido a la falta de desinfección de entrada en uno de sus módulos. El módulo vulnerable fue Responsive Mega Menu (Horizontal + Vertical + Dropdown). Un SQLi podía inyectarse a través de llamadas a funciones en el parámetro de código. Esto se denominó CVE-2018-8824. Se determinó que el campo,
id_manifacturer
era propenso a SQLi. A través de la URL
http://example.com/ajax/getSimilarManufacturer.php?id_manufacturer=3[SQL-injection]
. Este componente era vulnerable a SQLi ciego, un tipo especial de SQLi en que se interroga a la Base de Datos con preguntas del tipo Verdadero o Falso. Al usar SQLi, el atacante puede conseguir lo siguiente:
- Leer contenido de la base de datos.
- Descubrir los detalles de inicio de sesión del usuario y luego iniciar sesión como administrador.
- Robar la información de la tarjeta de crédito del usuario en caso de que se haya almacenado localmente.
- Realizar otros ataques a partir de la información confidencial obtenida de la base de datos.
Scripting entre sitios PrestaShop (XSS)
Se han encontrado múltiples fallas XSS en PrestaShop. Una vulnerabilidad XSS descubierta a principios del año 2018 se denominó CVE-2018-5681. Esta vulnerabilidad primero requería que el atacante iniciara sesión en el sistema para poder explotarla. La otra vulnerabilidad XSS más grave estaba en el módulo Formulario de contacto. Esta vulnerabilidad fue más severa ya que era de naturaleza persistente. Esta vulnerabilidad permitió omitir la función
isCleanHtml().
Podría omitirse mediante la codificación base64. Además, esto se puede utilizar para inyectar códigos HTML. Editando así la visualización de mensajes.
Por lo tanto, al usar este tipo de ataque, un ciberdelincuente puede:
- En primer lugar, inyectar el código malicioso en los mensajes.
- Cargar scripts de robo de cookies de administración de un dominio malicioso.
- Después de obtener la cookie, el atacante puede iniciar sesión como administrador.
- Esto deja abierto el sitio a todo tipo de ataques adicionales.
- Además, el atacante puede conectar el navegador del administrador y ejecutar exploits del navegador.
Ejecución remota de código (RCE) en PrestaShop
La ejecución remota de código (RCE) es una clase de fallas/vulnerabilidades de seguridad del software. Las vulnerabilidades RCE permitirán a un actor malintencionado ejecutar cualquier código de su elección en una máquina remota a través de una LAN, WAN o Internet. RCE pertenece a la clase más amplia de vulnerabilidades de ejecución de código arbitrario (ACE). Sin embargo, con Internet cada vez más omnipresente, el impacto de las vulnerabilidades de RCE crece rápidamente. Por lo tanto, las RCE son ahora probablemente el tipo más importante de vulnerabilidad ACE.
En los años recientes PrestaShop ha sufrido vulnerabilidades de tipo RCE. Nuevamente, el módulo responsable fue Responsive Mega Menu Pro. La URL completa es
http:///modules/bamegamenu/ajax_phpcode.php?code=echo exec(id);
. Apodado como CVE-2018-8823, este problema permitía a los atacantes ejecutar en el servidor código PHP de forma arbitraria. Usando esto, el atacante podría realizar lo siguiente:
- Ejecutar comandos PHP en el servidor.
- Leer/modificar archivos sensibles.
- Intentar escalar privilegios. Después de eso, el atacante ahora puede ejecutar comandos como administrador. ¡Completando así la toma de control total del sistema!
Escalamiento de privilegios en PrestaShop
PrestaShop sufrió un problema de escalamiento de privilegios que se denominó CVE-2018-13784. Este problema se debió al mal manejo del cifrado de cookies. PrestaShop usaba cifrado Blowfish/ECD o AES que era vulnerable a los ataques de relleno. Un atacante podría alterar el contenido de la cookie para obtener privilegios de administrador. Por lo tanto, acceder a los recursos no destinados al atacante. Aprovechando esto, el atacante puede:
- Conseguir cualquier sesión de cliente.
- Robar información confidencial, como información de clientes, pedidos, información de tarjetas de crédito, etc.
- Obtener acceso al panel de administración a través de CSRF u otros ataques. Además, esto puede llevar a la ejecución remota de código.
Hack de redireccionamiento de Prestashop
A menudo, los ciberdelincuentes intentan inyectar código JavaScript de redireccionamiento. Por lo tanto, cuando los clientes visitan el sitio, generalmente los redirige a sitios para adultos. Aunque en ocasiones podrían ser otros sitios que vendan productos. O incluso recolectando clics para el atacante. Especialmente las tiendas pequeñas son las más afectadas. Por lo tanto, un truco de redireccionamiento de PrestaShop puede:
- Provocar que la tienda afectada sea incluida en la lista negra de los motores de búsqueda.
- Redirigir hasta el 90 por ciento del tráfico de usuarios.
- Perder la confianza de los usuarios en la tienda.
- Disminuir ventas debido a la redirección del malware.
- Convertir tu tienda PrestaShop en una plataforma de spam.
Admin Hack en PrestaShop
A menudo, el tablero de control de PrestaShop es pirateado debido a fallas en la seguridad. El panel de administración es una de las áreas más sensibles de la tienda. Debe mantenerse oculto al acceso público y con una contraseña segura. Sin embargo, cuando se ve comprometido, podría conducir a:
- Creación de varias cuentas de administrador nuevas previamente desconocidas.
- Cambiar la interfaz de usuario del panel de administración.
- Desactivar los módulos de seguridad allanando el camino para más ataques.
- El proveedor de hosting suspenda la cuenta por abuso.
- El área de administración muestra una página en blanco o una lista de archivos.
Una seguridad de PrestaShop débil puede ceder el panel de administración a los atacantes. A veces, el atacante puede usar puertas traseras para obtener persistencia en la cuenta de administrador. Por lo tanto, cuando se trata de la seguridad PrestaShop, el panel de administración es el recurso más importante. Por lo tanto, los administradores del sitio deben protegerlo siguiendo las prácticas de seguridad.
Hack de palabras clave de Google en PrestaShop
A veces, la tienda puede mostrar páginas o vender productos que originalmente no estaban configurados. Es muy probable que este sea el caso de una inyección de spam. Los atacantes vulneran la tienda y crean páginas falsas. Estas páginas pueden mostrar productos para adultos o contener contenido en algún otro idioma (por ejemplo, japonés). Cuando los motores de búsqueda como Google rastrean el sitio web para su indexación, estas páginas se rankean. Por tanto, afecta a los resultados de búsqueda del sitio.
Entonces, cuando los usuarios buscan un sitio en Internet, los muestra y los redirige a las páginas de spam. Sin embargo, los motores de búsqueda tienen filtros de malware. Como resultado, la tienda puede ser incluida en la lista negra por contenido de spam o malware. Esto advierte a los usuarios cada vez que ingresan al sitio. Por lo tanto, el tráfico de usuarios se desploma y las ventas caen casi a cero. Algunas de las infecciones típicas de este tipo son el hack de Viagra Cialis y el infame Japanese Keyword Hack. También se ha observado que los atacantes utilizan el encubrimiento para evitar ser detectados. Por lo tanto, la detección de spam es un proceso meticuloso y requiere una inspección de código detallada.
Hacking de tarjetas de crédito en PrestaShop
Las transacciones de compra o pedidos ocurren en las tiendas online todos los días. Algunos proveedores optan por almacenar la información de la tarjeta de crédito del usuario, mientras que otros no. Por tanto, la base de datos se convierte en un objetivo propicio para los atacantes. Todos los días se detectan en la red varios programas maliciosos y scripts que roban tarjetas de crédito. Algunos scripts se conectan a la base de datos para robar información de tarjetas de crédito. La tabla
ps_payment_cc
contiene columnas sensibles como
id_order_payment,card_number,card_brand,card_expiration
. El código fuente de una de estas secuencias de comandos se proporciona a continuación.
Como se desprende del código, el script utiliza consultas SQL. Estas consultas extraen información de la tarjeta de crédito de la base de datos. Otra infección de malware conocida es el archivo
/vendor/composer/autoload_real.php
. Sin embargo, el malware y los scripts no siempre se utilizan. A veces, el atacante engaña a los usuarios para que realicen ataques de phishing. Por lo tanto, los usuarios deben estar atentos a las páginas sospechosas.
El uso de PrestaShop no actualizado, módulos anulados, administración deficiente, mala gestión de credenciales y falta de conocimientos web y de seguridad, son la causa de ataques exitosos. Este entorno de usuarios PrestaShop que no son expertos en tecnología mantienen a los piratas informáticos en la cima de su juego de delitos cibernéticos. Incluso líderes de la industria no siempre utilizan las mejores prácticas de seguridad PrestaShop.
PrestaShop es el CMS de comercio electrónico con más sitios web en internet después de WordPress. Por lo mismo es razonable que tenga estadísticas de hackeo más altas. Pero esto no es porque PrestaShop sea malo en términos de seguridad, ya que NO hay sistema seguro. Todo sistema necesita estar permanentemente actualizado y con mecanismos de seguridad aplicados y vigilados. También puedes revisar nuestro artículo sobre Seguridad en WordPress.
Vulnerabilidades de Seguridad PrestaShop
Algunos de los diferentes tipos de vulnerabilidades de seguridad de PrestaShop son:
- Puertas traseras o back doors.
- Pharma Hacking: introducen código malicioso que afectan las búsquedas en Google.
- Intentos de inicio de sesión de fuerza bruta.
- Redirecciones maliciosas.
- Secuencias de comandos entre sitios (XSS).
- Negación de servicio (DoS).
¿Qué es la Seguridad?
Básicamente, la seguridad no se trata de sistemas perfectamente seguros. Tal cosa bien podría ser impráctica o imposible de encontrar y/o mantener. Sin embargo, la seguridad es la reducción de riesgos, no la eliminación de riesgos. Se trata de emplear todos los controles apropiados disponibles, dentro de lo razonable, que te permitan mejorar tu posición general reduciendo las probabilidades de convertirte en un objetivo y, posteriormente, ser hackeado.
Ten en cuenta algunas ideas generales al considerar la seguridad para cada aspecto de tu plataforma PrestaShop:
Limitar el acceso
Tomar decisiones inteligentes que reduzcan los posibles puntos de entrada disponibles para una persona malintencionada.
Contención
Tu sistema debe estar configurado para minimizar la cantidad de daño que se puede hacer en caso de que se vea comprometido.
Preparación y conocimiento
Mantener copias de seguridad y conocer el estado de tu instalación de PrestaShop a intervalos regulares. Tener un plan para hacer una copia de seguridad y recuperar su instalación en caso de una catástrofe puede ayudarte a volver a estar disponible con tu sitio más rápido en caso de un problema.
Fuentes confiables
No consigas plugins/temas de fuentes que no sean de confianza. Limítate al repositorio de PrestaShop.com o empresas conocidas. Intentar obtener plugins / temas de fuentes no oficiales puede generarte grandes problemas.
Hosting de sitio web
A menudo, un buen lugar para comenzar cuando se trata de seguridad de sitios web es su entorno de alojamiento. Hoy en día, hay muchas opciones disponibles y, si bien los hosting ofrecen seguridad hasta cierto nivel, es importante comprender dónde termina su responsabilidad y dónde comienza la tuya. Un servidor seguro protege la privacidad, integridad y disponibilidad de los recursos bajo el control del administrador del servidor.
¿Cómo se piratean los sitios web?
Para entender mejor como proteger un sitio web es importante entender los mecanismos de pirateo de un sitio web. Durante décadas de historia web, vemos que los hackeos casi siempre se dividen en tres categorías:
- Control de acceso.
- Vulnerabilidades de software.
- Integraciones de terceros.
No importa si eres una gran corporación o un almacén de barrio, la forma en que los piratas informáticos se acercan a un objetivo es muy similar. Lo que puede variar es cómo un negocio dejó condiciones de vulnerabilidad explotables por un ciberdelincuente.
Para las organizaciones grandes, a menudo se escuchan cosas tales algo como: "Pensé que alguien más lo estaba manejando". Hay una niebla que puede desarrollarse naturalmente en organizaciones complejas.
Para las pymes, a menudo se reduce a: "No entiendo por qué alguien querría atacarme, si mi negocio es tan pequeño". Es fácil perder de vista cuánta información privada se puede extraer incluso de un sitio muy simple.
En ambos casos, los piratas informáticos tienen las herramientas y los incentivos para actuar en áreas donde la vigilancia no es alta.
Recomendaciones de Seguridad PrestaShop
Entre las recomendaciones más importante podemos mencionar las siguientes:
- Hosting seguro para PrestaShop.
- Utilizar la última versión de PHP.
- Nombres de usuario y contraseñas inteligentes.
- Últimas Versiones de todo (WP/Temas/Modulos).
- Bloquear el administrador de PrestaShop.
- Autenticación de dos factores.
- HTTPS - Certificado SSL.
- Hardening del archivo wp-config.php
- Hardening del archivo .htaccess
- Deshabilitar XML-RPC.
- Ocultar la versión de PrestaShop.
- Encabezados de seguridad HTTP.
- Plugins de seguridad de PrestaShop.
- Seguridad de la base de datos.
- Conexiones seguras.
- Permisos de archivos y servidores.
- Deshabilitar la edición en el panel.
- Evitar Hotlinking.
- Realizar siempre copias de seguridad de PrestaShop.
- Protección DDoS.
Si necesitas mantener tu sitio web seguro y actualizado, no dudes en contactarnos, en Neuroclick ofrecemos distintos planes de mantención que incluyen soporte PrestaShop para tu tienda online, y que se adaptan a las necesidades de tu empresa. Confía el mantenimiento de tu página web a nuestros expertos.