Charla sobre Seguridad & Umbraco: Cómo protegerse contra hackers

El Codegarden es un evento anual donde la comunidad Umbraco se encuentra para mejorar sus conocimientos sobre el CMS. Se lleva a cabo en Odense, Dinamarca, durante el mes de mayo. Parte de nuestro equipo en Novicell asistimos a ese evento, y en este post hacemos un repaso de la charla que impartió Jeffrey Shoemaker sobre seguridad.

Seguridad & Umbraco:  Cómo protegerse contra hackers

La importancia de la seguridad

La seguridad trata sobre defensa en varias capas, no solo tener un buen firewall o las cabeceras HTTP correctas. Cada capa de protección dificulta más la tarea a un potencial hacker intentando entrar al sistema, incrementando las posibilidades de que decida cambiar de objetivo. Es importante recordar que no es necesario tener el sitio web más seguro del mundo, sino ser más seguro que la mayoría de sitios.

En los últimos meses han salido diferentes noticias sobre grandes fallos de seguridad, que han comprometido sistemas por todo el mundo. Ahora más que nunca debemos ser conscientes de la vital importancia de la seguridad en sistemas expuestos a Internet como son los CMS.

Pasos a seguir para mejorar la seguridad en Umbraco

La configuración por defecto de Umbraco está pensada para encontrar un balance entre seguridad y facilidad de uso. Como paso inicial está genial, pero hay algunos simples pasos que podemos hacer para incrementar aún más la seguridad de nuestro CMS.

 

1. Oculta qué tecnología estás usando

Este paso se puede aplicar a cualquier CMS ya que no depende directamente de Umbraco. El primer paso que realiza siempre un hacker es detectar que tecnología está usando un posible objetivo (incluido el número de versión).

Con esa información es posible ir a bases de datos de fallos de seguridad y encontrar una entrada al sistema. Estos fallos de seguridad han sido probablemente solucionados varias versiones atrás, pero en caso de encontrarse con una web que no actualice regularmente su sistema, la vulnerabilidad seguirá ahí lista para ser aprovechada.

El primer cambio que vamos a hacer es limitar el acceso a la página de login de Umbraco al cliente, usando reglas de IIS para que solo ciertas direcciones IP puedan acceder a /umbraco/.
En caso de que el cliente tenga IP dinámica, como suele ocurrir, basta con limitar las IPs al rango del país donde ese cliente opera. Los rangos definidos para cada país son muy grandes, pero gracias a este cambio ya hemos limitado acceso a un gran número de potenciales atacantes.

 

umbraco seguridad

 

Este cambio producirá una página de error cuando un usuario con una IP no permitida intente entrar en /umbraco/, pero si vemos ese error cuando entramos en la página, ya sabemos que muy probablemente esté usando Umbraco como CMS.

Para realmente ocultar la tecnología en uso debemos cambiar la página de login. Umbraco permite hacer este cambio muy fácilmente, solo hay que cambiar algunas líneas de app settings del archivo web.config y renombrar la carpeta Umbraco del proyecto al nuevo nombre que le hayamos dado.

 

umbraco login

 

Con este último cambio, un usuario que intente entrar a /umbraco/ verá una página de error 404: página no encontrada, así que le resultará imposible saber si estamos usando Umbraco o no.

 

2. Oculta qué paquetes de Umbraco estás usando

Las carpetas de los paquetes instalados, por ejemplo Umbraco Forms, son siempre públicas por defecto. Esto hace que cualquier usuario de nuestra web pueda, desde fuera del CMS, ver el contenido de estos archivos.

umbraco forms

Visto esto, nuestro siguiente paso es también ocultar qué paquetes estamos usando en nuestro CMS. Para ello vamos a hacer el mismo cambio que el paso anterior, pero esta vez para las carpetas App_Plugins, Config y finalmente Umbraco_Client. Estas carpetas nunca sirven contenido para la web pública, solo el CMS, así que no tienen por qué ser públicas.

 

3. Mantén Umbraco & sus paquetes actualizados

En caso de que todas nuestras protecciones fallen y alguien acabe accediendo a nuestro sistema, la única manera de protegernos es no tener ninguna vulnerabilidad conocida en nuestro sistema. Para ello es crucial mantener, no solo Umbraco en si, sino todos sus paquetes completamente al día. Si esta tarea se realiza periódicamente no conlleva mucho tiempo, e incrementa mucho la seguridad de nuestro sitio.

Como ejemplo, podemos volver a Umbraco Forms, uno de los paquetes de Umbraco más utilizados. Hace unas semanas se descubrió un fallo de seguridad crítico en ese paquete, y fue solucionado inmediatamente en la siguiente versión. La actualización es muy pequeña, por lo tanto no conlleva mucho tiempo, e incrementa la seguridad del sitio web contra amenazas conocidas.

 

Para terminar, os dejamos el vídeo de la charla entera "Seguridad - Divirtámonos con Umbraco" para que podéis disfrutarla igual que lo hicimos nosotros: