Lionstarrs Linux Blog

Ein Blog über Linux und die Welt

Zufall mal anders – Race Conditions erklärt

Ein kleiner Beitrag um zu verdeutlichen, wie Race Conditions zustande kommen. Erstmal grundlegend: Eine Race Condition ist eine Sicherheitslücke in einem Programm. Wenn z.B. ein Hacker einem Programm zuvorkommen kann, den Dateinamen, den es erstellen will herausfindet und ihn auf eine wichtige Datei linkt, so dass diese von dem Programm, welches wahrscheinlich Root Rechte hat, überschrieben wird.

Hier wird auf eine Race Condition beim Zufall eingegangen. Für dieses Beispiel gibt es zwei Programme: Das Kasino und Der Hellseher. Wenn man diese gleichzeitig in zwei Fenstern nebeneinander ausführt, dann sagt einem der Hellseher immer Vorraus, ob man verlieren oder gewinnen wird, wenn man jetzt ENTER drückt. Beim Hellseher zählt immer die Meldung die oben steht: Darunter steht, was eine Sekunde später sein wird.

Das ganze funktioniert, weil das Kasino vor jeder Zufallszahl den Zufallsgenerator mit der aktuellen Zahl neu initialisiert – und das macht sich der Hellseher zu nutze. Das Kasino könnte jetzt z.B. ein wichtiges Programm mit Root rechten sein, dass einen zufälligen Namen für eine temporäre Datei erzeugen muss, und der Hellseher würde versuchen, diesen Namen zu erraten bevor die Datei erstellt wurde. Wenn es den Namen erraten hätte, würde es die Datei erstellen, und z.B. mit der /etc/shadow verlinken, in der alle Passwörter gespeichert sind. Dann hat der Hacker sein Ziel erreicht: Wenn das Programm schreibt, sind alle Passwörter weg. Natürlich könnte er auch auf andere, lebensnotwendige Dateien linken.

In: , , , ,
— June 22, 2007


Kommentare

(verstecken)
      RSS
  1. marco

    May 28, 2008 @09:21:05

    Gut zu wissen wie sowas funktioniert.

Gib deine Meinung ab!


(notwendig)






Stoppt die Vorratsdatenspeicherung! Jetzt klicken & handeln!Willst du auch bei der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien: