Protección de tiendas osCommerce frente a ataques de hackers

Una tienda osCommerce desprotegida puede ser atacada en cuestión de días ya que muchos hackers y spammers utilizan sistemas automatizados de ataque que buscan constantemente tiendas vulnerables. Con la puesta en marcha de una serie de medidas se puede conseguir un alto grado de protección para la tienda.


Seguridad en tiendas oscommerce. Protección de tiendas oscommerce.

osCommerce es un software muy utilizado, existen miles de tiendas virtuales basadas en esta aplicación. Por ese motivo resulta muy rentable para los hackers y spammers buscar y aprovechar los agujeros de seguridad. Lo mismo ocurre con otras aplicaciones muy distribuidas en Internet.

En el caso de oscommerce, más del 95% de los ataques se producen a través de su panel de administración. Si se toman una serie de medidas de seguridad se puede minimizar el riesgo de sufrir uno de estos ataques.

Hay que tener en cuenta que la seguridad absoluta no existe. Siempre hay la posibilidad de que se encuentre un nuevo agujero de seguridad en la aplicación o en alguno de sus módulos externos, o de que los atacantes utilicen algún medio de acceso ajeno a osCommerce (robo de contraseñas, ataques por fuerza bruta, etc.)

En general, si se ponen una serie de medidas de seguridad que eviten en primer lugar los ataques automatizados y sistemáticos, y dificulten en lo posible los ataques directos a osCommerce, el objetivo del hacker (acceso al servidor a través de la tienda) dejará de ser rentable.

Medidas de prevención imprescindibles

Sobre todo para tiendas de versiones 2.2

  1. Cambiar el nombre al directorio del panel de administración.
  2. Proteger el directorio del panel con contraseña mediante .htaccess
  3. Eliminar los ficheros filemanager.php y define_language.php, que se encuentran en el directorio del panel (en versiones 2.2)
  4. Proteger el directorio de imágenes (.htaccess) para evitar que se puedan ejecutar scripts desde el exterior.
  5. Aplicar parches de seguridad y actualizaciones recomendadas (no siempre es sencillo y en algunas tiendas muy personalizadas puede ser costosa la actualización a versiones superiores)


Medidas de prevención recomendables

  1. Módulo Security Pro
    http://addons.oscommerce.com/info/5752
  2. Para evitar ataques de tipo XSS - Cross Site Scripting
    http://addons.oscommerce.com/info/6044
  3. Bloquear intentos de acceso sospechosos
    http://addons.oscommerce.com/info/5914
  4. Módulo de seguridad para osCommerce (osSec)
    http://www.oscommerce.com/community/contributions,7834

Una opción muy interesante es integrar en la tienda PHPIDS (PHP Intrusión Detection System), una capa de seguridad para aplicaciones PHP que utiliza un conjunto de reglas de detección avanzadas que pueden evitar y/o detectar un amplio abanico de tipos de ataque.

Detección de ataques

Si fallan las medidas de prevención o el atacante consigue acceso mediante alguna acción no relacionada con osCommerce, interesa detectar la intrusión lo antes posible para tomar medidas y minimizar daños.

  1. Módulo que permite monitorizar la web para detectar cambios
    http://addons.oscommerce.com/info/4441
  2. Incluir aviso por email a un administrador principal cuando cualquiera de los administradores acceda al panel de administración


Medidas que se pueden tomar cuando la tienda ha sido atacada

Una vez que la tienda ha sido atacada, la solución más fiable consiste en borrar el contenido de la web, incluyendo la tienda actual (toda la estructura de ficheros), e instalar una copia de seguridad de esa estructura cuya fecha sea anterior al ataque.

Muchas veces el ataque es "silencioso", por ejemplo el atacante puede haber dejado un troyano o algún tipo de código malicioso que permanece inactivo e invisible hasta que su propietario decide activarlo. En estos casos existe la posibilidad de que las copias de seguridad estén infectadas igualmente.

Llegados a este punto habría que plantear si es viable (costes) hacer una actualización a la última versión estable de osCommerce. Sería una forma de partir de cero y asegurar una tienda libre de código malicioso y más segura. Si se trata de una tienda personalizada (diseño + contribuciones + código a medida) habrá que trasladar toda esa personalización a la nueva tienda.

Si no son viables estas opciones habrá que trabajar con una web potencialmente "contaminada":

  1. Detectar y eliminar cualquier código malicioso
  2. Localizar el agujero de seguridad que ha posibilitado el ataque
  3. Reforzar las medidas de seguridad

En todos los casos: cambiar todas las contraseñas que han podido verse comprometidas. Pero siempre que sea posible, tras asegurarse de tener la web limpia y con las medidas de seguridad reforzadas. Porque de lo contrario el atacante seguirá teniendo una vía de acceso a la web y volverá a comprometer las contraseñas.

En algunos casos el agujero de seguridad no está en la tienda, ni en la web, ni en el servidor en el que se aloja. Si los equipos desde los que accedemos para administrar la tienda contienen algún troyano, por ejemplo de tipo keylogger (guardan y envían al atacante todo lo que escribimos a través del teclado, incluyendo contraseñas, información confidencial, etc.) cualquier medida de protección aplicada sobre la web será inútil.


Como resumen

  • Ningún sistema puede garantizar una seguridad absoluta. Hay que encontrar un equilibrio entre riesgos y costes.
  • Si no se toma ninguna medida de protección, la tienda será atacada tarde o temprano ya que los ataques son automatizados y sistemáticos.
  • Las consecuencias de un ataque pueden dejar la tienda fuera de servicio durante días y dejar secuelas muy molestas: problemas con el correo debido a listas negras antispam, que la web sea calificada como insegura por los navegadores, etc.
  • Con unas cuantas medidas de prevención se puede conseguir minimizar la probabilidad de sufrir un ataque (para el hacker deja de ser rentable intentar atacar una web protegida)
  • Puede haber agujeros de seguridad en todos los elementos de la cadena. Aunque la web esté protegida hay que estar atento a cuestiones externas: fortaleza de las contraseñas, cómo y dónde se almacenan, virus en los equipos de los administradores..