2.8 El sistema es tan seguro como el eslabón más débil

2.8 El sistema es tan seguro como el eslabón más débil

Capítulo publicado el 11/4/2022 por Enric Caumons Gou (@caumons)
  • 9 min de lectura

La seguridad informática es un tema muy serio y muy importante que nos afecta a todos. Hay empresas que invierten ingentes cantidades de dinero para hacer que sus sistemas sean más seguros, pero luego tienen descuidos fatales que las pueden arruinar, literalmente hablando. En este capítulo voy a repasar algunas malas prácticas y algunas posibles medidas para corregirlas. No obstante, no voy a entrar en detalles técnicos, ya que existe muchísima bibliografía acerca de seguridad informática. En su lugar, hablaré principalmente de problemas de seguridad debidos a errores humanos y es que nunca hay que subestimar la estupidez de las personas.

Empezaré por el principio recordando que hay que tener al día las actualizaciones de seguridad, usar un buen antivirus (si es necesario en tu sistema), no acceder a sitios peligrosos, ni descargar y mucho menos ejecutar archivos de lugares sospechosos. Además, hay que usar contraseñas seguras (que contengan mayúsculas, minúsculas, números y símbolos) e incluso cambiarlas periódicamente. Tampoco olvides crear copias de seguridad para poder recuperar tus archivos en caso de necesidad.

Precaución, amigo conductor

Probablemente hayas visto alguna vez (o incluso has tenido o tienes) notas pegadas en monitores, encima de la mesa o incluso debajo del teclado («para mayor seguridad») con usuarios, contraseñas y los sistemas a los que corresponden. Efectivamente, los ingenieros y matemáticos se rompen los cuernos para conseguir desarrollar sistemas de cifrado seguros e infranqueables, mientras que los usuarios dejan las contraseñas escritas en notas a la vista de todo el mundo. Esto es como comprar el mejor sistema de alarmas antirrobo y dejar las llaves puestas en la cerradura de la puerta principal… Evidentemente, esto no hay que hacerlo.

Otras prácticas incluyen el envío de credenciales por correo electrónico sin cifrar y con todos los datos. Por ejemplo, escribir la URL donde hay que acceder, el usuario y la contraseña. Una alternativa «un poco más segura» consiste en enviar los datos mediante correos independientes. Aunque no es garantía de gran seguridad, al menos no es tan evidente y si tienen acceso a uno de estos emails no podrán acceder porque tendrán la información incompleta. Por supuesto, otra alternativa más segura consiste en enviar los correos cifrados, por ejemplo, usando GPG. Y, si quieres otra opción más, también puedes usar un servicio online como OneTimeSecret para compartir enlaces (URL) con información confidencial, a los que solo se puede acceder una vez durante un lapso de tiempo determinado, antes de que sean eliminados permanentemente.

Repite conmigo: «No usaré las contraseñas por defecto». En serio, cámbialas. Existen herramientas que pueden obtener tu clave del router wifi en pocos segundos si estás usando la que viene de fábrica y que suele estar impresa en una etiqueta del dispositivo. Si la cambias y pones una contraseña segura la cosa ya se complica bastante más, por lo tanto, es una buena medida a tener en cuenta. Algo similar ocurre con las cámaras IP. De hecho, hay webs que muestran imágenes de cámaras hackeadas que usan las credenciales por defecto, con lo cual, mucho cuidado.

También es común guardar credenciales en hojas de cálculo o ficheros de texto sin ningún tipo de protección. Además del riesgo que esto conlleva, también puede haber duplicidad de datos que puede hacer que se vuelvan obsoletos sin saberlo. Imaginemos que existan sistemas a los que haya varios usuarios que accedan mediante usuarios genéricos en vez de nominales (lo cual no suele ser muy seguro). Si por algún motivo se cambia la contraseña y cada una de estas personas la tenía escrita en un fichero llamado «contraseñas.txt», entonces la próxima vez que la consulten estarán accediendo a una información obsoleta y ya no tendrán acceso. Por lo tanto, lo ideal es usar programas gestores de contraseñas, que nos permiten almacenar, organizar y compartir las credenciales de forma segura. De esta manera, solo las personas autorizadas pueden acceder y/o modificar las credenciales para las cuales tengan los suficientes permisos.

Respecto a las credenciales, también me gustaría recordar que un gran poder conlleva una gran responsabilidad. Por lo tanto, hay que tener muchísimo cuidado con qué personas tienen según qué permisos o credenciales. A veces, no tener ciertos privilegios puede contribuir a que duermas más tranquilo porque en el caso de que haya algún problema no te podrán culpar a ti, debido a que sencillamente «no tienes permisos».

Por supuesto, hay que retirar el acceso a las personas que ya no deberían tenerlo, por ejemplo, a exempleados. Esto que parece tan obvio no siempre se hace y la consecuencia directa es que podrían continuar accediendo a los sistemas incluso años después. Además, por desgracia, también es típico que usuarios creados para hacer pruebas de forma puntual no sean eliminados y queden activos por los siglos de los siglos.

Los pendrives también pueden ser una fuente de filtración de información sensible, ya que muchas veces guardamos ficheros y luego ni nos acordamos de que los teníamos allí. ¿No te ha pasado que alguna vez has dejado un pendrive a alguien y cuando te lo ha devuelto te has dado cuenta de que tenías ficheros allí con información que no querías que viera? Por ejemplo, tus fotos o tu nómina del mes pasado. Por lo tanto, cuidado con difundir documentos importantes en soportes que no controlamos.

Parece increíble, pero dicen que la forma más fácil de introducir malware en los sistemas informáticos de una empresa consiste en dejar unos cuantos pendrives tirados en el parking. Si además estos tienen el logo de la empresa en cuestión, entonces la probabilidad de que sean recogidos y conectados a los ordenadores de la empresa es muchísimo mayor. Una vez más, vemos cómo las personas seguimos siendo el eslabón más débil.

Además de todo lo dicho, es muy importante cerrar las sesiones abiertas, principalmente cuando usamos dispositivos que no son nuestros. Dejar las sesiones abiertas en sistemas compartidos por múltiples usuarios es como dejar el coche aparcado abierto y con el motor encendido. Ten mucho cuidado porque no serías el primero que ha tenido problemas por dejarse una sesión iniciada. Para curarse en salud, es mejor iniciar sesión desde ventanas de incógnito en los navegadores web, de esta forma, te aseguras de que tus sesiones no se van a quedar abiertas cuando cierres el navegador y te puedes ahorrar disgustos.

Probablemente hayas oído hablar de la ingeniería social, mediante la cual se obtiene información confidencial a través de la manipulación de usuarios legítimos. Por ejemplo, imaginemos el caso en el que una persona llama a la oficina con un tono de voz muy exaltado, exigiendo tener acceso para entrar en el servidor X porque ha habido un problema muy grave que requiere una solución inmediata. El operador le indica amablemente que no está autorizado para darle esa información. Entonces, el estafador le amenaza pidiéndole su identificación y diciéndole que va a poner una queja formal a su superior debido a que se está negando a facilitar un procedimiento urgente de resolución de crisis y bla, bla, bla… Al final, el operador le acaba dando las credenciales porque tiene miedo a las represalias y a perder su empleo por entorpecer una tarea tan importante para la empresa… Lamentablemente, hay muchísimos otros tipos de estafas de phishing, por ejemplo, los correos electrónicos donde se piden las credenciales del banco, tiendas online falsas, SMS fraudulentos, etc. Así pues, en todos los casos entran en juego la precaución y el sentido común, no debemos dar las credenciales a quien no tiene autorización para tenerlas ni sacar la cartera a la primera de cambio.

Seguramente te habrás fijado en que hay sitios web donde la URL está precedida por «https» y pone que «la conexión es segura». En cambio, hay otros que funcionan con «http» y «la conexión no es segura». Hay que ir con mucho cuidado porque esta simple «s» indica si la comunicación entre tu dispositivo y el servidor es segura (no que el sitio web sea de fiar). Dicho de otra forma, si navegas por una web que funciona con HTTPS, la información viaja cifrada, en caso contrario, no. Por ejemplo, si envías un formulario con tus credenciales para iniciar sesión en una web que funciona con HTTP, estos datos se pueden ver directamente con programas que capturan los paquetes de las redes wifi y de esta forma podrían hackearte la cuenta, siempre y cuando el atacante tenga acceso a la red donde estás conectado.

Hay que extremar las precauciones al conectarnos a redes abiertas que no conozcamos (del tipo «Internet gratis» o similar), porque no sabemos de dónde proceden ni si hay alguien detrás con malas intenciones. En mi caso, prefiero compartirme la conexión a Internet desde el teléfono móvil al portátil, antes que conectarme a redes abiertas desconocidas, por razones de seguridad.

Medidas de seguridad básicas

Es realmente importante que las comunicaciones estén cifradas, en caso contrario, se pueden analizar los paquetes y obtener su «payload», es decir, los datos reales que contienen. De esta forma, si se va capturando el tráfico, se pueden empezar a detectar patrones y mediante ingeniería inversa descubrir cómo funciona el protocolo de comunicaciones de la aplicación en concreto. Una vez conocido, se pueden llegar a hacer peticiones falsas, simulando ser un cliente legítimo. En muchos casos, hackean dispositivos precisamente por este motivo, las comunicaciones se hacen sin cifrar y se pueden leer los paquetes enviados entre el cliente y el servidor. Imagínate el resto…

Hay otros casos en los que, por ejemplo, se emplean algoritmos realmente complejos para generar códigos de acceso. No hay forma de saber crear estos códigos porque el procedimiento para hacerlo es realmente sofisticado y hacer ingeniería inversa no es factible. No obstante, hay ocasiones en las que aun no teniendo idea de cómo generarlos, simplemente se pueden copiar y usar directamente. Para que esto sea posible, el sistema que lee estos códigos solo tiene que verificar que el código en sí sea correcto y nada más. Ahora bien, si está conectado a una red (intranet o Internet) y verifica si el código ya está siendo usado, o si ya se ha usado un número limitado de veces, entonces ya no funcionaría.

A nivel de desarrollo, hay API de aplicaciones que exponen identificadores numéricos autoincrementales, que normalmente corresponden con los identificadores en la base de datos. Esta práctica hace que se pueda saber el número de registros que hay, el ritmo al que se generan, el orden en el que fueron creados, e incluso permite inferir cuáles serán los próximos identificadores de los nuevos elementos. En consecuencia, personas malintencionadas podrían generar URL para estos recursos de forma automatizada y realizar peticiones masivas sobre ellos, mayormente en el caso de API diseñadas para uso público (no interno). Una posible solución puede ser el uso de campos únicos de tipo alias o slug, o bien usar identificadores únicos universales, llamados UUID, de forma que no se puedan generar URL válidas a partir de una que sea conocida.

Dicho todo esto, me gustaría añadir que dejar la revisión del cumplimiento de las medidas de seguridad para el final es una mala idea, ya que debería hacerse paralelamente al desarrollo de los proyectos. De este modo, evitaremos sorpresas desagradables a última hora o, peor aún, que las vulnerabilidades sean descubiertas y explotadas por atacantes una vez tengamos nuestros sistemas en producción. Aun así, ten presente que la seguridad absoluta no existe.

Acceso a sistemas ¿seguros?

En una empresa en la que trabajé, tenían múltiples sistemas y para poder acceder a cada uno de ellos tenías que introducir unas credenciales distintas. Lo malo es que estos sistemas eran totalmente independientes entre ellos y el usuario y la contraseña eran diferentes para cada uno. Se quería homogeneizarlo para que el acceso a las distintas herramientas fuera más ágil, así que se acabó implantando un sistema de autenticación mediante LDAP. De esta forma, se dan de alta los usuarios en una base de datos centralizada y se les asignan los accesos que corresponda a los sistemas que están integrados dentro del LDAP. El nivel de privilegios dentro de cada aplicación ya depende de cada una de ellas porque el servidor de LDAP solo se encarga de que puedan iniciar sesión exclusivamente donde les corresponda, usando las mismas credenciales para todos los sistemas.

Contrariamente, hay gente que cree que los sistemas más seguros son aquellos a los que no puede acceder nadie, ni siquiera los usuarios legítimos. Imagínate dos cámaras acorazadas de máxima seguridad, una con puerta y la otra sin. ¿Cuál es la más segura? La que no tiene puerta, sencillamente porque no hay forma de abrirla. ¿Cuál es completamente inútil? La que no tiene puerta, porque no se puede usar. Algo muy parecido me ha sucedido en múltiples ocasiones, trabajando en entornos considerados «seguros», donde todos los accesos están cerrados y no puedes acceder a ningún sitio. Para que te den autorización, tienes que seguir largos y complejos procedimientos burocráticos infernales, que te pueden llegar a quitar hasta las ganas de vivir. Pero eso no es todo porque, una vez te han concedido los permisos necesarios, no te proporcionan ningún tipo de documentación actualizada acerca de dónde conectarte, cómo hacerlo, qué programas tienes que usar ni qué tipo de configuración se requiere.

Si bebes, no uses un ordenador

Si bien el título de este apartado puede sorprender, probablemente, en alguna ocasión has eliminado por error algún archivo importante, has enviado algún mensaje, foto, vídeo, audio o archivo a la persona o grupo equivocados, o bien has enviado un correo electrónico con información sensible a un destinatario erróneo. Esto significa que, al usar un ordenador o un dispositivo móvil, debemos prestar atención y no tomárnoslo a la ligera. De este modo, evitaremos cometer errores imprudentes que pueden afectar a nuestra reputación o a la de los demás, causar conflictos, o incluso comprometer la seguridad y el buen funcionamiento de nuestros sistemas.

Para terminar, permíteme recordar que, si pones una puerta acorazada en una pared de cartón, es más fácil agujerear la pared que echar la puerta abajo. Lo mismo pasa con la informática y lo acabamos de ver con algunos ejemplos muy gráficos, por lo tanto, usa la cabeza, sé precavido y ten mucho cuidado.

¡Únete a la comunidad para no perderte nada!

¡Quiero unirme!

¿Qué te ha parecido este capítulo?

¡Compártelo!

¡Suscríbete al feed para estar al día cada vez que se publique un nuevo capítulo!

Comprar libro

${ commentsData.total }

Todavía no hay comentarios. ¡Sé el primero!

Inicia sesión para publicar, responder o reaccionar a los comentarios.

Esta web utiliza cookies. Si continúas usándola, asumiremos que estás de acuerdo.