Signal-Desktop: ASLR-Schutz nicht vollständig genutzt

Mit dem Linux-Bash-Skript checksec lassen sich ausführbare Dateien (Binary) auf das Vorhandensein diverser Schutzmechanismen wie PIE, PaX, ASLR usw. prüfen. Sofern diese genutzt werden, wird es einem Angreifer erschwert, Schwachstellen wie Buffer-Overflows auszunutzen.

Wenn wir checksec einmal auf die signal-desktop Binary anwenden finden wir heraus:

RELRO: No RELRO
STACK CANARY: Canary found
NX: NX enabled
PIE: No PIE
[...]

Ausführbare Dateien, die nicht mit Position-Independent-Executable (PIE) kompiliert sind, können den maximalen Schutz durch die ASLR-Technik nicht entfalten. Das bedeutet: Die Wirksamkeit von ASLR hängt davon ab, dass dem Angreifer die Gesamtheit des Adressraumlayouts unbekannt bleibt. Durch das fehlende PIE-Flag bei der Kompilierung bei Signal für den Desktop wird das Binary dadurch insbesondere für Return-Oriented-Programming-Angriffe (ROP) anfällig. Das wäre nach meiner Auffassung vermeidbar.

Hinweis: Das betrifft übrigens nicht nur Signal, sondern auch weitere Programme. Allerdings halte ich es bei Programmen, die den Fokus auf Sicherheit legen, für besonders bedenkenswert, wenn solche »einfachen« Compiler-Flags fehlen.

Hilf mit die Spendenziele zu erreichen! Mitmachen ➡