O que é uma condição de corrida?
As race condition ocorrem quando vários processos de acesso e manipular os mesmos dados simultaneamente, e os resultados da execução depende da ordem particular em que o acesso se realiza.
A condição é de interesse para um hacker, quando a corrida condição pode ser utilizada para obter acesso privilegiado sistema.
Considere o seguinte código snippet que ilustra uma condição de corrida:
if (access ( "/ tmp / Datafile", R_OK) == 0) (
fd = open ( "/ tmp / Datafile
processo (fd);
close (fd);
Este código cria o arquivo temporário / tmp / Datafile e, em seguida, abre-o.
O potencial corrida condição ocorre entre a chamada para o acesso (), e do convite para abrir ().
Se um atacante pode substituir o conteúdo de / tmp / Datafile entre o acesso () e open () funciona, ele pode manipular as ações do programa que usa esse tipo de dados. Esta é a corrida.
Pode ser difícil de explorar uma condição de corrida, porque você pode ter que "correr a corrida" muitas vezes antes de "ganhar". Você pode ter que executar o programa vulnerável ea vulnerabilidade ferramenta testando milhares de vezes antes que você comece a expolit código para executar após a vulnerabilidade abre e fecha antes da vulnerabilidade. Por vezes, é possível dar a um ataque extra borda usando `` agradável para baixar a prioridade do programa SUID legítimo.
Uso indevido da função solicita acesso (), chown (), chgrp (), chmod (), o mktemp (), tempnam (), tmpfile (), e tmpnam () são as causas normais de uma condição de corrida.
|






