Univention Corporate Server (UCS) » Basis-Systemdienste

ID #1103

Konfiguration von mmap()-Restriktionen für den Linux-Kernel zur Erhöhung der Systemsicherheit

Auf die ersten Speicherblöcke der virtuellen Speicherverwaltung (VM) des Linux-Kernels (die sogenannte "Zero Page") kann nicht direkt zugegriffen werden. Allerdings können durch den mmap()-Systemaufruf Speicherseiten aus anderen Bereichen eingebunden werden. Diese Funktionalität wird von einigen Applikationen benötigt, die für Emulations-Zwecke systemnah auf Arbeitsspeicher zugreifen müssen. Dies betrifft die Applikationen DosEMU, Wine (nur bei der Ausführung von 16-Bit-Applikationen) und QEmu. Diese Funktionalität ist andererseits aber auch ein Einfallsweg, über den eine besondere Form von Speicherzugriffen (sogenannte  NULL-Pointer-Derefenzierungen) im Linux-Kernel zum Ausführen von Code mit erhöhten Systemprivilegien (typischerweise root) führen kann. (Dabei wird durch einen Programmierfehler wie ein nicht-initialisiertes struct im Folgecode NULL dereferenziert und der gemmapte Code ausgeführt).
Über eine Konfigurationseinstellung kann die niedrigste Addresse konfiguriert werden, die von mmap() verwendet werden kann. Wenn die oben genannten Applikationen benötigt werden, sollte der Standard-Wert beibehalten werden. Ansonsten empfiehlt es sich diesen Wert wie nachfolgend beschrieben zu erhöhen, um die Ausnutzung von NULL-Pointer-Derefenzierungen zu lokalen Root-Exploits zu vermeiden. Diese Schritte müssen auf jedem UCS-System unabhängig von der Systemrolle ausgeführt werden:
  • Editieren Sie die Datei /etc/sysctl.conf und fügen Sie dort folgende Zeile ein:
vm.mmap_min_addr=4096
  • Veranlassen Sie nun den Kernel, den neuen Wert auszulesen:
/etc/init.d/procps.sh restart
  • Nun sollte der neue Wert (4096) in /proc angezeigt werden:
cat /proc/sys/vm/mmap_min_addr

Tags: -

Verwandte Artikel:

Letzte Änderung der FAQ: 2011-01-27 15:21
Autor: Moritz Mühlenhoff
Revision: 1.2

Digg it! Share on Facebook FAQ ausdrucken FAQ weiterempfehlen Als PDF-Datei anzeigen
Übersetzungsvorschlag für Übersetzungsvorschlag für
Bewertung der Nützlichkeit dieser FAQ:

Durchschnittliche Bewertung: 0 (0 Abstimmungen)

vollkommen überflüssig 1 2 3 4 5 sehr wertvoll

Kommentieren nicht möglich