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.