Linker, loader en uitvoerbare formaten

Wat is het juiste doel van ASLR (address space layout randomization)?

  1. ADe adressen van stack, heap en bibliotheken bij elke uitvoering veranderen, zodat het moeilijk is te voorspellen welke adressen een aanvaller beoogt
  2. BGeheugenadressen willekeurig kiezen om het cachehitpercentage te verhogen
  3. COngebruikt geheugen willekeurig vrijgeven om de vrije capaciteit te vergroten
Antwoord en toelichting tonen

Antwoord: A. De adressen van stack, heap en bibliotheken bij elke uitvoering veranderen, zodat het moeilijk is te voorspellen welke adressen een aanvaller beoogt

Bij aanvallen die bijvoorbeeld bufferoverflows misbruiken, is het belangrijk de adressen van bibliotheekfuncties en data op de stack te kennen. ASLR verschuift bij elke start van een proces de adressen waarop stack, heap, gedeelde bibliotheken en het uitvoerbare bestand worden geplaatst, zodat aanvallers adressen niet vast kunnen aannemen. Het kan niet alleen volledig beschermen en wordt gecombineerd met andere maatregelen zoals scheiding van schrijven en uitvoeren.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Linker, loader en uitvoerbare formaten

  1. Wat is de belangrijkste reden om een uitvoerbaar bestand als PIE (position-independent executable) te bouwen?
  2. Wat doet de loader van het OS bij het starten van een programma (zoals execve op Linux)?
  3. Welke uitspraak is juist over het adres waar het OS in een C-programma de uitvoering begint (entry point)?
  4. Wat gebeurt er in het algemeen met de waarde 3 als de C-functie main eindigt met „return 3;”?
  5. Wat gebeurt er als het commando strip op een uitvoerbaar bestand wordt gebruikt?

Vergelijkingen bij dit onderwerp