Linker, Loader und ausführbare Formate

Welche Aussage zum Zweck von ASLR (Address Space Layout Randomization) ist richtig?

  1. ADie Adressen von Stack, Heap, Bibliotheken usw. werden bei jeder Ausführung geändert, sodass die Zieladressen von Angreifern schwer vorhersagbar sind
  2. BSpeicheradressen werden zufällig gewählt, um die Cache-Trefferrate zu erhöhen
  3. CUngenutzter Speicher wird zufällig freigegeben, um den freien Platz zu vergrößern
Antwort und Erläuterung anzeigen

Antwort: A. Die Adressen von Stack, Heap, Bibliotheken usw. werden bei jeder Ausführung geändert, sodass die Zieladressen von Angreifern schwer vorhersagbar sind

Bei Angriffen, die z. B. Pufferüberläufe ausnutzen, ist es wichtig, die Adressen von Bibliotheksfunktionen und Daten auf dem Stack zu kennen. ASLR verschiebt bei jedem Prozessstart die Adressen, an denen Stack, Heap, Shared Libraries und die ausführbare Datei liegen, sodass Angreifer die Adressen nicht fest vorgeben können. Allein bietet es keinen vollständigen Schutz und wird mit weiteren Maßnahmen wie der Trennung von Schreiben und Ausführen kombiniert.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Linker, Loader und ausführbare Formate

  1. Was ist der Hauptgrund dafür, eine ausführbare Datei als PIE (Position Independent Executable) zu erzeugen?
  2. Was tut der Loader des Betriebssystems beim Start eines Programms (z. B. unter Linux mit execve)?
  3. Welche Aussage zur Adresse, an der das Betriebssystem bei einem C-Programm die Ausführung zuerst beginnt (Entry Point), ist richtig?
  4. Was geschieht im Allgemeinen mit dem Wert 3, wenn die Funktion main in C mit „return 3;“ endet?
  5. Was geschieht, wenn der Befehl strip auf eine ausführbare Datei angewendet wird?

Vergleiche zu diesem Thema