OpenBSD 6.4: Neue Sicherheitsfunktionen, aber ohne Hyper-Threading

Das Unix-Betriebssystem OpenBSD bringt in Version 6.4 neue Sicherheitsfunktionen mit, deaktiviert allerdings Hyper-Threading.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
OpenBSD 6.4: Neue Sicherheitsfunktionen, aber ohne Hyper-Threading
Lesezeit: 7 Min.
Von
  • Michael Plura
Inhaltsverzeichnis

Version 6.4 des Betriebssystems OpenBSD bringt vor allem für die geplagte amd64-Plattform wichtige Verbesserungen im Bereich Sicherheit . Immer neue Exploits in Intel-Prozessoren und die mangelnde Kommunikation des Chip-Riesen mit den OpenBSD-Entwicklern haben Maintainer Theo de Raadt dazu veranlasst, eine drastische Entscheidung zu treffen: Da OpenBSD Sicherheit einen höheren Stellenwert einräumt als Performance, wird Hyper-Threading (HT) auf Intel-CPUs im Kernel komplett deaktiviert. Dies geschieht unabhängig von der Voreinstellung des BIOS, weil sich HT auf vielen modernen Systemen gar nicht mehr per BIOS-Setup abschalten lässt.

Die Geschwindigkeitseinbußen auf typischen OpenBSD-Systemen wie Firewall- oder Router-Appliances oder Webservern sind nahezu unbedeutend. Stark ausgelastete Mailserver würden von HT profitieren, während typische HT-Anwendungen aus dem Bereich Multimedia auf OpenBSD wenig Bedeutung haben. Doch der Systemverwalter hat die Wahl: Will oder kann er nicht auf HT verzichten, lässt es sich über die sysctl-Variable hw.smt=1 wieder aktivieren.

Fix verpasst: Exploit im X.Org-Server

Theo de Raadt hätte dieses Mal besser den angekündigten Release-Termin für OpenBSD 6.4 abwarten sollen. Durch die um zwei Wochen vorgezogene Veröffentlichung hat er die Chance verpasst, einen hässlichen Fehler des X.Org-Servers zu beheben.

X.Org ist der Display-Server zur Darstellung grafischer Bedienoberflächen und fester Bestandteil von OpenBSD. Er läuft noch immer via setuid mit root-Rechten, was allgemein als veraltet und unsicher gilt. Die Sicherheitslücke CVE-2018-14665 nutzt dies aus und ermöglicht es einem unprivilegierten Angreifer, eigenen Code als Modul mit root-Rechten auszuführen oder systemweit Dateien zu überschreiben.

Ein verhängnisvoller Patch

Der den Fehler ermöglichende, verhängnisvolle Patch stammt von Emil L. Velikov und datiert auf den 2. Mai 2016, ist also schon über 30 Monate alt. Adam Jackson von Red Hat hat den Code überprüft und zwei Tage später freigeschaltet. Die Sicherheitslücke betrifft damit X.Org-Server ab Version 1.19.0. OpenBSD 6.4 verwendet X.Org 7.7 mit einem xserver 1.19.6 plus Patches und ist damit vom Fehler betroffen. Die Änderung vereinfacht die Prüfung, ob X.Org mit erweiterten Rechten gestartet wird, und übergibt diese an die Funktion xf86CheckPrivs. Diese scheint relative Pfade als "sicher" anzusehen und ermöglicht so den Exploit.

Übergibt ein Angreifer X.Org via -modulpath eigenen Code, kommt dieser mit den root-Rechten des X-Servers zur Ausführung. Einfacher ist die Umleitung der X.Org-Logdatei über -logfile. Da die Datei mit root-Rechten geschrieben wird und an jeder Stelle des Dateisystems stehen kann, lassen sich so beliebige Systemdateien überschreiben. Übergibt man dabei noch schadhaften Code über eine zusätzliche Option wie -fp <Code> (die setzt eigentlich den Fontpath), wird der Pfad als ungültig erkannt und in der Logdatei protokolliert. Wird so eine Konfigurationsdatei in /etc überschrieben, kann es zum Problem kommen: Wertet das System Konfigurationsdateien Zeile für Zeile aus und übergeht nicht interpretierbare Zeilen einfach, bleibt der Code als valide Konfiguration "hängen". Das kann im Zweifelsfall der Passworteintrag für root in der /etc/shadow sein.

Zu frühes Release?

Sichtlich ärgerlich reagierte Theo de Raadt, weil seiner Meinung nach LAAS-CNRS-Mitarbeiter und X.Org- sowie OpenBSD-Entwickler Matthieu Herbb die Info über den eher trivialen Fehler zwei Wochen zurückgehalten hatte. Einige Betriebssystemhersteller wurde angeblich vorab informiert, das OpenBSD-Team gehörte jedoch offenbar nicht dazu. Jetzt will OpenBSD das Problem grundlegend lösen. De Raadt dazu in der source-changes-Mailingliste: "We have always known it [setuid für X.Org, Anm. d. Red.] is a trash fire and we held out hope too long."

Die diversen Meltdown-/Spectre-Patches für OpenBSD 6.2, die in der Release 6.3 dauerhaft Einzug hielten, sowie Kernel Page Table Isolation (KPTI) und eine spezielle Behandlung des Branch Target Buffer (BTB) sollen bekannte Spectre-/Meltdown-Varianten weitestgehend entschärfen. Die Release Notes nennen im Abschnitt "Security Improvements" einige weitere neue Schutzmechanismen wie Retpoline-Mitigation gegen Spectre über den Clang-Compiler und Assembler, einen Schutz gegen Intels L1 Terminal Fault sowie SpectreRSB. Da moderne Browser- und Internetanwendungen gerne ungefragt Multimediageräte aktivieren, haben die Entwickler die Aufnahmefunktion des leichtgewichtigen Audio- und MIDI-Frameworks sndio(7) zum Schutz der Privatsphäre des Benutzers standardmäßig abgeschaltet. Bei Bedarf lässt sie sich über sysctl kern.audio.record=1 oder den entsprechenden Eintrag in /etc/sysctl.conf wieder einschalten.