La condición de carrera o race condition es un tipo de vulnerabilidad bastante frecuente.Estos errores son producidos en situaciones de concurrencias de varios hilos en las que se compite por los recursos que proporciona el sistema operativo.Bajo estas condiciones hay ocasiones en las que se presentan situaciones en las que dos o más procesos tienen que leer o escribir en un área común que comparten.En estos casos se deberían tomar las precauciones necesarias para que las acciones llevadas a cabo por cada recurso fuesen atómicas, sin embargo, hay ocasiones en las que no los son, ocasionando datos inconsistentes o dejando en ocasiones abierto un intervalo de tiempo en el que un atacante podría obtener privilegios, leer y escribir sobre ficheros protegidos.Un ejemplo muy sencillo de lo que es una condición de carrera lo vemos ilustrado en el siguiente listado:Var x=10Sub decrementar { If (x>0) { X – }} Si tenemos una rutina como la anterior, donde x es una variante global compartida, si un único proceso es el que la ejecuta, la variable no tomara nunca un valor negativo, sin embargo en un entorno concurrente, en el que varios procesos ejecutan la misma rutina compitiendo por el tiempo de CPU, si un proceso no iniciase la ejecución de la misma hasta que otro no finalice su ejecución no habría problemas.Pero podría darse la situación en la que un proceso P1 inicie la ejecución de la rutina para un valor de x=1, P1 realiza la comprobación x>0 también se cumple y se ejecuta el código contenido en la comprobación, con lo que x toma el valor 0.El proceso P2 termina su ejecución en el mismo punto en el que se paró, es decir, decrementando la variable x, ya que la comprobación la realizo anteriormente, con lo que el final de esta rutina devuelve un valor negativo en la variable x.Este es un ejemplo muy básico para entender que es una vulnerabilidad de condición de carrera pero los hay mucho más complejos y que pueden producir daños irreparables en los ficheros del ordenador que se encuentra vulnerable.
La condición de carrera
Lea También
“Dos años de retraso” para Apple en la carrera por la inteligencia artificial: ¿es relevante?
22 noviembre, 2024
El 28 de octubre, Apple lanzó por fin su nuevo software iOS 18.1, un hito en la historia de la empresa por introducir Apple Intelligence, su propia tecnología de inteligencia…
Innovaciones tecnológicas para la prevención de inundaciones en ciudades inteligentes
5 noviembre, 2024
La inteligencia artificial y la tecnología de cámaras inteligentes como herramientas clave en la prevención de desastres.
WhatsApp mejora su experiencia de usuario con nuevas funciones
5 noviembre, 2024
La aplicación de mensajería introduce accesos directos para enviar fotos y videos más rápido.
ESED expande su presencia en Estados Unidos con nueva sede en Miami
5 noviembre, 2024
La nueva sede de ESED en Miami responde a la creciente demanda de ciberseguridad en EE.UU.