Funciones de seguridad de Magento 2 | Actualizado 2020

Supéralo, la seguridad debe ser parte integral de cualquier proceso comercial en línea. Como comerciante, lo sabe de primera mano, los sitios web y los sitios de comercio electrónico, en particular, están comprometidos las 24 horas del día, los 7 días de la semana, los 365 días del año.

Se prevé que el comercio minorista sea una de las 10 industrias más atacadas para 2019–2022

Fuente

Bueno, ¿quién sigue? Tal vez tú… ¿O crees honestamente que Magento 2 hace una excepción? Lamentablemente no.

A partir de 2020, hay más de 250 000 sitios de comercio electrónico activos impulsados ​​por Magento, lo que representa alrededor del 12 % de todas las tiendas en línea.

Fuente

Magento ha sido una de las plataformas más frecuentes durante años en comparación con otras soluciones de comercio electrónico. Las capacidades técnicas cubren no solo las necesidades de inicio de comercio electrónico, sino también las demandas de empresas más grandes y gigantes minoristas.

El hecho hace que la plataforma sea una buena opción para los atacantes. Esa es la razón por la que lo mencionamos y le informamos sobre las funciones de seguridad nativas de Magento 2 y los trucos de seguridad básicos.

Resumen del artículo [ ocultar ]

  • Trucos básicos de seguridad para Magento 2
    • Usar escaneo de seguridad
    • Usar CAPTCHA de front-end/back-end
    • Usar autenticación de dos factores
    • Utilice contraseñas seguras
    • Usar permisos de acceso de administrador avanzados
  • 5 CARACTERÍSTICAS DE SEGURIDAD DE MAGENTO 2 VANILLA
    • N.º 1 CIFRADO DE DATOS FUERTE
      • ¿CÓMO CAMBIAR LA CLAVE DE CIFRADO ORIGINAL PARA LA SEGURIDAD DE MAGENTO 2?
    • #2 VALIDACIÓN DE LA SESIÓN
      • ¿CÓMO CAMBIAR LA CONFIGURACIÓN DE VALIDACIÓN DE SESIÓN EN MAGENTO 2?
    • #3 VALIDACIÓN DE COOKIES
      • ¿CÓMO HABILITAR LA BANDERA HTTPONLY PARA COOKIES EN MAGENTO 2?
    • #4 PROTECCIÓN CSRF
    • #5 PROTECCIÓN XSS
      • ¿CÓMO PREVENIR XSS EN MAGENTO 2?
  • ¿QUIERES SABER LA MEJOR PARTE?

Trucos básicos de seguridad para Magento 2

Usar escaneo de seguridad

Ejecute oportunamente las sesiones de análisis de seguridad de Magento. Esta herramienta gratuita probará su tienda en busca de vulnerabilidades de seguridad conocidas y le notificará sobre parches de seguridad útiles. Encuentra más información en la página oficial .

Además, verifique las mejores prácticas de seguridad sobre cómo proteger el medio ambiente y Magento y qué signos pueden indicar intentos de ataque.

Aquí encontrará las configuraciones que debe tomar para proteger su panel de administración de actividades maliciosas.

Usar CAPTCHA de front-end/back-end

A partir de la versión 2.3+, Magento permite configurar CAPTCHA para las partes delantera y trasera de su tienda para asegurarse de que una persona intente acceder a su sitio web. Encuentre más información sobre cómo configurarlo aquí .

Usar autenticación de dos factores

En la versión 2.3, la función estaba deshabilitada de forma predeterminada, en 2.4+ es obligatoria. La autenticación se proporciona solo para los administradores de la tienda y no se extiende a los clientes.

  1. Para configurar el uso de claves de autenticación Magento 2F, vaya a Tiendas > Configuración > Configuración .
  2. En la pestaña Seguridad , elija 2FA .
  3. Abra la sección General y seleccione su Proveedor .
  4. Complete la configuración de su proveedor de acuerdo con la documentación .
  5. Guardar.

Utilice contraseñas seguras

  • Cambie la contraseña de administrador predeterminada https://yoursite.com/backend o https://yoursite.com/backend a una personalizada.
  • Use la lista blanca de IP (solo direcciones IP particulares pueden acceder a su panel de administración) o servicios VPN.
  • Cambie sus contraseñas al menos una vez cada tres meses.
  • Otorgue acceso de administrador a aquellos usuarios que realmente lo necesiten. Dé acceso solo a las pestañas de administración que son necesarias para el trabajo, configure los roles de administrador. Y nunca comparta una cuenta con varios usuarios.

Usar permisos de acceso de administrador avanzados

En Magento 2 Commerce, puede establecer alcances en función de la vista del sitio web/tienda. Por lo tanto, un usuario tendrá permisos para ver datos relacionados con una vista de sitio web/tienda en particular. Además, registra las acciones de los usuarios administradores. Si ejecuta una versión anterior de Magento, use nuestras extensiones de Permisos avanzados y Registro de acciones de administración , respectivamente.

5 CARACTERÍSTICAS DE SEGURIDAD DE MAGENTO 2 VANILLA

Con la migración masiva a la nueva versión 2.4+ y una gran cantidad de vulnerabilidades detectadas, Magento Security Center  lanza regularmente parches de seguridad y actualizaciones para las configuraciones básicas de administración de las cuales hablaremos aquí hoy.

N.º 1 CIFRADO DE DATOS FUERTE

El cifrado de datos sólido es una de las características de seguridad más conocidas de Magento 2. Está disponible para las versiones Magento Commerce y Magento Open Source y se centra en  el uso de una clave de cifrado fuerte para proteger las contraseñas y otra información vulnerable .

Toda la información sensible está  cifrada con el  algoritmo AES-256 . Estos datos confidenciales, que además requieren descifrado, incluyen información de tarjetas de crédito, contraseñas de módulos de pago y envío. En cuanto a la información restante, no requiere descifrado y, por lo tanto, se  codifica con un SHA-256 fuerte .

Al instalar Magento, puede elegir permitir que la plataforma genere una clave de cifrado o escribir la suya propia. Esta  herramienta de clave de cifrado de Magento  le permite configurar una clave cuando la necesite.

Para mejorar la seguridad de su tienda, la clave debe cambiarse regularmente, por ejemplo, en cualquier momento en que la clave original pueda verse comprometida. Una vez que se cambia la clave de cifrado, toda la información confidencial se  volverá a cifrar de nuevo .

¿CÓMO CAMBIAR LA CLAVE DE CIFRADO ORIGINAL PARA LA SEGURIDAD DE MAGENTO 2?

Para cambiar la clave de cifrado, asegúrese de que se pueda escribir en el siguiente archivo:  [su tienda]/app/etc/env.php .

  • Cuando inicie sesión en el  Panel de administración , vaya a  Sistema>Otras configuraciones>Administrar clave de cifrado :

  • Elija entre generar automáticamente la clave o usar la suya propia;
  • Para la primera variante, configure  Generar automáticamente una clave  en  «Sí»  y haga clic en el botón  Cambiar clave de cifrado  ;
  • Para usar una clave diferente  , genere automáticamente una clave  para  «No» . Luego, en el campo Nueva clave, ingrese la clave que desea usar y haga clic en el botón  Cambiar clave de cifrado  .

Una vez hecho esto, se agrega una nueva clave. Guarde un registro de la nueva clave en un lugar seguro, ya que es posible que deba descifrar los datos si surge algún problema con sus archivos.

→ Vea cómo generar un sitio/clave secreta

#2 VALIDACIÓN DE LA SESIÓN

Magento 2 ofrece  validar variables de sesión como medida de protección en Open Source contra posibles ataques de sesión o intentos de envenenamiento/secuestro de sesiones de usuario.

Esta función de seguridad de Magento 2  determina cómo se validan las variables de sesión durante cada visita a la tienda y si el ID de sesión está incluido en la URL de la tienda. La validación verifica que los visitantes sean quienes dicen ser al comparar el valor de las variables de validación con los datos de la sesión que ya están almacenados en los datos de $_SESSION para el usuario.

La validación falla si la información no se transmite como se esperaba y la variable correspondiente está vacía. Si una variable de sesión falla en el proceso de validación,  la sesión del cliente finaliza inmediatamente .

Habilitar todas las variables de validación puede ayudar a prevenir ataques , pero también puede afectar el rendimiento del servidor. De forma predeterminada, la validación de todas las variables de sesión está deshabilitada. Por lo tanto, debe experimentar con la configuración para encontrar la mejor combinación para su instalación de Magento. La activación de todas las variables de validación puede resultar demasiado restrictiva e impedir el acceso a los clientes que tienen conexiones a Internet que pasan a través de un servidor proxy o que se originan detrás de un firewall.

Si está utilizando el almacenamiento de sesión predeterminado de Magento 2, sus archivos de sesión se ubicarán en los siguientes directorios:

  • <raíz_magento>/var/session
  • directorio definido en el archivo env.php
  • directorio configurado en el archivo php.ini

→ Podemos ayudarlo con la configuración, migración y optimización del servidor Magento 2. La primera consulta es gratis

¿CÓMO CAMBIAR LA CONFIGURACIÓN DE VALIDACIÓN DE SESIÓN EN MAGENTO 2?

Magento 2 tiene los siguientes tipos de sesión:

  1. MagentoBackendModelSession que se utiliza para backend
  2. MagentoCatalogModelSession que se utiliza para los filtros de catálogo
  3. MagentoCheckoutModelSession que se utiliza para el pago
  4. MagentoCustomerModelSession que se utiliza para cuentas de clientes
  5. MagentoNewsletterModelSession que se utiliza para los datos del boletín.
  • Una vez que haya iniciado sesión en el  Panel de administración , vaya a  Tiendas>Configuración>Configuración>General>Web>Configuración de validación de sesión :

  • Elija cómo establecer las siguientes variables:
  • Configure  Validar REMOTE_ADDR  en  «Sí»  si desea verificar que la dirección IP de una solicitud coincida con lo que está almacenado en la variable $_SESSION;
  • Establezca  Validar HTTP_VIA  en  «Sí»  para verificar que la dirección proxy de una solicitud entrante coincida con lo que está almacenado en la variable $_SESSION;
  • Establezca  Validar HTTP_X_FORWARDED_FOR  en  «Sí»  si desea verificar que la dirección de reenvío de una solicitud coincida con lo que está almacenado en la variable $_SESSION;
  • Establezca  Validar TTP_USER_AGENT  en  «Sí»  para verificar que el navegador o dispositivo que se usa para acceder a la tienda durante una sesión coincida con lo que está almacenado en la variable $_SESSION.
  • Establezca  Usar SID en la interfaz  en  «Sí»  si desea que un usuario permanezca conectado mientras cambia de tienda.

Si ejecuta SID con análisis, configure su software de análisis para filtrar el SID de las URL, de modo que los recuentos de visitas a la página sean correctos.

  • Para eliminar sid de la URL de Magento 2, vaya a Tienda > Configuración > General > Web y abra la sección Configuración de validación de sesión .
  • Establezca el campo Usar SID en escaparate en No .
  • Luego, vuelva a indexar su Magento y actualice el caché y se eliminará SID Magento 2.

#3 VALIDACIÓN DE COOKIES

La cookie HTTP es un pequeño paquete de datos enviado desde un servidor web al navegador web de un usuario para transferir datos de una página a otra. Se requiere ya que HTTP es un protocolo sin estado.

Debido a problemas de seguridad como  los crecientes incidentes de envenenamiento y robo de cookies, hoy se aplicó un nuevo tipo de cookie segura. La cookie se transmite a través de una conexión HTTP cifrada. Al configurar este tipo, el atributo seguro dicta cómo se debe devolver el navegador a la aplicación (justo sobre la conexión cifrada).

Sin embargo, el atributo seguro no protege la cookie en el proceso de transmisión desde la aplicación al navegador. Para proteger completamente la cookie,  también se deben aplicar los atributos HttpOnly y SameSite . El atributo HttpOnly evita que JavaScript acceda a las cookies, mientras que el atributo SameSite permite enviar cookies a la aplicación solo en caso de que la solicitud se origine en el mismo dominio. De forma predeterminada, Magento examina si HTTPS está habilitado y establece un indicador de seguridad automáticamente.

Habiendo entrado en vigor en 2018, el Reglamento General de Protección de Datos requiere que el proceso de recopilación de datos personales sea transparente, seguro y con el consentimiento de los usuarios. Desarrollamos esta extensión GDPR para ayudarlo a cumplir con los requisitos y evitar multas.

También desarrollamos una
extensión LGPD separada para ayudar a los comerciantes que venden productos en Brasil a cumplir con la Ley General de Protección de Datos de Brasil que entró en vigencia en agosto de 2020.

Para cumplir con la Ley de Privacidad del Consumidor de California, use esta extensión CCPA .

¿CÓMO HABILITAR LA BANDERA HTTPONLY PARA COOKIES EN MAGENTO 2?

Si desea aplicar el indicador HttpOnly, puede hacerlo a través del backend cambiando la configuración de cookies predeterminada.

  • Inicie sesión en el  Panel de administración  y vaya a  Tienda>Configuración>Configuración>General>Web>Configuración predeterminada de cookies :

  • Establezca el  campo Usar solo HTTP  en  «Sí»  si necesita que todas las cookies incluyan la directiva HttpOnly.

Una vez que la configuración está habilitada, todas las cookies HttpOnly no son accesibles para los navegadores y, por lo tanto, XSS no debe robarlas.

#4 PROTECCIÓN CSRF

Los precedentes con CSRF (Cross Site Request Forgery o XSRF) no fueron raros en 2017 debido a la utilización inteligente de vulnerabilidades multiplataforma comunes con brechas de seguridad en Magento 2. Como consecuencia, el aviso Magento DC-2017-04-003 convenció a los comerciantes de use  Agregar clave secreta a la configuración de URL para mantenerse protegido contra los ataques CSRF .

Siempre que la clave esté habilitada en Magento 2 de forma predeterminada, muchos usuarios administradores subestimaron  la importancia de su cambio y sufrieron resultados problemáticos. En caso de que un atacante experimentado de alguna manera reciba su clave de formulario, se puede construir un ataque CSRF en cualquier forma sin necesidad de confirmación de contraseña.

Uno de los métodos que pueden utilizar los atacantes es analizar la página del panel administrativo en busca de claves secretas para otras páginas hasta que finalmente encuentren la que necesitan. Con frecuencia, los piratas informáticos fuerzan la ejecución de cualquier acción en el sitio vulnerable en nombre de una víctima: cambio de contraseña, pregunta secreta para recuperar la contraseña, correo electrónico, etc.

Sin embargo, los desarrolladores de la plataforma aplican características de seguridad como el token adicional  para protegerse contra tales ataques. Significa que una  cadena alfanumérica de 16 caracteres generada aleatoriamente utilizada como parámetro form_key  se utiliza como un token CSRF adicional dentro de todos los formularios en el Panel de administración.

Por ejemplo:
fragmento de URL ordinario:
book_audio/book_catalog/recoverImage
Fragmento de URL con sal (cadena alfanumérica de 16 caracteres):
book_audio/book_catalog/recoverImageXXXXXXXXXXXXXXXX

El token adicional se genera automáticamente junto con cualquier formulario donde se envíe la información y después de enviar el formulario. La plataforma Magento 2 busca una coincidencia entre el token enviado y el que está almacenado en la sesión.

Si los resultados coinciden, el usuario para el que se ha generado el formulario y el usuario que ha enviado el formulario son el mismo. Si los formularios no coinciden, no se procesa más y un atacante no puede cambiar la información.

→ Habilite la autenticación en dos pasos
→ Acceda a su tienda con el inicio de sesión de la cuenta de Google

#5 PROTECCIÓN XSS

La vulnerabilidad XSS, que se puede encontrar en cualquier aplicación web, suele ser utilizada por los atacantes para inyectar código malicioso en una página web visitada por los usuarios. Los principales tipos de vulnerabilidad XSS incluyen:

  • XSS persistente : los datos no validados se reciben de la base de datos o del almacén permanente del backend;
  • XSS no persistente : los scripts del lado del servidor utilizan los datos proporcionados por un cliente web para analizar y mostrar una página a un usuario sin una verificación más profunda;
  • DOM XSS : los datos maliciosos se reflejan en el código JavaScript en el lado del cliente sin ninguna iteración con el servidor web.

Por lo tanto, los desarrolladores de extensiones de Magento 2 deben evitar introducir vulnerabilidades en los códigos.

¿CÓMO PREVENIR XSS EN MAGENTO 2?

La verificación y limpieza tanto de la entrada como de la salida del usuario debe llevarse a cabo para evitar el almacenamiento y la ejecución de un código malicioso. Debe desinfectar las cadenas que podrían provenir de fuentes de datos externas antes de enviarlas al navegador y luego procesarlas con plantillas. Para obtener más información acerca de las plantillas de seguridad XSS, consulte  aquí .

Además, ahora Magento ofrece la clase Escaper para evitar la salida HTML.
Realiza las siguientes funciones útiles:

  • La función escapeHtml()  se aplica para evitar cadenas dentro del contenido HTML;
  • La función escapeHtmlAttr()  se usa para evitar cadenas en atributos de etiquetas HTML;
  • La función escapeCss()  permite escapar cadenas dentro de un contexto CSS;
  • La función escapeJs()  se utiliza para escapar cadenas dentro de un contexto de JavaScript;
  • y  la función escapeUrl()  es aplicable para evitar cadenas, que se utilizarán en una URL.

→ Si aún no ha migrado a la última versión de Magento 2, le ofrecemos considerar nuestro Magento 2 Security Suite . El kit incluye reCaptcha invisible de Google, registro de acciones de administrador, 2FA y permisos avanzados.

¿QUIERES SABER LA MEJOR PARTE?

Mientras trabajamos hombro con hombro con nuestros clientes, no somos ajenos al problema. Tenemos que decir que todas las funciones de seguridad enumeradas en la publicación son medidas de protección básicas integradas en Magento 2.

Sin embargo, todos los complementos instalados en su plataforma deberían carecer de infracciones, consulte a los proveedores a los que compra sus extensiones.

Siguiendo las últimas novedades en ciberseguridad, seguimos ofreciendo  el servicio de instalación de parches de seguridad . Hacemos todo lo posible para salvaguardar a los clientes y a nosotros mismos.

¿Tienes alguna idea o truco? Simplemente envíenos una línea a continuación.

¡Esa es una envoltura por hoy!

PD: Kira Kharevich, jefa de soporte del equipo de Amasty, y el exdesarrollador de Amasty Magento, Eugene Shevchuk, le entregaron esta publicación.