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
