Patches zur Randomisierung von Adressen des Linux-Kernel-Stacks bei Systemaufrufen wurden vorgestellt.

Kees Cook, ehemaliger Hauptsystemadministrator von kernel.org und Leiter des Ubuntu Security Teams, der derzeit bei Google an der Sicherung von Android und ChromeOS arbeitet, hat eine Sammlung von Patches veröffentlicht, die eine Randomisierung der Stack-Verschiebungen beim Umgang mit Systemaufrufen implementieren. Diese Patches erhöhen die Sicherheit des Kernels, indem sie die Anordnung des Stacks ändern, was Angriffe auf den Stack erheblich komplizierter und weniger erfolgreich macht. Die ursprüngliche Implementierung unterstützt ARM64- und x86/x86_64-Prozessoren.

Die ursprüngliche Idee des Patches stammt aus dem PaX RANDKSTACK-Projekt. Im Jahr 2019 versuchte Elena Reshetova, Ingenieurin bei Intel, eine Implementierung dieser Idee zu entwickeln, die für die Einbeziehung in den Hauptkernel von Linux geeignet ist. Später übernahm Kees Cook die Initiative und präsentierte eine für die Hauptversion des Kernels geeignete Implementierung. Die Patches sollen in das Release 5.13 aufgenommen werden. Der Modus wird standardmäßig deaktiviert sein. Zum Aktivieren wurden die Kernel-Startparameter "randomize_kstack_offset=on/off" und die Einstellung CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT vorgeschlagen. Die Kosten für die Aktivierung des Modus werden auf etwa 1 % Leistungsverlust geschätzt.

Das Wesentliche des vorgeschlagenen Schutzes liegt in der Wahl einer zufälligen Stack-Verschiebung bei jedem Systemaufruf, was die Bestimmung der Stack-Anordnung im Speicher erschwert, selbst wenn Informationen über Adressen vorliegen, da sich beim nächsten Systemaufruf die Basisadresse des Stacks ändert. Im Gegensatz zur Implementierung von PaX RANDKSTACK erfolgt die Randomisierung in den für den Kernel vorgesehenen Patches nicht in der frühen Phase (cpu_current_top_of_stack), sondern nach der Festlegung der pt_regs-Struktur, was die Verwendung von ptrace-basierten Methoden zur Bestimmung der randomisierten Verschiebung während eines längeren Systemaufrufs unmöglich macht.

Quelle: opennet.ru

60GB SSD 8Gb DDR4