Esta gua ha sido elaborada con la colaboracin de Daniel Frvida Pereira, Elena Garca Dez y Antonio Lpez Padilla.
Junio 2014
La presente publicacin pertenece a INTECO (Instituto Nacional de Tecnologas de la Comunicacin) y est bajo una licencia Reconocimiento-No comercial 3.0 Espaa de Creative Commons. Por esta razn est permitido copiar, distribuir y comunicar pblicamente esta obra bajo las condiciones siguientes:
Reconocimiento. El contenido de este informe se puede reproducir total o parcialmente por terceros, citando su procedencia y haciendo referencia expresa tanto a INTECO o INTECO-CERT como a su sitio web: http://www.inteco.es . Dicho reconocimiento no podr en ningn caso sugerir que INTECO presta apoyo a dicho tercero o apoya el uso que hace de su obra. Uso No Comercial. El material original y los trabajos derivados pueden ser distribuidos, copiados y exhibidos mientras su uso no tenga fines comerciales.
Al reutilizar o distribuir la obra, tiene que dejar bien claro los trminos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso de INTECO-CERT como titular de los derechos de autor. Texto completo de la licencia: http://creativecommons.org/licenses/by-nc-sa/3.0/es/
GUA BSICA DE SEGURIDAD DE MAGENTO 3
INDICE 1 SOBRE LA GUA 4 2 SOBRE EL COMERCIO ELECTRONICO 5 2.1 Contexto actual 5 2.2 Plataformas de comercio electrnico 6 Distribucin de las plataformas de comercio electrnico 7 2.3 Magento 8 3 SERVICIOS DE HOSTING 9 3.1 Seleccin de la modalidad de hosting 9 3.2 Requisitos tcnicos 9 4 INSTALACIN 11 4.1 Requisitos previos de software 11 4.2 Instalacin de Magento 11 4.3 Instalacin del certificado SSL 17 4.4 Consideraciones generales de las extensiones de magento 18 5 SEGURIDAD EN EL SERVIDOR WEB 19 5.1 Permisos de archivos 19 Revisar los permisos tras actualizaciones o instalacin de extensiones 20 Limitar el acceso a la zona de administracin 21 5.2 Robots.txt 21 6 GENERACIN DE COPIAS DE SEGURIDAD 24 7 EXTENSIONES DE SEGURIDAD DE MAGENTO 27 7.1 ET IP Security 27 7.2 Improved admin security 27 7.3 Improved admin security 2.0 27 7.4 Magepim PhpIDS security integration 27 7.5 Enhanced Admin Security: Two-Factor Authentication 28 7.6 Admin Logger 28 7.7 MageBackup - Backup Solution Lite 28 7.8 AutoBackup 29 7.9 MagePlace Backup Extension 29
GUA BSICA DE SEGURIDAD DE MAGENTO 4
1 SOBRE LA GUA El objeto de esta gua bsica de seguridad en Magento 1 Para ello, en la gua se desarrollan las principales recomendaciones de seguridad a considerar al establecer una tienda electrnica en esta plataforma, incluyendo cuestiones relacionadas con la seleccin del proveedor de hosting y la instalacin de la plataforma Magento, as como aspectos de configuracin segura del servidor web, la generacin de copias de respaldo y las principales funcionalidades de seguridad disponibles como extensin de Magento. es describir una forma clara y sencilla los principales aspectos que se deben de tener en cuenta en la instalacin segura de la plataforma de comercio electrnico Magento. El presente documento no incluye el bastionado de todos los aspectos, que se deben tener en cuenta por los administradores de los sistemas, para la explotacin de un entorno de produccin ms all de los ms estrictamente relacionados con Magento. Para obtener ms informacin se puede consultar la seccin de guas de INTECO 2
2 SOBRE EL COMERCIO ELECTRONICO 2.1 CONTEXTO ACTUAL Hoy en da, la importancia del comercio electrnico o eCommerce es indiscutible, una vez se ha superado la desconfianza inicial sobre esta nueva forma de venta. Tanto los nuevos comercios como los ya establecidos ven Internet como una gran oportunidad de ventas con una importante fuente de clientes potenciales que no pueden olvidar. En el ao 2012, segn estimaciones de eMarketer 3 , los ingresos mundiales debidos al comercio electrnico alcanzaron los 740 mil millones de euros,y apuntan una tendencia ascendente en los prximos aos. Segn estudios de la consultora Morgan Stanley 4
, el comercio mundial electrnico crecer un 50% para el 2016, llegando a suponer ms de un 9% de todo el volumen de ventas mundial. Ilustracin 1.- Volumen de ventas en comercio electrnico. (Fuente: Morgan StanleyBlue Paper: eCommerce Disruption - A Global Theme) En el caso de Espaa, el informe de comercio electrnico IT 2013 5 de la CMT (Comisin del Mercado de las Telecomunicaciones 6
3
) muestra que en el primer trimestre del 2013 el comercio electrnico alcanz un volumen de negocio de 2.822,6 millones de euros, lo que supuso un 15,1% http://www.emarketer.com/ 4 http://www.businessinsider.com/morgan-stanley-ecommerce-disruption-2013-1?op=1 5 http://www.cmt.es/informes-de-comercio-electronico 6 http://www.cmt.es/
GUA BSICA DE SEGURIDAD DE MAGENTO 6
ms que en el mismo trimestre de 2012, con un total de 43,5 millones de operaciones. De estos datos se desprenden perspectivas de crecimiento tambin en Espaa para los prximos aos, convirtindo el comercio electrnico, en un factor fundamental a tener en cuenta para el crecimiento y expansin del comercio 7
. Ilustracin 2.- Evolucin trimestral del volumen de negocio del comercio electrnico y variacin interanual (millones de euros y porcentaje). (Fuente: Informe de comercio electrnico IT 2013 de la CMT) 2.2 PLATAFORMAS DE COMERCIO ELECTRNICO Dentro de este contexto, uno de los principales actores en la venta a travs de Internet son las plataformas digitales para el comercio electrnico, las cuales bsicamente son aplicaciones web desarrolladas especficamente para el comercio o venta a travs de Internet. Entre las principales caractersticas de las plataformas de comercio electrnico destacan: Catlogo de productos. Las plataformas suelen facilitar la creacin, categorizacin y mantenimiento de los productos que se desean vender en la tienda. Personalizacin de la apariencia de la tienda, ya que no tendra ninguna ventaja de marketing que todas las tiendas fuesen iguales y no pudiesen diferenciarse. Soporte de transacciones bancarias como medio de pago en la tienda, este soporte puede ser a travs de pasarelas de pago electrnico para realizar transacciones con tarjetas de crdito, mediante transferencia bancaria o interoperabilidad con otros sistemas como Paypal 8
Gestin de pedidos. Muchas aplicaciones para eCommerce aportan facilidades para el envo y seguimiento de las mercancas. Creacin de informes y estadsticas sobre la tienda. Todas estas funcionalidades han de prestarse en un marco de seguridad adecuado a la gestin de transacciones y datos propias de una plataforma de comercio electrnico. As, su diseo debe contemplar la capacidad para afrontar ataques y proteger frente a los mismos los datos tanto de la compaa como de los usuarios de la plataforma. Distribucin de las plataformas de comercio electrnico Dentro de las plataformas de comercio electrnico se pueden encontrar aplicaciones propietarias y de cdigo abierto, siendo estas ltimas las que predominan en las instalaciones existentes. En la ilustracin 3 se incluye la distribucin del mercado de las plataformas de comercio electrnico, en ella se puede observar como las cinco primeras copan aproximadamente el 75% de las alternativas existentes.
Ilustracin 3.- Estudio de plataformas de comercio electrnico en base a Alexa. (Fuente: aheadworks 9 El modelo de negocio de las aplicaciones de comercio de cdigo abierto est basado en la venta del soporte de la aplicacin y en la venta de plugins o extensiones que mejorarn y aaden nuevas funcionalidades. )
2.3 MAGENTO Como la plataforma de comercio electrnico ms extendida en la actualidad, Magento se ha convertido en un referente en su sector, consiguiendo ser una de las principales opciones a la hora de crear una tienda virtual. Las principales caractersticas de Magento son las siguientes: escalabilidad y alto rendimiento, permitiendo que los sistemas puedan crecer en funcin de la evolucin de la demanda. fidelizacin de clientes y marketing online, que permiten desarrollar estrategias comerciales para afianzar la cartera de clientes, pudiendo gestionar descuentos, cupones, ofertas, etc. gran disponibilidad de opciones gracias a los plugins tanto de Magento, Inc. 10 Y evolucin continua, impulsada por su posicin predominante en nmero de instalaciones y a la gran comunidad que hay detrs del producto que incluye empresas como como de terceros desarrolladores. ebay 11
.
Su nivel de difusin y los datos sensibles que implica su uso, como son datos personales y nmeros de tarjetas de crdito, hacen de Magento un blanco muy atractivo para los ciber- delicuentes.
3 SERVICIOS DE HOSTING 3.1 SELECCIN DE LA MODALIDAD DE HOSTING Una de las primeras consideraciones, antes de pasar a la instalacin propiamente dicha de Magento, es decidir el servicio de hosting o alojamiento que va a soportar la tienda electrnica que implementar Magento. Aunque no sea estrictamente un tema de seguridad, la eleccin del tipo de hosting condicionara el tipo de de acceso y control del sistema sobre el que se instalar Magento. Entre las posibles opciones que nos ofrece el mercado, el primer paso sera decidir entre si el servidor ser gestionado por una empresa de servicios de hosting, encargndose dicha empresa de la instalacin y mantenimiento de la aplicacin, o por el contrario el servidor ser instalado, mantenido y bastionado directamente por el responsable de la tienda electrnica, siendo responsable tanto del servidor como de Magento. Adems, cuestiones como si el servidor es dedicado o compartido pueden tener implicaciones de seguridad a considerar en el proceso de instalacin y explotacin de la plataforma. En cualquier caso, la seleccin de la modalidad de hosting sobre la que se implantar Magento debe realizarse considerando el nivel de conocimientos tcnicos de las personas responsables de la tienda electrnica y el nivel de servicio que se quiere externalizar. 3.2 REQUISITOS TCNICOS Los principales requisitos tcnicos 12 Espacio en disco. El requisito mnimo de una instalacin de Magento son 100 MB de espacio en disco. A este espacio habr que sumar el espacio para las extensiones y el necesario para los propios productos de la tienda. que se deben considerar a la hora de seleccionar el servidor de hosting son: Sistema operativo. Magento soporta como sistema operativo Linux x86, x86-64, luego este debera ser el sistema operativo. Concretamente, la pgina oficial de Magento recomienda las distribuciones de CentOS y Ubuntu. PHP. Magento est desarrollado en PHP (PHP: Hypertext Preprocessor) 13 - PDO_MySQL , por lo que es necesaria la instalacin del intrprete de PHP para el funcionamiento de la tienda. La versin de Magento 1.8.0.0 es compatible con las versiones de PHP 5.2.13 a la 5.3.24. Adems de la instalacin bsica de PHP, sern necesarias una serie de extensiones: - Simplexml Hypertext Preprocessor - Mcrypt
- Hash - GD - DOM - Iconv - Curl - SOAP (si se usa Webservices API) Tambin se requiere que el Safe_mode este deshabilitado (off) y que el parmetro Memory_limit no sea menor de 256Mb, recomendndose 512Mb. Base de datos. Para instalaciones de Magento superiores a la versin 1.13.0.0 es necesario instalar la base de datos MySQL 14 Redis NoSQL. Redis NoSQL es un componente opcional para Magento a partir de la versin CE 1.8 y posteriores y EE 1.13 y posteriores. Redis es un motor de base de datos NoSQL en memoria, de tipo clave-valor, mediante el cual Magento cachea datos para lograr un mayor rendimiento. Las versiones necesarias para su correcto funcionamiento son: 5.0.2 o posterior. Como es lgico, la base de datos ser donde se almacenarn la mayor parte de los datos de la tienda electrnica. - Redis-server 2.6.9 o posterior. - Redis PHP extensin 2.2.3 o posterior. SSL. La tienda electrnica necesita la configuracin de un certificado SSL para que las comunicaciones, tanto en la seccin de administrador como de los clientes, estn cifradas y se garantice una confidencialidad y autenticacin mnima de las mismas. Certificados SSL auto-firmados no son compatibles. Configuracin del servidor de hosting. Para el correcto funcionamiento de Magento, se debe tener la posibilidad de programar tareas (crontab) con PHP5, as como la opcin de anular opciones en el archivo de configuracin .htaccess Analizando todos los criterios mencionados en este apartado, se deber valorar la mejor opcin para instalar la tienda online entre las mltiples opciones existentes de proveedores de servicios de alojamiento compartido, servidores compartidos, servidores virtuales o alojamiento en la nube.
14 http://www.mysql.com/
GUA BSICA DE SEGURIDAD DE MAGENTO 11
4 INSTALACIN La gua oficial de instalacin 15 4.1 REQUISITOS PREVIOS DE SOFTWARE incluye el detalle de los pasos a seguir en la instalacin de Magento. As, en este documento se resumen los principales pasos haciendo hincapi en los aspectos de seguridad cuando sea necesario. En este apartado, la gua describe el software y la configuracin necesaria antes de proceder a la propia instalacin de Magento. Ser necesario instalar los siguientes componentes: Apache2 como servidor de web de la tienda. Antes de instalar Apache habra que tener en cuenta la opcin de enjaular el proceso 16 PHP, lenguaje de script usado por el servidor para ejecutar Magento , para aislar del servidor web del sistema donde reside. MySQL, que ser la base de datos que necesitar la tienda. Durante la configuracin de la base de datos es aconsejable crear usuarios con los mnimos permisos posibles, evitando usar usuarios de perfil administrador. Adems es conveniente usar contraseas robustas para la identificacin. Configuracin SELinux. Se recomienda la instalacin de este componente de seguridad de los sistemas operativos Linux. Configuracin del Firewall que pueda tener el Sistema Operativo. Configuracin de la propiedad y de los privilegios de los archivos y directorios de la instalacin de Magento. Es recomendable que solo el usuario propietario del servicio Apache tenga los permisos de lectura y escritura de los archivos y de escritura, lectura y ejecucin de los directorios. Este modelo de configuracin puede evitar problemas de seguridad en el futuro. 4.2 INSTALACIN DE MAGENTO Una vez instalados todos los requisitos previos a la instalacin de Magento, pasamos a su instalacin propiamente dicha. Aunque la gua oficial de instalacin de Magento explica detalladamente el proceso, en este apartado veremos paso a paso la instalacin remarcando los puntos de la configuracin que afecten a la seguridad de la aplicacin web.
Los pasos principales para la instalacin son los siguientes: 1. Con la ltima versin estable de Magento en el directorio de instalacin, inciamos la instalacin abriendo en el navegador web la ruta correspondiente. Por ejemplo, si la aplicacin est instalada en el subdirectorio Magento a partir del directorio raz del servidor la direccin seria: http://www.dominioTienda.com/magento Esta direccin nos mostrara una pgina con el acuerdo de condiciones de uso del producto:
Ilustracin 4.- Acuerdo de condiciones de usos de Magento. 2. Seleccionamos la casilla de verificacin para aceptar el acuerdo de uso de la aplicacin y pulsamos el botn Continue. 3. La siguiente pgina web muestra las opciones de localizacin de la tienda: pas, zona horaria y moneda. Seleccionamos los datos adecuados y pulsamos el botn Continue.
GUA BSICA DE SEGURIDAD DE MAGENTO 13
Ilustracin 5.- Configuracin de la localizacin de Magento. 4. El siguiente paso muestra una pgina donde introducir los parmetros de configuracin de la tienda. Esta pgina est dividida en dos secciones: base de datos y parmetros de acceso a la web.
Ilustracin 6.- Configuracin de la base de datos. En la seccin de configuracin de la conexin de la base de datos, el proceso de instalacin requiere los siguientes datos: Host: direccin IP o nombre del servidor de la base de datos. Database Name: nombre de la base de datos que almacenar la informacin de la tienda virtual.
GUA BSICA DE SEGURIDAD DE MAGENTO 14
User Name: nombre del usuario con el cual la aplicacin web Magento se conectar a la base de datos. Es aconsejable que tanto el usuario como sus credenciales sean nicas y no coincidan con otras credenciales. User Password: contrasea correspondiente al nombre del usuario del campo anterior que se usara para autenticarse con la base de datos. Tables Prefix: si se realiza una nueva instalacin de la base de datos de Magento, este campo ser el prefijo que se aadir a todas las tablas que se van a crear en el proceso de instalacin de la tienda. Este campo en principio estaba pensado para tener varias instalaciones de Magento en una misma base de datos. Aunque este campo es opcional, se recomienda su uso. Si se decide no utilizar este parmetro, se corre el riesgo de ser vulnerable a ataques de inyeccin de cdigo o consultas que pudiesen explotar alguna vulnerabilidad de Magento o de su entorno al tener una configuracin tpica. Para disminuir la probabilidad de ser vulnerable, es recomendable usar un prefijo aleatorio de una combinacin de al menos 4 caracteres alfanumricos. La segunda seccin de esta pgina web de configuracin est dedicada a las opciones de acceso a la web.
Ilustracin 7.- Opciones de configuracin del acceso web de Magento. Los campos de esta seccin son los siguientes: Base URL: URL que se utilizar como direccin base para acceder al panel de administracin de Magento y a la tienda Magento. Admin Path: ruta que aadida a la Base URL permite el acceso al panel de control de administracin de Magento. Es aconsejable modificar la configuracin que viene por defecto por otra menos comn, para evitar posibles ataques automticos para acceder
GUA BSICA DE SEGURIDAD DE MAGENTO 15
a la tienda. Modificando este parmetro se evita que los atacantes sepan a priori la direccin del panel de control de Magento. Enable Charts: esta casilla hablita que se muestren grficos en el panel de administracin. Skip Base URL Validation Before the Next Step: valida URL base del servidor mediante la realizacin de un HTTP GET. En entornos de produccin es recomendable que esta opcin est sin marcar. Use Web Server (Apache) Rewrites: Esta opcin habilita el uso del mdulo mod_rewrite de Apache. Use Secure URLs (SSL): Hablita el uso del SSL. En entornos de produccin debe ser obligatorio el uso de comunicaciones seguras, esto se consigue habilitando y configurando los certificados de seguridad en el servidor. Con el uso de comunicaciones seguras evitamos que datos sensibles de los clientes (nombres o nmeros de tarjetas de crdito) puedan ser interceptados por terceros. La tercera y ltima seccin de configuracin permite elegir el modo en el que se salva los datos de sesin: sistema de archivos o base de datos.
Ilustracin 8.- Configuracin del almacenamiento de sesin. 5. Creacin de la cuenta de administracin. En esta pantalla se eligen las credenciales para el administrador de la tienda virtual. Para tener una seguridad mnima es aconsejable definir contraseas robustas y nombres de usuario que no sean fciles o habituales y con una longitud mnima de 8 caracteres. El ltimo campo de la pgina es la clave que usar Magento para cifrar datos sensibles de la base de datos. Si se deja vacio, el proceso de instalacin generar una clave de forma aleatoria. En caso de no una ser una instalacin desde cero ser necesario poner la clave que se us en la instalacin previa.
GUA BSICA DE SEGURIDAD DE MAGENTO 16
Ilustracin 9. -Configuracin de la cuenta de administracin. 6. La ltima pantalla del proceso de instalacin muestra la clave de cifrado generada y un mensaje de que Magento est ya instalado correctamente.
Ilustracin 10. -Pantalla final de instalacin de Magento.
GUA BSICA DE SEGURIDAD DE MAGENTO 17
4.3 INSTALACIN DEL CERTIFICADO SSL La instalacin de un certificado digital es un requerimiento obligatorio si se quiere que Magento se ejecute en un entorno seguro. Con su instalacin, las comunicaciones estarn cifradas y los clientes podrn verificar la autenticacin de la propia tienda. La instalacin del certificado consta de tres pasos: 1. Compra del certificado digital. Es necesaria la adquisicin de un certificado respaldado por un centro de autoridad que verificar el certificado. 2. Instalacin en el servidor web Apache. Para ello se deber editar el archivo de configuracin de Apache como aparece en la siguiente seccin: <Vi r t ual Host *: 443> Document Root / var / www/ ht ml / magent o Ser ver Name www. domni oTi enda. com SSLEngine on SSLCertificateFile /ruta/a/nombre_dominio.crt SSLCertificateKeyFile /ruta/a/private.key SSLCertificateChainFile /ruta/a/DigiCertCA.crt </ Vi r t ual Host > A continuacin, reiniciar el servidor Apache. Para ms informacin visite la web oficial del servidor web Apache 17 3. Configuracin de Magento. En la seccin System/Configuration/Web/Secure del panel de administracin, se deben modificar los campos Use Secure URLs in Frontend y Use Secure URLs in Admin al valor Yes. Esto hace que se use siempre una comunicacin segura con la tienda usando SSL. .
4.4 CONSIDERACIONES GENERALES DE LAS EXTENSIONES DE MAGENTO A travs de las extensiones, Magento proporciona un mtodo para aadir y ampliar funcionalidades a la tienda electrnica. Este mtodo facilita que terceros, como empresas o desarrolladores independientes, puedan incorporar nuevas funcionalidades a esta plataforma. Las extensiones abarcan un gran abanico de cuestiones, desde extensiones dedicadas a mejorar la interfaz web de la aplicacin a otras dedicadas a mejorar la integracin de los mtodos de facturacin o incrementar la propia seguridad de la plataforma. Estas extensiones pueden encontrarse a travs de la propia pgina web de Magento 18 Desde el punto de vista de la seguridad de Magento, hay que considerar la fiabilidad y confiabilidad de las extensiones que se instalen en la tienda de manera especfica ya que estos mdulos pueden tener acceso a toda la informacin de la tienda, incluyendo datos sensibles como nmeros de tarjetas de crdito de los clientes, el historial de ventas de la tienda o su stock. Por estas razones, es recomendable instalar slo extensiones que tengan una considerable difusin, que el vendedor o desarrollador sea, dentro de lo posible, confiable, y que ofrezca un soporte y tasa de actualizaciones aceptable. o en pginas de terceros. Aunque hay extensiones gratuitas, para una gran mayora de las extensiones que aportan importantes mejoras es necesario comprar licencias para su uso
5 SEGURIDAD EN EL SERVIDOR WEB En este captulo se describen brevemente algunos aspectos especficos para Magento a tener en cuenta para mejorar la seguridad del servidor web Apache 19 Para informacin general sobre el bastionado del servidor web Apache vase la sobre el que funciona la plataforma de comercio electrnico. Gua bsica para la securizacin del servidor web Apache 20
de INTECO. 5.1 PERMISOS DE ARCHIVOS Reducir los permisos de acceso de los diferentes archivos de la aplicacin Magento, es una de las primeras medidas de seguridad que se debe aplicar en un entorno de produccin. Al reducir estos permisos, se reduce potencialmente el dao que un atacante pudiese causar debido a alguna vulnerabilidad del sistema. La configuracin recomendada 21 En servidores dedicados, para configurar la propiedad de los ficheros de Magento se ejecuta: es establecer los privilegios del sistema de archivos y sus propiedades de la siguiente manera: chown - R nombr e- usuar i o- pr opi et ar i o- ser vi dor . En este caso, la recomendacin es establecer la propiedad de los archivos y directorios como el propietario del proceso del servidor web. Adems se recomienda establece los privilegios de acceso de lectura y ejecucin para los directorios (500) y se solo lectura para los archivos (400).
En sistemas de hosting con servidores compartidos, se recomienda que se asigne como usuario propietario de los archivos y directorios del servicio al usuario correspondiente del sistema. Adems es recomendable establece los privilegios de lectura y ejecucin segn se muestra acontinucacin:
f i nd . - t ype f - exec chmod 400 {} \ ; f i nd . - t ype d - exec chmod 500 {} \ ; f i nd var / - t ype f - exec chmod 600 {} \ ; f i nd medi a/ - t ype f - exec chmod 600 {} \ ; f i nd var / - t ype d - exec chmod 700 {} \ ; f i nd medi a/ - t ype d - exec chmod 700 {} \ ; Revisar los permisos tras actualizaciones o instalacin de extensiones Magento Connect Manager 22
es la aplicacin encargada de instalar nuevas extensiones en Magento de una forma automatizada. Sin embargo, esta aplicacin otorga permisos de escritura global (777) a todas las carpetas y ficheros que instala. Debido a esto, se recomienda reducir los permisos de los ficheros y de las carpetas despus de cada instalacin o actualizacin del sistema segn los parmetros anteriormente descritos. Ilustracin 12. -Permisos de carpetas y archivos.
Limitar el acceso a la zona de administracin Una forma de limitar el acceso a la zona de administracin de Magento a un conjunto limitado de direcciones IP es a travs de la configuracin de .htaccess. Este archivo permite definir de forma local los parmetros de configuracin que afectan al directorio donde est localizado y a sus respectivos subdirectorios, sin necesidad de tener que modificar el archivo de configuracin principal de Apache. El siguiente ejemplo redirigira a la direccin principal de Magento a todas las peticiones que recibiera el servidor a Apache desde una IP distinta a 192.168.56.102 y que la URL contuviese la cadena admin. <I f Modul e mod_r ewr i t e. c> Rewr i t eEngi ne On Rewr i t eCond %{REMOTE_ADDR} ! ^192\ . 168\ . 56\ . 102 Rewr i t eCond %{THE_REQUEST} ^. *( admi n) . * [ NC] Rewr i t eRul e ( . *) / </ I f Modul e> En caso de haber seguido los consejos en la instalacin de Magento, y haber cambiado por otra el Admin Path, que por defecto es admin, habra que modificar esta ruta por la elegida. 5.2 ROBOTS.TXT Robot.txt, tambin llamado The Robots Exclusion Protocol, es un archivo de configuracin que indica a los bots que analizan los sitios Web en Internet qu reas deben indexar y cules no. Aunque este estndar es una recomendacin, que puede ser adoptado o no, es recomendable acotar las regiones de la web que se quiera que sean indexadas. Al propietario de la tienda electrnica con Magento le interesa que se indexe toda la informacin relativa a los productos o servicios que se venden, pero no le interesar que se indexe nada relativo a las pginas de configuracin o de administracin de Magento. Un ejemplo de un archivo robots.txt optimizado 23 ## r obot s. t xt f or Magent o Communi t y and Ent er pr i se para Magento podra ser el siguiente: ## CONFI GURACI ON GENERAL ## Enabl e r obot s. t xt r ul es f or al l cr awl er s User - agent : * ## Cr awl - del ay par amet er : number of seconds t o wai t bet ween successi ve r equest s t o t he same ser ver . ## Set a cust omcr awl r at e i f you' r e exper i enci ng t r af f i c pr obl ems wi t h your ser ver . # Cr awl - del ay: 30 ## Magent o si t emap: uncomment and r epl ace t he URL t o your Magent o si t emap f i l e # Si t emap: ht t p: / / www. exampl e. com/ si t emap/ si t emap. xml
## DEVELOPMENT RELATED SETTI NGS ## Do not cr awl devel opment f i l es and f ol der s: CVS, svn di r ect or i es and dump f i l es Di sal l ow: / CVS Di sal l ow: / *. svn$ Di sal l ow: / *. i dea$ Di sal l ow: / *. sql $ Di sal l ow: / *. t gz$ ## GENERAL MAGENTO SETTI NGS ## Do not cr awl Magent o admi n page Di sal l ow: / admi n/ ## Do not cr awl common Magent o t echni cal f ol der s Di sal l ow: / app/ Di sal l ow: / downl oader / Di sal l ow: / er r or s/ Di sal l ow: / i ncl udes/ Di sal l ow: / l i b/ Di sal l ow: / pkgi nf o/ Di sal l ow: / shel l / Di sal l ow: / var / ## Do not cr awl common Magent o f i l es Di sal l ow: / api . php Di sal l ow: / cr on. php Di sal l ow: / cr on. sh Di sal l ow: / er r or _l og Di sal l ow: / get . php Di sal l ow: / i nst al l . php Di sal l ow: / LI CENSE. ht ml Di sal l ow: / LI CENSE. t xt Di sal l ow: / LI CENSE_AFL. t xt Di sal l ow: / README. t xt Di sal l ow: / RELEASE_NOTES. t xt ## MAGENTO SEO I MPROVEMENTS ## Do not cr awl sub cat egor y pages t hat ar e sor t ed or f i l t er ed. Di sal l ow: / *?di r * Di sal l ow: / *?di r =desc Di sal l ow: / *?di r =asc Di sal l ow: / *?l i mi t =al l Di sal l ow: / *?mode* ## Do not cr awl 2- nd home page copy ( exampl e. com/ i ndex. php/ ) . Uncomment i t onl y i f you act i vat ed Magent o SEO URLs. ## Di sal l ow: / i ndex. php/ ## Do not cr awl l i nks wi t h sessi on I Ds Di sal l ow: / *?SI D= ## Do not cr awl checkout and user account pages Di sal l ow: / checkout / Di sal l ow: / onest epcheckout / Di sal l ow: / cust omer /
GUA BSICA DE SEGURIDAD DE MAGENTO 23
Di sal l ow: / cust omer / account / Di sal l ow: / cust omer / account / l ogi n/ ## Do not cr awl seach pages and not - SEO opt i mi zed cat al og l i nks Di sal l ow: / cat al ogsear ch/ Di sal l ow: / cat al og/ pr oduct _compar e/ Di sal l ow: / cat al og/ cat egor y/ vi ew/ Di sal l ow: / cat al og/ pr oduct / vi ew/ ## SERVER SETTI NGS ## Do not cr awl common ser ver t echni cal f ol der s and f i l es Di sal l ow: / cgi - bi n/ Di sal l ow: / cl eanup. php Di sal l ow: / apc. php Di sal l ow: / memcache. php Di sal l ow: / phpi nf o. php ## I MAGE CRAWLERS SETTI NGS ## Ext r a: Uncomment i f you do not wi sh Googl e and Bi ng t o i ndex your i mages # User - agent : Googl ebot - I mage # Di sal l ow: / # User - agent : msnbot - medi a # Di sal l ow: /
GUA BSICA DE SEGURIDAD DE MAGENTO 24
6 GENERACIN DE COPIAS DE SEGURIDAD Una de las principales medidas de seguridad, que cualquier aplicacin informtica debe tener, es una clara poltica de copias de seguridad o backups. Con Magento se tienen incluso ms razones, al tratarse de un sistema en el que estar un tiempo fuera de servicio se traduce siempre en prdidas econmicas. Magento dispone de mecanismos para la creacin de backups. Para acceder a ellos, dentro de la consola de administracin del sistema, elegiremos la opcin System -> Tools -> Backups, tal y como se muestra en la siguiente imagen:
Ilustracin 13.- Ruta de de acceso al panel de backup de Magento. En la pantalla que nos muestra Magento al seleccionar Backups, como se puede ver en la siguiente figura, podremos encontrar en la esquina superior varias opciones para realizar las copias de respaldo: System Backup opcin que crea un .tgz con todo el sistema, incluyendo el cdigo fuente completo y la base de datos. Database and Media Backup se crear un .tgz que contendr una copia de seguridad de la base de datos y del contenido del directorio media. Database Backup copia de seguridad de la base de datos
GUA BSICA DE SEGURIDAD DE MAGENTO 25
Ilustracin 14.- Diferentes opciones de backup de Magento. Al seleccionar una de las tres opciones anteriores, el sistema solicitar el nombre con el que se almacenar el backup.
Ilustracin 15.- Solicitud del nombre del backup. Despus de realizar este ltimo paso, Magento crear una copia de seguridad que se almacenar en el servidor dentro de Directorio_raiz_magento/var/backups. Es altamente aconsejable almacenar tambin las copias de seguridad realizadas en un dispositivo externo al servidor. De esta manera, aunque los datos del servidor sean comprometidos, ser posible restablecer la tienda electrnica
GUA BSICA DE SEGURIDAD DE MAGENTO 26
Ilustracin 16.- Extraccin de la copia de seguridad del servidor. Por ltimo, mencionar la existencia de diferentes extensiones en Magento cuya misin es facilitar y automatizar estas copias de seguridad. Para ms informacin vase el apartado Error! No se encuentra el origen de la referencia. de esta gua. Adems, existen mltiples aplicaciones genricas para los entornos de explotacin enfocadas a la generacin, gestin y recuperacin de los sistemas. Algunos ejemplos de este tipo de software pueden ser Bacula 24 , fwbackups 25 o Flyback 26
7 EXTENSIONES DE SEGURIDAD DE MAGENTO En esta seccin se describe brevemente una serie de extensiones disponibles enfocadas a mejorar la seguridad de Magento. 7.1 ET IP SECURITY 27 Descripcin: Permite restringir el acceso a la pgina web de visitantes por IP o usando mscaras IP.
Compatible con: 1.3, 1.4, 1.4.1.1, 1.4.2, 1.5, 1.6, 1.6.1, 1.6.2.0, 1.7 Precio: gratis 7.2 IMPROVED ADMIN SECURITY 28 Descripcin: Mejora la seguridad del acceso a la seccin administrativa de la tienda, incorporando la verificacin de dos pasos mediante
Google Authenticator 29 Compatible con: 1.4, 1.4.1.1, 1.4.2, 1.5, 1.6, 1.6.1, 1.6.2.0, 1.7, 1.8 . Precio: $39.00 7.3 IMPROVED ADMIN SECURITY 2.0 30 Descripcin: Permite utilizar la autenticacin de dos factores basada en la aplicacin Google Authenticator.
Compatible con: Magento CE 1.4.1, Magento CE 1.4.2, Magento CE 1.5, Magento CE 1.6, Magento CE 1.7, Magento CE 1.8 Precio: $89.00 7.4 MAGEPIM PHPIDS SECURITY INTEGRATION 31 Descripcin: Mdulo que integra Magento con PhpIDS.
7.5 ENHANCED ADMIN SECURITY: TWO-FACTOR AUTHENTICATION 32 Descripcin: Extensin que utiliza la autenticacin en dos pasos de XTENTO, informacin adicional de seguridad que ser necesaria cuando se quiera iniciar sesin en el backend de Magento. Adems del nombre de usuario y la contrasea, es necesario un cdigo de seguridad para poder identificarse. Este cdigo de seguridad es generado a travs de un smartphone, siendo vlido nicamente durante 30 segundos.
Compatible con: 1.3, 1.4, 1.5, 1.6, 1.7, 1.8 Precio: $49.00 7.6 ADMIN LOGGER 33 Descripcin: Admin Logger es una extensin de Magento que registra las acciones realizadas en el backend de la tienda Magento. Con esta extensin queda registrado qu administrador esta registrado, qu pginas visita y qu modificaciones realiza. Esta informacin supone por tanto un histrico detallado de los datos modificados y la fecha de su realizacin de utilidad en la supervisin, investigacin o labores de auditora que resultasen necesarias.
Compatible con: 1.3, 1.4, 1.5, 1.6, 1.7, 1.8 Precio: $49.00 7.7 MAGEBACKUP - BACKUP SOLUTION LITE 34 Descripcin: MageBackup Lite es la versin gratuita de la extensin de Magento MageBackup. Esta versin proporciona la funcionalidad para realizar copias de seguridad del sitio web. Las principales caractersticas son:
- Backup rpido: la extensin est optimizada para un mejor rendimiento en servidores Linux y Windows. - Copia de seguridad de archivos, base de datos o ambas cosas: posibilidad de realizar copias de seguridad de archivos, base de datos o archivos y base de datos. - Exclusin de carpetas: posibilidad de poder excluir carpetas de la copia de seguridad. - Auto Backup: MageBackup es compatible con Magento cron para realizar copias de seguridad automticamente. - Administracin de Backup: funcionalidad para aadir y editar las copias de seguridad. Compatible con:1.4, 1.4.1.1, 1.4.2, 1.5, 1.6, 1.6.1, 1.6.2.0, 1.7 Precio: gratis
7.8 AUTOBACKUP 35 Descripcin: Extensin que permite la programacin de backups automticos de la base datos.
Compatible con 1.4, 1.4.1.1, 1.4.2, 1.5, 1.6, 1.6.1, 1.6.2.0, 1.7 Precio: $50.00 7.9 MAGEPLACE BACKUP EXTENSION 36 Descripcin: Extensin para realizar copias de seguridad de la tienda web de Magento a un servidor externo independiente. En este caso, las copias de seguridad pueden ser almacenadas fuera del servidor en servicios de almacenamiento como
Google Drive, Box.com, Dropbox o Amazon, pero manteniendo un acceso fcil y rpido para que en caso emergencia su utilizacin pueda ser gil. Extensin que permite la programacin de backups automticos de la base datos. Compatible con: 1.4, 1.4.1.1, 1.4.2, 1.5, 1.6, 1.6.1, 1.6.2.0, 1.7, 1.8 Precio: $149.00
INDICE DE ILUSTRACIONES Ilustracin 1.- Volumen de ventas en comercio electrnico. (Fuente: Morgan StanleyBlue Paper: eCommerce Disruption - A Global Theme) ....................................................................................... 5 Ilustracin 2.- Evolucin trimestral del volumen de negocio del comercio electrnico y variacin interanual (millones de euros y porcentaje). (Fuente: Informe de comercio electrnico IT 2013 de la CMT) ................................................................................................................................................ 6 Ilustracin 3.- Estudio de plataformas de comercio electrnico en base a Alexa. (Fuente: aheadworks) ................................................................................................................................... 7 Ilustracin 4.- Acuerdo de condiciones de usos de Magento. ......................................................... 12 Ilustracin 5.- Configuracin de la localizacin de Magento. ........................................................... 13 Ilustracin 6.- Configuracin de la base de datos. ........................................................................... 13 Ilustracin 7.- Opciones de configuracin del acceso web de Magento. ......................................... 14 Ilustracin 8.- Configuracin del almacenamiento de sesin. .......................................................... 15 Ilustracin 9. -Configuracin de la cuenta de administracin. .......................................................... 16 Ilustracin 10. -Pantalla final de instalacin de Magento. ................................................................ 16 Ilustracin 11.- Configuracin del SSL en Magento. ....................................................................... 17 Ilustracin 12. -Permisos de carpetas y archivos. ........................................................................... 20 Ilustracin 13.- Ruta de de acceso al panel de backup de Magento. ............................................... 24 Ilustracin 14.- Diferentes opciones de backup de Magento. .......................................................... 25 Ilustracin 15.- Solicitud del nombre del backup. ............................................................................ 25 Ilustracin 16.- Extraccin de la copia de seguridad del servidor. ................................................... 26