Server absichern – aber wie?

server-sec-title

Ein wichtiger Baustein zur Absicherung von Servern gegenüber Angriffen auf die Vertraulichkeit, Integrität und Verfügbarkeit von schützenswerten Daten ist die „Härtung" der Betriebssysteme und Anwendungen, die auf ihnen installiert sind. Unter Härtung versteht man eine Verringerung der Angriffsfläche durch Aktivierung und Implementierung der schon eingebauten Sicherheitsfeatures, also überwiegend mit vorhandenen „Bordmitteln". Das kann neben strengeren Regeln für das Aussehen von Passwörtern die Einschränkung und sicherer Konfiguration des Zugangs mit der Secure Shell (ssh) und der Nutzung von „sudo" auch das Abschalten nicht benötigter Dienste bedeuten. Weitere Themen der Härtung sind sichere Mount-Optionen für Dateisysteme oder spezielle Parameter für die Behandlung von TCP oder dem Kernel.

In diesem Beitrag soll weniger darauf eingegangen werden, welche Parameter an dieser Stelle relevant sind, sondern welche geeigneten Quellen es gibt, in denen aktuelle und zuverlässige Informationen zu diesem Thema zu finden sind. Im Internet gibt es einige Anlaufstellen, von denen ich hier zwei vorstellen möchte: den BSI Grundschutz und die Listen des Centers for Internet Security (CIS).

Fluchtpunkt BSI

Erste Anlaufstelle ist das Bundesamt für Sicherheit in der Informationstechnik (BSI). Auf den Seiten unter www.bsi.bund.de befindet sich ein reichhaltiges Kompendium für den IT-Grundschutz, das zur Härtung herangezogen werden kann. Für die Härtung zuständig sind generell die Kompendiumsbausteine „SYS: IT Systeme" und „APP: Anwendungen" mit ihren jeweiligen Unterkapiteln. Das Kompendium beleuchtet die Serverhärtung aus sehr vielen unterschiedlichen Blickwinkeln und spricht unzählige Empfehlungen dazu aus, was getan werden MUSS oder SOLLTE. Es besitzt aber eine grundsätzliche Einschränkung: die mangelnde Aussage, wie etwas umgesetzt wird. Ein Beispiel sei hier zitiert:

SYS.1.3.A17 Zusätzlicher Schutz des Kernels

Es SOLLTEN speziell gehärtete Kernels und geeignete Schutzmaßnahmen wie Speicherschutz, Dateisystemabsicherung und rollenbasierte Zugriffskontrollen umgesetzt werden, die eine Ausnutzung von Schwachstellen und die Ausbreitung im Betriebssystem verhindern.

Dies lässt den Administrator zunächst ratlos zurück, was denn genau eine geeignete Schutzmaßnahme ist und wie sie beispielsweise auf einem Server unter RedHat Linux in Version 7.x umzusetzen ist. Das IT-Grundschutzkompendium bietet zwar einen hervorragenden und vollständigen Überblick (auch in Form von Checklisten) was für die Serverhärtung (und vieles mehr in der IT-Sicherheit) allgemein zu tun ist, gibt aber wenig Hinweise auf eine spezielle Umsetzung in der eigenen Umgebung.

Darf es ein wenig spezifischer sein?

Auf der Suche nach Anweisung zur Härtung spezifischer Betriebssysteme in der eigenen Serverumgebung stößt man auf die Webseite www.cisecurity.org. CIS ist ein gemeinschaftsgetriebener Zusammenschluss von IT-Security-Spezialisten, die auf Non-Profit-Ebene Produkte zur IT-Sicherheit entwickeln, bereitstellen, aber auch verkaufen. Die uns interessierenden CIS-Benchmarks bestehen aus über 100 Dokumenten zu Konfigurationsrichtlinien in über 25 Produktfamilien. Beispielsweise wird der CIS-Benchmark für RedHat Linux in den Versionen 5, 6, 7 und 8 angeboten und fortlaufend aktualisiert. Eine nähere Betrachtung soll hier für den neuesten Benchmark 3.0.1 vom 21.09.2020 für RHEL7 erfolgen.

CIS Benchmarks

Zunächst muss der Nutzer sich auf der oben genannten Seite mit einer Email-Adresse registrieren, an die dann den Link für einen Download gesendet wird. Das Dokument hat einen Umfang von über 500 Seiten, was sich durch die stark wiederholende Struktur der Liste erklärt. Was sagt aber jetzt dieses Dokument zur Kernelhärtung? Ein Beispiel unter anderen ist die Empfehlung, den Adressraum im Hauptspeicher zu randomisieren:

1.6.3 Ensure address space layout randomization (ASLR) is enabled
Testing:

# sysctl kernel.randomize_va_space
kernel.randomize_va_space = 2

Remediation:
Run the following command to set the active kernel parameter:

# sysctl -w kernel.randomize_va_space=2

Neben einem Erklärungstext, der hier ausgelassen wurde, wird also ein Prüfschritt angegeben und ein Kommando, mit dem der Kernelparameter verändert wird. Auf diese Weise werden einige hundert Punkte dokumentiert, die bei einer Serverhärtung umsetzbar sind.

Eine Möglichkeit der Umsetzung dieser Punkte ist das freie Produkt lynis (Download auf der cisofy.com), welches auf einem Einzelserver installiert werden kann und per Skript die CIS Benchmarks prüft, daraus ein Security-Scoring ableitet und bei Wunsch umsetzt. Als Serverversion (zum Check anderer Systeme über das Netzwerk) ist es allerdings nur als Kaufversion verfügbar.

Fazit

BSI-Grundschutz und CIS-Benchmarks bieten einen guten Start in die Welt der Serverhärtung und erklären, was wie umgesetzt werden kann. Nichtsdestotrotz bleibt zu benennen, wie eine Implementierung der großen Anzahl an Härtungsmaßnahmen aussehen kann. Aus diesem Grund werden wir in einem zukünftigen Blogartikel auf die praktische Umsetzung genauer eingehen.

By accepting you will be accessing a service provided by a third-party external to https://blog.ordix.de/