Wat is een "race condition?
Een race condition "ontstaat wanneer verschillende processen en manipuleren van dezelfde gegevens gelijktijdig en op het resultaat van de uitvoering hangt af van de volgorde waarin de toegang plaatsvindt.
Een race condition "is van belang voor een hacker als de race condition kan worden gebruikt om winst geprivilegieerde toegang tot het systeem.
Neem het volgende codefragment die illustreert een race voorwaarde:
if (access ( "/ tmp / datafile", R_OK) == 0) (
fd = open ( "/ tmp / datafile
proces (fd);
close (fd);
Deze code maakt het tijdelijke bestand / tmp / datafile en opent deze.
De potentiële race condition "ontstaat tussen de oproep voor toegang tot () en het gesprek te openen ().
Als een aanvaller kan de plaats van de inhoud van / tmp / datafile tussen de toegang tot () en open () functie, hij kan manipuleren van de acties van het programma dat gebruik maakt van dat datafile. Dit is de race.
Het kan moeilijk zijn voor de exploitatie van een "race condition", want je kan het zo zijn dat "run de race" vele malen voordat je "wint". U kan hebben voor het uitvoeren van de kwetsbare programma en de kwetsbaarheid testen hulpmiddel duizenden keer voordat je de expolit code uit te voeren na de kwetsbaarheid wordt geopend en voordat de kwetsbaarheid gesloten. Het is soms mogelijk om de aanval een extra rand met behulp van "mooi" om de prioriteit van de rechtmatige suid programma.
Oneigenlijk gebruik van de functie vraagt toegang (), chown (), chgrp (), chmod (), mktemp (), tempnam (), tmpfile () en tmpnam () zijn de normale oorzaken van een "race condition.
|






