Tag Archives: seguridad

Información importante para sitios web que utilicen Prestashop

En el día de ayer, el equipo que desarrolla la conocida aplicación de comercio electrónico Prestashop ha enviado un aviso a todos sus usuarios informando de que su sitio web oficial Prestashop.com había sido hackeado/atacado, lo que ocasionó que consiguiesen el control sobre un script destinado a enviar noticias sobre actualizaciones a los sitios web que utilicen Prestashop.

En Evalice sabemos que hay un gran número de clientes que utilizan Prestashop de modo que os adjuntamos los pasos que han publicado en el sitio web oficial para saber si tu tienda ha sido infectada y las medidas necesarias que debes tomar para solucionarlo:

 

¿Ha sido infectada mi tienda?

Esto sólo afecta a las versiones PrestaShop 1.4/1.4.1/1.4.2/1.4.3/1.4.4, pero no todas las tiendas que cuentan con estas versiones han sido afectadas necesariamente.

Si usa una de estas versiones, por favor verifique cualquiera de los siguientes síntomas:

  • Un archivo llamado her.php se encuentra en la raíz de la carpeta /modules
  • Un archivo .php diferente del index.php se encuentra en las carpetas upload y download
  • El archivo footer.tpl ha sido modificado.
  • La carpeta tools/smartyv2 ha sido eliminada

Si alguna de estas condiciones se cumple, su tienda puede haber sido infectada. Sin embargo, es fácil de arreglar con sólo seguir las instrucciones que se indican a continuación.

 

¿Qué debo hacer?

1. Cambiar la contraseña de la base de datos. Para ello abra el archivo de su tienda settings.inc.php que encontrará en la carpeta config, busque el campo “_DB_PASSWD_” y copie la contraseña que se muestra.

A continuación debe acceder a su panel de control cPanel, buscar el icono “MySQL Bases de datos”, ir a la parte inferior de esa nueva página y seleccionar el usuario que utiliza para su tienda Prestashop.  A continuación se le dará la opción de modificar su contraseña, antes debe introducir su antigua contraseña en el campo “Old Password” y a continuación la opción de crear una nueva contraseña. Una vez actualizada copie esa nueva contraseña en el fichero “settings.inc.php” y súbalo al servidor.

2. Descargue la revisión publicada por PrestaShop haciendo clic aquí

3. Suba esta revisión a la carpeta raíz de su tienda utilizando su cliente de FTP preferido (Filezilla, Transmit, etc…)

4. Diríjase a la url http://www.mitienda.com/herfix.php (ojo, hay que sustituir la url que aparece aquí por la de su tienda).

5. La solución al problema será aplicada en ese momento. Por favor, no olvide eliminar el archivo herfix.php previamente subido en la raiz de su tienda.

6. Cambie el nombre de la carpeta admin

7. Cambie la contraseña de todos los administradores de la tienda

Si usted necesita ayuda o tiene alguna pregunta adicional, puede enviarnos un email a security@prestashop.com. Le responderemos tan pronto como sea posible.

SQL injection ¿que es y como evitarlo?

La inyección de SQL (o en inglés SQL injection) es una técnica de inyección de código que se aprovecha de una vulnerabilidad de seguridad en una aplicación o en una base de datos.

La vulnerabilidad está presente cuando en la parte del código SQL de una aplicación se produce el filtrado incorrecto de las variables. De este modo la inyección de SQL se produce cuando se inserta un código SQL (malicioso) dentro del código SQL  de la aplicación con el fin de alterar la correcta ejecución de la consulta. Esto provoca que mediante la ejecución de este código malicioso se pueda obtener, modificar o eliminar cualquier información de la base de datos de la aplicación (incluidos nombres de usuario, contraseñas, etc).

Este sería un ejemplo básico de una aplicación con una vulnerabilidad:


Evitar caracteres peligrosos:

Una forma de evitar inyecciones es evitar caracteres peligrosos ( barra invertida, punto y coma, apóstrofes). En el lenguaje de programación PHP es habitual evitar esto utilizando la función mysql_real_escape_string antes de enviar la consulta a SQL.

$Uname = mysql_real_escape_string($Uname);
$Pword = mysql_real_escape_string($Pword);
$query = “SELECT * FROM Users where UserName=’$Uname’ and Password=’$Pword’”;
mysql_query($query);


Consultas parametrizadas:

Una consulta parametrizada utiliza marcadores de posición de entrada y los valores de los parámetros se suministran en tiempo de ejecución.

$params = array($Uname, $Pword);
$sql = ‘INSERT INTO Users (UserName, Password) VALUES (?, ?)’;
$query = sqlsrv_query($connection, $sql, $params);

Existe una extensa documentación en Internet para protegerse contra las inyecciones de SQL, en este breve repaso hemos querido ayudar a entender un poco mejor qué es y cómo evitarlo.

La importancia de mantener actualizados los scripts

En este mes de Abril, queremos retomar de nuevo la seguridad en Internet. Puede ser un tema muy recurrente, pero todavía hay algunas asignaturas pendientes de las que nos gustaría hablar.

La pasada semana se produjo un ataque (más información) de gran tamaño en Internet que ha infectado millones de sitios web a través del método “SQL injection“, que consiste en añadir varias líneas de código en los sitios web con scripts vulnerables con la finalidad de crear una redirección hacia otro dominio en el que descargar un falso antivirus.

De acuerdo a las estadísticas enviadas por Google se calcula en unos 3,8 millones de dominios afectados, que lo convierte en el ataque de mayor tamaño realizado en Internet y que ya ha sido bautizado como “LizaMoon” (uno de los dominios en donde descargar ese falso antivirus). Estas aplicaciones maliciosas pueden estar creadas con múltiples fines, como recopilar datos personales del PC infectado, servir como ordenador zombie para realizar ataques ddos y en definitiva comprometer el correcto funcionamiento del equipo.

Existen múltiples métodos para protegerse de estas amenazas de Internet, los proveedores de hosting trabajamos con herramientas como Mod Security, que permite establecer unas reglas de seguridad para que estos ataques no puedan aprovechar la mayoría de los errores de diseño en el código fuente (bugs) que pueda tener un script. Pero aunque el servidor se encuentre actualizado y se utilicen variedad de aplicaciones destinadas a proteger los sitios web (y en algunas ocasiones crear dolores de cabeza a los programadores que no cumplen los estándares), los usuarios que administran un sitio web también deben tomar ciertas precauciones.

- La gran mayoría de dominios trabajan con scripts prefabricados (Joomla, WordPress, Prestashop, Moodle, etc), que deben ser actualizados de manera periódica debido a que su cada vez mayor código HTML puede esconder pequeños agujeros de seguridad que permitan al atacante aprovechar esa vulnerabilidad y atacar el sitio web. En Evalice para simplificar la actualización de los scripts sin conocimientos técnicos, disponemos de herramientas como Softaculous que permiten notificar al cliente de cuando existe una nueva versión y actualizarlo.

- La segunda precaución y que en ocasiones todavía no se le presta la suficiente importancia, es mantener actualizado el sistema operativo y protegido (con antivirus y antispyware) el equipo desde el que se administra el sitio web o la cuenta de hosting. En nuestro trabajo diario siempre observamos ciertos usuarios que no toman las suficientes precauciones y trabajan durante meses con software espía en su PC que recopila todos los movimientos, incluidas las contraseñas de acceso al sitio web, correo o ftp.

- Por último, no olvidar utilizar contraseñas seguras y actualizadas. El año pasado publicamos una entrada en el blog sobre el tipo de contraseñas y su formato más recomendable, pero no sólo es importante que sean seguras, no debemos olvidar actualizarlas periódicamente especialmente las de servicios críticos en donde se almacenen datos importantes.

Buenos propósitos de año nuevo

Durante el mes de Diciembre, nos pudimos encontrar con la noticia de que el popular servicio de microblogging Twitter había sido victima de un ataque y en el mes de Agosto, de otro ataque debido al uso de contraseñas poco seguras en sus servidores.

En nuestra vida diaria utilizamos un gran número de servicios en Internet que requieren de una contraseña para acceder, como pueden ser, aplicaciones web, cuentas de email, redes sociales, servicios bancarios, blogs, etc.

Aprovechando que comenzamos el año, nos gustaría recordar de nuevo la importancia de utilizar contraseñas seguras y actualizarlas periódicamente, a continuación te detallamos algunos pasos que se deben tener en cuenta cuando crees tu contraseña.


Combinar letras mayúsculas, minúsculas, números y símbolos en la contraseña:

Esto evita los llamados “ataques de diccionario” y hace más complejo un ataque por “fuerza bruta”.

No utilizar palabras que figuren en un diccionario de cualquier idioma, nombres propios o de lugares:

Cuando intentan realizar un intento de intrusión en un servidor siempre se utilizan diccionarios, nombres propios y direcciones de lugares para ver si las palabras tienen cierta coincidencia con la contraseña.

No utilizar la misma contraseña que el nombre de usuario:

Bajo ningún concepto se debe utilizar como contraseña la misma palabra que el nombre de usuario, incluso aunque  sólo vaya a ser utilizada temporalmente.

Utilizar contraseñas de al menos 8 o 10 caracteres de longitud:

A mayor longitud, mayor complejidad para que la máquina atacante pueda averiguarla. Al introducir una contraseña en los servicios de hosting y correo de Evalice, te indicaremos su fortaleza para conocer como será de segura.

Evitar secuencias o frases hechas:

Las combinaciones “12345″ “qwerty” “asdfg” o cualquier tipo de palabra asociado a cierto ámbito, también son inseguras aunque no figuren en un diccionario.

No utilizar combinaciones de palabras:

Por ejemplo cambiar una “i” por un “1″ o una “O” por el número “0″, las máquinas atacantes conocen estos supuestos y también los emplean para intentar acceder.