Linker, Loader und ausführbare Formate
Welcher Angriff lässt sich leichter verhindern, wenn Speicherseiten nicht gleichzeitig „beschreibbar“ und „ausführbar“ sein dürfen (W^X, Trennung von Schreiben und Ausführen)?
- AEin Angriff, der Passwörter durch Ausprobieren aller Möglichkeiten testet
- BEin Angriff, der durch große Mengen an Datenverkehr einen Server lahmlegt
- CEin Angriff, der Angriffs-Maschinencode in Datenbereiche wie den Stack schreibt und dorthin springen und ihn ausführen lässt
Antwort und Erläuterung anzeigen
Antwort: C. Ein Angriff, der Angriffs-Maschinencode in Datenbereiche wie den Stack schreibt und dorthin springen und ihn ausführen lässt
Bei älteren Angriffen wurde häufig per Pufferüberlauf Maschinencode auf den Stack geschrieben und die Rücksprungadresse dorthin gelenkt, um ihn auszuführen. In der Seitentabelle der CPU gibt es ein Bit für Ausführungsverbot (z. B. das NX-Bit); macht das Betriebssystem Stack, Heap und .data nicht ausführbar und .text nicht beschreibbar, ist diese Methode nicht mehr nutzbar. Wird wie bei JIT-Compilern zur Laufzeit Code erzeugt, werden die Schreib- und Ausführungsrechte umgeschaltet.