10 razones para mejorar la seguridad de tu sitio web

Cómo mejorar la seguridad de tu sitio web con estos 10 pasos

En este artículo te muestro cómo mejorar la seguridad de tu sitio web siguiendo estos 10 sencillos pasos, pero antes de pasar a analizarlos, una pequeña

Introducción

En los últimos años ha habido una proliferación de excelentes herramientas y servicios en el espacio de desarrollo web. Sistemas de gestión de contenido (CMS) como WordPress, Joomla, Drupal y tantos otros permiten a los empresarios construir de forma rápida y eficiente su presencia en línea. Sus arquitecturas altamente extensibles, ricas en plugins, módulos… han hecho más fácil que nunca conseguir tener un sitio web en funcionamiento sin los años de aprendizaje requeridos.

En este artículo quiero compartir  los 10 pasos todos los webmasters o propietarios de sitios web, pueden y deben tomar para mantener su sitio web seguro.

10 puntos para mejorar la seguridad de tu sitio web

  1. ¡Actualiza, Actualiza, Actualiza!

Esto es algo que no podemos hacer suficiente hincapié aquí en Sucuri. Innumerables sitios web están en peligro todos los días debido al software obsoleto e inseguro utilizado para ejecutarlos. Es increíblemente importante actualizar tu sitio tan pronto como un nuevo plugin o la versión del CMS está disponible. La mayoría de hacking en estos días es totalmente automático, con los robots constantemente escaneando cada sitio web buscando oportunidades de explotación. No es lo suficiente actualizar una vez al mes o incluso una vez a la semana, porque los robots son muy probable que encuentren una vulnerabilidad antes de esa actualización. Necesitas actualizar tan pronto como las actualizaciones estén liberadas. Si usas WordPress, te recomiendo el plugin WP Updates Notifier, te envía un correo electrónico para avisarte cuando está disponible un plugin o actualización del núcleo de WordPress.

  1. Las mejores Contraseñas para mejorar la seguridad de tu sitio web

Trabajando en los sitios del cliente, a menudo necesitamos iniciar sesión en su sitio utilizando sus datos de usuario de administrador. Con frecuencia nos preocupamos por lo inseguras que son sus contraseñas de acceso: admin / admin no es un nombre de usuario y una contraseña segura. Si su contraseña aparece en esta lista de las contraseñas más comunes, te garantizo que el sitio será hackeado en algún momento.

Incluso si la contraseña no está en esa lista, hay un montón de ideas falsas sobre las contraseñas fuertes. Los requisitos laxos de la mayoría de los medidores de la contraseña son parte del problema.

Cuando se trata de elegir una contraseña hay 3 requisitos fundamentales que siempre deben seguirse (CLU: Complejo, Largo, Único):

  • COMPLEJO: Las contraseñas deben ser al azar. No dejes que alguien pueda hackear tu cuenta simplemente porque podían saber tu fecha de nacimiento o equipo de fútbol favorito. Los programas de descifrado de contraseñas puede adivinar millones de contraseñas en cuestión de minutos. Si tienes palabras reales en tu contraseña, será más fácil sacarlas, puesto que no son al azar.
  • LARGO: Las contraseñas deben tener más de 12 caracteres de longitud. Cuando se trata de sistemas de acceso en línea, cualquier sistema que está siguiendo sencillas pautas de seguridad debe limitar el número de intentos de conexión fallidos. Si hay un límite en el número de intentos de conexión fallidos, una contraseña de 12 caracteres se detendrá fácilmente al intentar adivinarla en unos pocos intentos. Dicho esto, cuanto más larga sea la contraseña, mejor.
  • ÚNICO: No vuelvas a utilizar las contraseñas en más sitios. Cada contraseña que tienes debe ser única. Esta simple regla limita drásticamente el impacto de que cualquier contraseña se vea comprometida. Tener alguien que pueda averiguar tu contraseña del FTP no les debería permitir entrar a su cuenta de correo electrónico o cuenta de banca por Internet. Si puedes generar al azar la contraseña, aún mejor.

Seguro que te estás haciendo esta pregunta, ¿cómo se supone que voy a recordar 10 contraseñas aleatorias que tienen 12 caracteres de longitud?. La buena noticia es que no es necesario recordar todo, y, de hecho,ni siquiera deberías intentarlo. La respuesta es utilizar un gestor de contraseñas como LastPass (en línea) y KeePass 2 (sin conexión). Estas herramientas almacenan todas tus contraseñas en un formato cifrado y pueden generar contraseñas aleatorias fácilmente con sólo pulsar un botón. Los gestores de contraseñas hacen mucho más fácil usar contraseñas seguras de lo que es memorizar un par de contraseñas decentes.

  1. Un Sitio = Un Servidor, el mejor consejo para mejorar la seguridad de tu sitio web

Continuando con los 10 consejos mejorar la seguridad de tu sitio web, nos toca hablar de las instalaciones en el servidor. Entiendo la tentación, tienes un plan de alomamiento web ilimitado y te preguntas por qué no alojas tus webs en un solo servidor. Por desgracia, esta es una de las peores prácticas de seguridad que veo con frecuencia. Piensa esto, muchos sitios en el mismo lugar crea una superficie de ataque muy grande.

Por ejemplo, un servidor que contiene un sitio podría tener una instalación única de WordPress con un tema y 10 plugins que pueden ser potencialmente dirigidos por un atacante. Si aloja 5 sitios en un solo servidor ahora un atacante podría tener tres WordPress instalados, dos instalaciones de Joomla, cinco temas y 50 plugins que pueden ser objetivos potenciales. Para empeorar las cosas, una vez que un atacante ha encontrado un exploit en un sitio, la infección puede extenderse muy fácilmente.

Este resultado no sólo puede hackear todos los sitios web, al mismo tiempo, también hace que el proceso de limpieza sea mucho más lento y difícil. Los sitios infectados pueden continuar para infectar uno al otro en un bucle sin fin.

Después de que el sitio se ha limpiado correctamente, ahora tienes una tarea mucho más grande cuando se trata de restablecer tus contraseñas. En lugar de un solo sitio, tienes un mayor número de ellos. Cada contraseña única asociada a cada sitio web en el servidor debe ser cambiado después de que la infección ha desaparecido: la totalidad de tu Sistema de Gestión de Contenidos (CMS), los usuarios de base de datos, y el Protocolo de Transferencia de ficheros (FTP), para todos los sitios web. Si te saltas este paso, todos los sitios web pueden ser infectados de nuevo y puedes estar de nuevo en el punto de partida.

  1. Acceso Sensible de Usuarios para mejorar la seguridad de tu sitio web

Esta regla sólo se aplica a los sitios que tienen varios accesos. Es importante que cada usuario tenga el permiso adecuado que necesita para hacer su trabajo; si requieren permisos de escalada momentáneamente, otorgarlo, y eliminarlo una vez que el trabajo esté completo.

Tener los accesos cuidadosamente definidos limitará los errores que se pueden cometer, reduce las consecuencias de cuentas comprometidas, y pueden proteger contra el daño causado por los usuarios con mala praxis. Si la gente comparte una cuenta de usuario y se realiza un cambio no deseado por ese usuario, ¿cómo se averigua qué persona de tu equipo fue el responsable?.

Una vez que tengas cuentas de usuario separadas para cada usuario, se puede echar un ojo al comportamiento del usuario mediante la revisión de los registros y conocer su comportamiento habitual (cuando y donde acceden normalmente a la página web), para que puedas detectar anomalías y confirmar la persona cuya cuenta ha sido comprometida.

  1. Cambiar la Configuración Predeterminada del CMS para mejorar la seguridad de tu sitio web

Las aplicaciones CMS de hoy, aunque fácil de usar, son horribles desde una perspectiva de seguridad para los usuarios finales. Los ataques más comunes contra sitios web son totalmente automatizados, y muchos de estos ataques se basan en la configuración predeterminada que se utiliza. Esto significa que puedes evitar un gran número de ataques simplemente cambiando la configuración predeterminada durante la instalación del CMS.

Por ejemplo, algunas configuraciones CMS se puede elegir por el usuario, permitiendo instalar las extensiones que quieran. Hay ajustes que podemos querer ajustar para controlar comentarios, usuarios y la visibilidad de la información del usuario. Los permisos del archivo, de los cuales hablamos más tarde, son otro ejemplo de una configuración predeterminada que puede hacerse más segura.

Por lo general es más fácil de cambiar estos ajustes por defecto durante la instalación del CMS, pero se puede cambiar más adelante.

  1. Selección de Plugins para mejorar la seguridad de tu sitio web

Hay una enorme cantidad de plugins, add-ons y extensiones que proporcionan prácticamente cualquier funcionalidad que podamos imaginar. Sin embargo la realidad es que a veces la enorme cantidad de plugins puede ser un arma de doble filo. A menudo hay varios plugins que ofrecen una funcionalidad similar, así que ¿cómo saber cuál de ellos debemos instalar?. Estas son las cosas que siempre miro la hora de decidir qué plugins uso en un sitio web.

Lo primero que busco es cuándo fue la última vez que se actualizó el plugin. Si la última actualización fue hace más de un año, me preocupa que el autor ha dejado de trabajar en él. Yo prefiero usar plugins que activamente se están desarrollando, ya que indica que el autor, al menos, está dispuesto a poner en práctica una solución si los problemas de seguridad son descubiertos o denunciados. Por otra parte, si un plugin  no está soportado por el autor, entonces no tiene mucho sentido utilizarlo en nuestro sitio web, ya que puede dejar de funcionar en cualquier momento.

También me gusta mirar la edad del plugin y el número de instalaciones. Un plugin desarrollado por un autor establecido que tiene numerosas instalaciones es mucho más confiable que uno que tiene 100 instalaciones y ha sido liberado por un desarrollador por primera vez. No sólo es que el desarrollador experimentado sea más propenso de tener una buena idea acerca de las mejores prácticas de seguridad, pero son mucho menos propensos a dañar su reputación mediante la inserción de código malicioso en su plugin. Más importante aún, cuanto mayor sea la base de usuarios,  más incentivos tienen los atacantes que invertir en tratar de romperlo.

Es increíblemente importante que descarguemos todos los plugins y temas de fuentes legítimas. Hay muchos sitios que ofrecen versiones gratuitas que normalmente son de primera calidad y requieren el pago para descargar. Estas versiones gratuitas son frecuentemente infectadas con malware. Los sitios web que ofrecen estas versiones gratuitas se configuran con un solo objetivo: infectar el mayor número de sitios web como sea posible con su malware.

  1. Las Copias de Seguridad, una buena opción para mejorar la seguridad de tu sitio web

Hacer copias de seguridad de tu sitio web es muy importante, pero el almacenamiento de estas copias de seguridad en tu servidor web es un riesgo de seguridad importante. Estas copias de seguridad contienen invariablemente versiones no actualizados de tu CMS y plugins que están a disposición del público, dando a los hackers la oportunidad de acceder fácilmente a tu servidor.

  1. Los Archivos de Configuración del Servidor, imprescindible para mejorar la seguridad de tu sitio web

Los servidores web Apache utilizan el archivo .htaccess, servidores Nginx utilizan nginx.conf y Microsoft IIS servidores utilizan web.config, muy a menudo se encuentran en el directorio web raíz. Estos archivos son muy poderosos, ya que nos permite ejecutar reglas del servidor, incluidas las directivas que mejoran la seguridad de nuestro sitio web.

Hay algunas reglas que te recomiendo investigar y añadir a su servidor web en particular:

  • Prevenir la exploración de directorios: Esto evita que usuarios malintencionados puedan ver el contenido de cada directorio en el sitio web. La limitación de la información a disposición de los atacantes es siempre una medida de seguridad muy útil.
  • Evitar hotlinking de las imágenes: Como esto no es estrictamente una mejora de la seguridad, si impide a otros sitios web que muestren las imágenes alojadas en su servidor web. Si la gente comienza a hacer hotlinking de las imágenes de tu servidor, la asignación de ancho de banda de tu plan de alojamiento puede ser rebajado de forma rápida mostrando imágenes para el sitio de otra persona.
  • Proteger los archivos sensibles: Puedes establecer reglas para proteger ciertos archivos y carpetas. Los archivos de configuración CMS son de los archivos más sensibles almacenados en el servidor web, ya que contienen los datos de inicio de sesión de la base de datos en texto plano. También puede haber otros lugares que se pueden bloquear, por ejemplo, áreas de administración.
  1. Instalar SSL para mejorar la seguridad de tu sitio web

En realidad no sé si procede o no incluir este punto porque ha habido muchos artículos indicando que la instalación de SSL va a resolver todos los problemas de seguridad. SSL no hace nada para proteger tu sitio contra cualquier ataque malicioso, o que tu sitio deje de distribuir malware. SSL encripta la comunicación entre el Punto A y el Punto B (el servidor web y el navegador). Este cifrado es importante por una razón específica: se impide que alguien pueda ser capaz de interceptar ese tráfico, conocido como un ataque de Hombre en el Medio(Men In The Middle).

Sin embargo, SSL es especialmente importante para la seguridad de un sitio web de comercio electrónico y cualquier sitio web que acepte envíos de formularios con datos del usuario sensibles o información de identificación personal (PII). El certificado SSL protege la información de los visitantes en tránsito.

  1. Permisos de Archivo para mejorar la seguridad de tu sitio web

Los permisos de archivo definen quién puede hacer qué en un archivo.

Cada archivo tiene 3 permisos disponibles y cada permiso está representado por un número:

  • Leer (4): Ver el contenido del archivo.
  • Escribir (2): Cambiar el contenido del archivo.
  • Ejecutar (1): Ejecutar el archivo de programación o script.

Si deseas permitir varios permisos sólo tienes que sumar los números, por ejemplo, Para permitir leer (4) y escribir (2) se establece el permiso de usuario a 6. Si desea permitir a un usuario leer (4), escribir (2) y ejecutar (1), entonces se establece el permiso del usuario a 7.

También hay 3 tipos de usuarios:

  • Propietario: Por lo general, el creador del archivo, pero esto se puede cambiar. Sólo un usuario puede ser el propietario.
  • Grupo: Cada archivo se le asigna un grupo, y cualquier usuario que forma parte de ese grupo obtendrá estos permisos.
  • Público: Todos los demás.

Por lo tanto, si deseas que el propietario tenga acceso a leer y escribir, que el grupo tenga acceso de sólo lectura, y el público que no tenga acceso, el archivo de configuración de permisos deben ser:

ESCRITURALECTURAEJECUTAR
Propietario 244
Grupo 040
Público 000

Al ver los permisos de archivo de éste se mostrará como 640.

Las carpetas también tienen la misma estructura de los permisos.

La mayoría de instalaciones de CMS tiene todos los permisos configurados correctamente de forma predeterminada. Si buscas en internet soluciones a los errores de los permisos, encontrarás personas que asesoran cambiar los permisos de archivo a 666 o de las carpetas a 777. Este consejo suele corregir los errores de permisos, pero es un mal consejo desde una perspectiva de seguridad. Si estableces un permiso de archivo a 666 o permiso de carpeta a 777,  ¡acabas de permitir que cualquiera pueda insertar código malicioso o borrar stus archivos!

Conclusión

Así que ahí lo tienes, 10 pasos relativamente simples que puedes tomar para mejorar drásticamente la seguridad de tu sitio web. Pero estas medidas por sí solas no garantizan que tu sitio nunca sera hackeado, siguiéndolos detendrán la gran mayoría de ataques automatizados, reduciendo tu situación general de riesgo.

Ser consciente de estos problemas y comprenderlos, te proporcionará información valiosa sobre cómo funciona la tecnología subyacente y te ayudará a ser un mejor administrador de tu sitio web.

Actualización IMPORTANTE de este artículo

He recibido un correo electrónico de Madeline, una lectora del blog, me avisa de que ha estado utilizando LastPass para generar contraseñas, pero que no le ha dado un buen resultado. Continua el mensaje diciendo que ha estado investigando y ha encontrado una herramienta online que da mejores resultados que LastPass. La herramienta la podéis encontrar aquí.

Muchas gracias Madeline por tu aportación, he utilizado la herramienta y parece muy sencilla y bastante segura, seguro que cambiaré mi generador de contraseñas. Muchas gracias de nuevo.

Artículos relacionados

Respuestas

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *