Diario de León

Innova

Proteger a los sistemas

Vulnerables. Las condiciones de carrera son una gran amenaza para los sistemas de información y cada vez más investigadores trabajan en atajarlas. Una de las últimas investigaciones es el desarrollo de una librería para detencción de Toctou en entornos Linux.

El ingeniero informático se ha centrado en la vulnerabilidad Toctou. FERNANDO OTERO

El ingeniero informático se ha centrado en la vulnerabilidad Toctou. FERNANDO OTERO

León

Creado:

Actualizado:

«La evidencia de la creciente importancia de la ciberseguridad se pone de manifiesto con la gravedad de los incidentes que ocurren. Quienes nos dedicamos a ello y estamos en el ‘lado bueno’ somos conscientes de que tenemos que ganar la batalla siempre, a los delincuentes les vale con ganarla una vez. Con la dificultad de que en el mundo digital no hay forma de identificar y rastrear al ciberdelincuente». Atajar una de esas vías de ataque centra la investigación que ha realizado el ingeniero informático Razvan Raducu, bajo la dirección de Ricardo J. Rodríguez, en su Máster Universitario en Investigación en Ciberseguridad, del Departamento de Matemáticas de la Universidad de León. En el que ha desarrollado una librería de usuario para detección de Toctou en entornos Linux.

«Imagine que un día va a ver los números de su banco y está todo a O, y con su DNI han cometido varios delitos. ¿De quién es la culpa? En el mundo digital el número de vectores de ataque es inmenso. Puede ser que hayan infectado el dispositivo desde el que ha accedido y le hayan robado las credenciales, que los servidores de la entidad bancaria no estuvieran actualizados, que los ciberdelincuentes hayan aprovechado una vulnerabilidad desconocida hasta ese momento, que esté infectado el punto de acceso desde el que se conecta a internet... La casuística es inmensa y por eso cada vez más personas se dedican a desarrollar soluciones que protejan los sistemas».

Porque, recuerda Raducu, «los ataques se producen a todas horas y sabemos que ningún sistema es invulnerable. Lo que debemos hacer es aunar esfuerzos, ideas y financiación para hacer que lleve tanto tiempo romper los sistemas que no sea rentable para los atacantes hacerlo».

Uno de los numerosos vectores de ataque son las propias aplicaciones que se ejecutan en los equipos. «Son vulnerables porque cuando se desarrollan el código fuente contiene fallos. En uno de esos fallos nos hemos centrado en este trabajo: las vulnerabiliades conocidas como condición de carrera». Documentadas desde hace más de 40 años, siguen presentes en las que se desarrollan ahora. Y son una gran amenaza porque cuando un atacante consigue aprovecharse de una de ellas puede hacer daño de múltiples formas, desde denegar el servicio hasta escalar privilegios. Es decir, que «un usuario con muy pocos permisos dentro de un sistema, como un cliente al conectarse a la banca on line, consiga explotando esa vulnerabiliad los permisos de otro usuario como podría ser el director del banco. No estaría nada mal poder manipular las cifras de la entidad, hacer una transferencia de un par de millones a un amigo sin levantar sospechas,...»

Las condiciones de carrera «surgen cuando distintos elementos activos dentro de un sistema, como varios procesos, modifican de forma simultánea un recurso común, como podría ser un fichero, y el estado final del fichero depende del orden de estas modificaciones». Esta situación surge en muchos ámbitos de la computación, como la programación concurrente, los protocolos de red o las operaciones que el sistema operativo hace sobre el disco duro. «Son tan peligrosas y se producen en tantos ámbitos que es difícil encontrar una solución general que ponga fin a todas las vulnerabilidades. Lo lógico es centrarse en un tipo concreto de condición de carrera; y más que tratar de solucionarlo hacer que su explotabilidad sea más difícil o las consecuencias de la vulnerabilidad menores».

«Divide y vencerás, eso es lo que hemos hecho en nuestra investigación». Que se centra en las condiciones de carrera que surgen en las operaciones con los ficheros. «En las operaciones de entrada y salida, que a la hora de leer o escribir se encuentran en el disco duro. Con el objetivo de que sea más difícil explotar las vulnerabilidades o que sus consecuencias sean menores, porque se ha estudiado durante mucho tiempo y no hay una solución definitiva, ya que depende de factores externos».

Depende, por ejemplo, de la carga del sistema en el momento de la ejecución del programa vulnerable, de cómo está configurado el sistema operativo y sus variables de entorno, incluso de la potencia que tenga el procesador del equipo o la ejecución de ciertas operaciones sobre los ficheros. Son variables de la ecuación que están fuera del control de los defensores en el momento de plantear una solución».

Ya que no es posible adelantar qué tipo de vulnerabilidad se va a explotar ni cuánto puede tardar el atacante, los investigadores trabajan en hacer que el tiempo necesario para romper el sistema sea más largo.

En el caso de la investigación de Razvan Raducu se ha centrado en la vulnerabilidad Toctou (Time of check to time of use, Tiempo de comprobación a tiempo de uso). «Son especialmente complicadas y un reto desde el punto de vista de su estudio, pues su reproducción es mucho má difícil. En un entorno controlado, con la misma versión del sistema operativo, los mismos programas instalados, el mismo equipo, las mismas especificaciones de hardware,... no habrá dos intentos de explotación iguales. Y puede que en un intento se tarde dos minutos en aprovecharse de la vulnerabilidad y en el siguiente una semana, porque el sistema en paralelo está ejecutando múltiples procesos».

Respecto a la vulnerabilidad Toctou, el investigador señala también que es «transversal, afecta a las dos familias de sistemas operativos más usadas en la actualidad, Windows y Linux. Nos hemos centrado en Linux porque es de los más usados».

La vulnerabilidad permite a los atacantes manipular ficheros con información sensible, como por ejemplo los que guardan las contraseñas de los usuarios. «Imaginemos un programa de edición de texto, se abre un documento y comienzas a escribir en él, y luego se guarda. Al abrir el documento el sistema comprueba que existe, y cuando se escribe que es en el documento indicado. Pero las operaciones no se llevan a cabo sin interrupciones, sino con lo que se denomina una operación atómica. Esto significa que otro usuario con los permisos suficientes puede manipular el fichero después de que el programa vulnerable lo haya abierto, pero antes de que escriba en él».

Un ejemplo para mostrar cómo puede actuar quien consiga privilegios elevados en un sistema, a los que sólo sus administradores pueden acceder en teoría. «La dificultad está en detectar esta clase de fallos en los programas, tanto para los delincuentes como para quienes tratan de proteger sus sistemas». Y puede ser que el delincuente robe en minutos toda la información y pierda el interés por la máquina, o que lleve a cabo alguna operación que le asegure que la máquina permanecerá comprometida en el tiempo, «al menos hasta que alguien se dé cuenta o pase algo».

La solución planteada e implementada por el trabajo de Raducu «consiste en un proceso que se ejecuta en todo el sistema operativo y que vigila todas las interacciones que los demás procesos llevan a cabo con los ficheros que hay en el disco. Cada operación que un proceso realice sobre un determinado fichero es supervisada y registrada, guardando ciertos atributos acerca del estado del fichero después de la operación». Este proceso «nos permite identificar cambios en los ficheros, por ejemplo que un fichero común se convierta en un acceso directo. En nuestra solución todos los cambios sobre ficheros que haga un determinado proceso con registrados y se comprueban antes de todas las operaciones. Eso significa que la solución comprueba si el fichero en el que se va a escribir es exactamente el mismo que se cerró en la operación anterior. Si ha habido algún cambio, significa que se ha producido por un proceso externo y podría haber un intento de vulnerabilidad».

La solución propuesta «sería capaz de detectar esta situación y abortar el programa vulnerable para proteger el sistema. Desafortunadamente no es una solución definitiva, pues el ciberdelincuente podría sobrecargar el sistema y hacer que las comprobaciones fueran muy lentas, lo que daría pie a manipular el sistema de ficheros en el momento oportuno y engañar, a su vez, a nuestra solución».

Además, Raducu reconoce que «securizar un sistema o una aplicación muchas veces conlleva un impacto negativo en su rendimiento, ya que hay que realizar más operaciones. Esto, para el usuario final, es un trastorno, porque supone que algo que puede cargarse en 3 segundos tarde 10. Sin embargo, todos queremos que nuestros sistemas sean seguros y no nos damos cuenta del riesgo bajo el que vivimos hasta que no nos afecta. En ese momento no nos importa esperar 10 segundos antes de que nos roben». Otro inconveniente puede ser que requiere una contraseña más compleja, o que requiera un código que se recibe mediante sms.

tracking