¿Qué es una condición de carrera?
Una condición de carrera se produce cuando varios procesos de acceso y manipular los mismos datos simultáneamente, y el resultado de la ejecución depende de la orden en el que el acceso tiene lugar.
Una condición de carrera es de interés para un hacker cuando la condición de carrera se puede utilizar para obtener el privilegio de acceso al sistema.
Considere el siguiente fragmento de código que muestra una condición de carrera:
if (acceso ( "/ tmp / archivo de" R_OK) == 0) (
fd = open ( "/ tmp / archivo de
proceso (fd);
close (fd);
Este código crea el archivo temporal / tmp / archivo de entonces y lo abre.
El potencial de condición de carrera se produce entre el acceso a la llamada () y la llamada a open ().
Si un atacante puede reemplazar el contenido de / tmp / archivo de acceso entre los () y open () funciones, que puede manipular las acciones del programa que utiliza ese archivo de. Esta es la carrera.
Puede ser difícil de explotar una condición de carrera, porque es posible que tenga que "correr la carrera" muchas veces antes de "ganar". Puede que tenga que ejecutar el programa vulnerable y la vulnerabilidad de miles de veces la herramienta antes de obtener el código Expolit para ejecutar después de la vulnerabilidad se abre y se cierra antes de la vulnerabilidad. A veces es posible dar el ataque de un borde mediante el uso de «bueno» para bajar la prioridad de los legítimos suid programa.
Uso indebido de la función de llamadas de acceso (), chown (), chgrp (), chmod (), mktemp (), tempnam (), tmpfile (), y tmpnam () son las causas normales de una condición de carrera.
|






