Seguridad Web, compromiso de todos
Un día nos levantamos, vamos directo a la PC a visitar nuestra nueva web de la cual estamos tan orgullosos y nos damos con la sorpresa de que la página inicial ha sido reemplazada por un horrible mensaje, en pocas palabras hemos sido hackeados, esto sucede todos los días a lo largo y ancho de Internet,
Cuando algo como esto sucede, la primera reacción es culpar al proveedor de hosting, sin embargo el problema es mucho más complejo de lo que parece y el usuario puede tener también su cuota de responsabilidad, para entenderlo, vamos a analizarlo desde 3 puntos de vista diferentes, el Cliente, el Proveedor y los desarrolladores de software.
El Cliente
Para el cliente, la seguridad debe ser transparente, el cliente no sabe y no le interesa saber acerca de parches, permisos de directorios, actualización de aplicaciones, esto normalmente escapa al alcance y comprensión del cliente, típicamente lo que sucede es que el cliente instala algún CMS y se olvida de el por varios años, honestamente creo que así debería ser, sin embargo la aplicación debería ser lo suficientemente inteligente para actualizarse y parchearse por si misma, tal y como lo hace Windows o las aplicaciones de escritorio.
Lamentablemente en la práctica no sucede así, las aplicaciones no son lo suficientemente seguras y es normal que requieran de parches y actualizaciones constantes, si el usuario falla en estos upgrades o parches se expone a problemas de seguridad.
El proveedor de Hosting
Los proveedores de hosting quizas lleven la peor parte en este problema de seguridad, somos los que a la final tenemos que invertir tiempo y dinero en proteger aplicaciones desarrolladas con poca seguridad y proteger a los clientes, a veces incluso de ellos mismos.
Es cierto que un proveedor puede mejorar la seguridad general, pero si la aplicación es insegura por diseño o si el cliente comete errores como crear passwords inseguros, etc, tarda o temprano tendrá problemas de seguridad sin importar el nivel de seguridad del servidor.
Los proveedores de hosting deben gastar en firewalls, firewalls de aplicaciones, Detectores de Intrusión, etc, en algunos casos el proveedor utiliza componentes especializados a nivel de red para esta labor, otras veces los paquetes de seguridad son instalados directamente en los servidores de hosting, pero hay un problema, estos equipos cuestan tiempo y dinero, además los sistemas de seguridad instalados en los servidores utilizan ciclos de CPU, todo esto eleva los costos de hosting para el cliente final.
Los Desarrolladores de Software
Para ver la dimensión del problema basta visitar el popular sitio de seguridad http://secunia.com/advisories/ y se darán cuenta mas de 100 vulnerabilidades son reportadas en las aplicaciones CADA SEMANA, el problema radica en que si un desarrollador de sofware lanza una aplicación insegura y por este fallo los clientes son hackeados, nada sucede para el desarrollador, el cliente se quedará con su sitio web arruinado (con el perjuicio de imagen y económico que ocasiona) el proveedor perderá tiempo limpiando la infección, parcheando los agujeros del software, pero el proveedor nada… solo recibiremos un correo electrónico indicando que han descubierto una vulnerabilidad y están trabajando en un parche que la solucionará y listo.
¿Quiero decir con esto que son los Desarrolladores de Software los culpables de la inseguridad?
No, pero es obvio que tienen una buena cuota de responsabilidad, en pocas palabras, la seguridad dependerá de Desarrollador – Cliente – Proveedor
El cliente debe ser consciente que sus acciones pueden ocasionar problemas graves de seguridad, ser prudente a la hora de escoger las aplicaciones, indagar acerca del historial de seguridad de la aplicación y sobre todo mantenerlas actualizadas, seguir las instrucciones del proveedor y Desarrollador para la seguridad de las aplicaciones.
El proveedor debe trabajar junto con el cliente, en detectar posibles agujeros de seguridad y educar al cliente acerca de los peligros de las aplicaciones inseguras.
Caso de la vida real:
Recientemente el caso de un cliente de España, quien en términos bastante fuertes y poco educados nos reclamaba que su aplicación había sido hackeada por segunda o tercera vez en un año, si bien puedo entender la molestía y frustración del cliente (aunque no comparto la forma del reclamo, llegando hasta amenazarnos con postear en todos lados “lo incompetentes que somos” y llevar los insultos a nivel personal) este mismo cliente cada vez que sucedía un problema de seguridad solo restauraba el sitio desde backups y no se actualizaba la aplicación a pesar de que se le notificó que debía hacerlo, por supuesto si hay un problema de seguridad, los backups también tienen el problema y no lo van a remediar, tarde o temprano volverá a suceder el problema.
El problema se evitaba de raíz con tan solo haber seguido un simple consejo “Actualizar su aplicación”
¿Que hacer en caso de tener un problema de seguridad?
Debe contactarnos inmediatamente y no tocar o cambiar ningún archivo, lo que hacemos al recibir una notificaciónes:
- Creamos una imagen de los archivos del cliente
- Recopilamos los logs
- Reconstruimos la intrusión, usando la imagen
De esta forma entendemos como sucedió y podemos realizar sugerencias, ajustes o alertas, en muchos casos alertamos directamente al desarrollador si es una vulnerabilidad no documentada o trabajamos con el cliente para corregir el agujero.
Related posts:
- Seguridad en PHP PHP es a menudo la fuente de dolores de cabeza...