Zurück zum Blog

Wie Sie robuste Sicherheitsmaßnahmen zum Schutz Ihrer Server aufbauen

Wie Sie robuste Sicherheitsmaßnahmen zum Schutz Ihrer Server aufbauen

Einführung

Bei der Arbeit an einer Cloud-Infrastruktur besteht Ihr Hauptanliegen darin, sicherzustellen, dass Ihre Anwendungen voll funktionsfähig sind. Ein wichtiger Bestandteil Ihres Einrichtungs- und Bereitstellungsprozesses ist die Integration effektiver, gründlicher und robuster Sicherheitsmaßnahmen in Ihre Anwendungen oder Systeme, bevor diese der Öffentlichkeit zugänglich gemacht werden. Anstatt Sicherheitsmaßnahmen nachträglich nach der Bereitstellung zu implementieren, ist es wichtig, dafür zu sorgen, dass eine sichere Basiskonfiguration in Ihre Infrastruktur integriert ist.

Dieses Tutorial wird Ihnen in dieser Hinsicht helfen. Es zeigt bestimmte praktische Sicherheitsmaßnahmen auf, die während der Einrichtung und Konfiguration der Infrastruktur Ihres Servers implementiert werden können. Obwohl dies keine vollständige Liste von Serversicherheitsprotokollen ist, stellt es einen hilfreichen Ausgangspunkt dar. Wenn Sie mit den spezifischen Anforderungen Ihrer Umgebung und Anwendungen arbeiten und diese besser verstehen, können Sie zusätzliche Sicherheitsmaßnahmen entwickeln, um auf Ihrer Basis aufzubauen.

SSH-Schlüssel (Secure Shell)

Während Sie mit Ihrem Server arbeiten, werden Sie die meiste Zeit in einer SSH-Verbindung mit Ihrem Server in einer Terminal-Sitzung verbringen. SSH-Schlüssel (Secure Shell) bieten eine sicherere Methode zur Anmeldung am Server als passwortbasierte Logins. Zum Zwecke der Authentifizierung werden bei der Verwendung von SSH-Schlüsseln zwei Zugriffsschlüssel erstellt. Der erste ist ein geheimer (privater) Schlüssel, während der andere ein freigebbarer, öffentlicher Schlüssel ist.SSH Key Authentication

Die SSH-Schlüssel-Authentifizierung muss zuerst konfiguriert werden. Dies geschieht, indem der öffentliche SSH-Schlüssel im entsprechenden Verzeichnis auf dem Server abgelegt wird. Wenn sich Ihr Client zum ersten Mal mit dem Server verbindet, werden Sie nach dem Nachweis des Besitzes des privaten Schlüssels gefragt. Dies geschieht durch die Generierung eines Zufallswerts, der dann an Ihren SSH-Client gesendet wird. Der SSH-Client wiederum verwendet den privaten Schlüssel zur Verschlüsselung einer Antwort. Diese Antwort wird an den Server gesendet. Als Nächstes entschlüsselt der Server die Nachricht des Clients mithilfe Ihres öffentlichen Schlüssels. Wenn der Zufallswert vom Server entschlüsselt wird, zeigt dies an, dass der Client den privaten Schlüssel besitzt. In diesem Fall ist die Authentifizierung bestätigt und eine Verbindung zum Server kann ohne Passwort hergestellt werden.

Erhöhung der Sicherheit mit SSH-Schlüsseln

Obwohl die Passwort-Autorisierung oder jede Authentifizierung mit SSH vollständig verschlüsselt ist, können böswillige Benutzer versuchen, auf den Server zuzugreifen. Insbesondere dann, wenn sie in den Besitz der öffentlich zugänglichen IP-Adresse des Servers gelangt sind. Durch das Ausprobieren aller möglichen Kombinationen ermöglicht moderne Computertechnik passwortbasierte Logins und dies wird oft von böswilligen Benutzern versucht. Wenn man diese Zugriffsversuche automatisieren würde, wäre es möglich, durch systematisches Ausprobieren verschiedener Kombinationen schließlich an das richtige Passwort zu gelangen.

Durch die Nutzung der verschlüsselten SSH-Authentifizierung ist es nicht erforderlich, Passwörter für die Anmeldung zu aktivieren. SSH-Schlüssel weisen in der Regel eine enorme Anzahl an Kombinationsmöglichkeiten auf, die von einem Angreifer durchgespielt werden müssten. Die erhöhte Anzahl an Bits vervielfacht das Potenzial für verschiedene Kombinationen, die zum Knacken der Verschlüsselung erforderlich sind. Das Durchlaufen aller möglichen Kombinationen des SSH-Schlüsselalgorithmus wäre daher immens zeitaufwendig. Somit lohnt sich dieser Aufwand für einen böswilligen Angreifer nicht. Aus diesem Grund gilt die SSH-Verschlüsselung im Allgemeinen als „unkackbar“.

Implementierung von SSH-Schlüsseln

Die Anmeldung an einem entfernten Linux-Server sollte über SSH-Schlüssel erfolgen. Ein lokaler Schlüssel kann auf dem lokalen Rechner generiert werden, wobei der öffentliche Schlüssel innerhalb weniger Minuten auf den Server übertragen wird. Mit diesem Tutorial erhalten Sie eine grundlegende Vorstellung davon, wie Sie SSH verwenden, um eine Verbindung zu einem Remote-Server in Ubuntu herzustellen.  Sie können auch unserer ausführlichen Anleitung zur Konfiguration Ihres Linux-Servers für die Verwendung der SSH-schlüsselbasierten Authentifizierung folgen.

Insgesamt ist es eine häufig angewandte Best Practice, dem Root-Benutzer die direkte Anmeldung über SSH nicht zu erlauben, sondern sich stattdessen als unprivilegierter Benutzer anzumelden und bei Bedarf ein Tool wie sudo zu verwenden, um die Berechtigungen zu erweitern. Dies wird als das Prinzip der minimalen Rechtevergabe (Principle of Least Privilege) bezeichnet: eine Methode zur Einschränkung von Zugriffsberechtigungen. Sobald die Anmeldung als unprivilegiertes Konto mit SSH verifiziert wurde, können Root-Anmeldungen deaktiviert werden, indem die Direktive PermitRootLogin no in der Datei /etc/ssh/sshd_config auf Ihrem Server gesetzt wird. Anschließend kann der Server mit dem SSH-Prozessbefehl sudo systemctl restart sshd neu gestartet werden.

Firewalls

Eine Software (oder ein Hardwaregerät), die die Freigabe von Diensten für das Netzwerk regelt, wird als eine Firewall bezeichnet. Eine optimal konfigurierte Firewall stellt sicher, dass nur zugelassene Dienste öffentlich verfügbar sind und in den jeweiligen Server hinein- und herausgelassen werden.

Firewall

Standardmäßig können auf einem Server mehrere Dienste ausgeführt werden, die sich in die folgenden Gruppen einteilen lassen:

  • Interne Dienste: Auf diese sollte nur intern vom Server selbst aus zugegriffen werden. Dies verhindert, dass die Dienste über das öffentlich zugängliche Internet erreichbar sind (z. B. eine Datenbank, die nur über lokale Verbindungen erreichbar ist).
  • Öffentliche Dienste: Dienste, auf die jeder, oft anonym, im Internet zugreifen kann. Dazu gehören Webserver, die Besuchern den Zugriff auf Ihre Website ermöglichen.
  • Private Dienste: Nur autorisierte Konten von einer exklusiven Auswahl an Standorten können auf diese Dienste zugreifen (z. B. das phpMyAdmin-Datenbank-Kontrollzentrum).

Während öffentliche Dienste für den Zugriff aus dem Internet verfügbar bleiben können, können private Dienste basierend auf Zugriffsparametern (wie Verbindungstypen) eingeschränkt werden, und interne Dienste werden vollständig von jeglichem internetbasierten Zugriff abgeschnitten. Der Zugriff auf diese Dienste sowie die Granularität, mit der er gestattet ist, wird vollständig von der Firewall gesteuert. Nicht genutzte Ports werden üblicherweise so konfiguriert, dass der Zugriff auf sie vollständig blockiert wird.

Sicherheitsverbesserung durch den Einsatz einer Firewall

Eine Firewall ist die Grundlage für den Serverschutz. Sie dient dazu, Verbindungen zu und von Diensten einzuschränken, bevor die Anwendung den Datenverkehr verarbeitet. Natürlich können Sie zusätzliche Sicherheitsfunktionen für Ihre Dienste implementieren und diese auf die gewünschten Schnittstellen beschränken.

Nur die Dienste, die Sie offen halten möchten, werden von einer ordnungsgemäß konfigurierten Firewall nicht eingeschränkt. Dies begrenzt die für Angriffe anfälligen Elemente, da die verfügbaren Softwarekomponenten viel begrenzter sind und somit die Wahrscheinlichkeit eines Angriffs sinkt.

Implementierung von Firewalls

Für Linux-Systeme sind viele Firewalls verfügbar. Einige davon sind recht komplex. Die typische Einrichtung einer Firewall sollte jedoch nur bei der Ersteinrichtung des Servers erfolgen, wenn Änderungen an den Diensten des Servers vorgenommen werden. Dies sollte nur wenige Minuten Ihrer Zeit in Anspruch nehmen. Im Folgenden finden Sie einige Optionen, die Sie für die Einrichtung und Aktivierung der Firewall in Betracht ziehen können:

Am wichtigsten ist, unabhängig von der Anleitung, dass Sie sicherstellen, dass die gewählte Firewall unbekannten Datenverkehr von Ihren Servern blockiert, um zu verhindern, dass neu verfügbare Dienste versehentlich im Internet freigegeben werden. Da Sie den Zugriff explizit autorisieren müssen, werden Sie dazu veranlasst, vollständig zu prüfen, wie auf einen Dienst zugegriffen wird, wie er ausgeführt wird und wer darauf zugreifen darf.

Virtual Private Cloud (VPC)-Netzwerke

Die Ressourcen Ihrer Infrastruktur müssen innerhalb eines privaten Netzwerks betrieben werden, das als VPC bezeichnet wird. Diese Netzwerke sind sicherer, da sie den Zugriff von anderen cloudbasierten VPC-Netzwerken verhindern. Dadurch machen sie die Schnittstellen des Netzwerks für das öffentliche Internet unzugänglich.

Erhöhung der Sicherheit mit VPC-Netzwerken

Private Netzwerke sind für die interne Kommunikation dem öffentlichen Gegenstück vorzuziehen. VPC ermöglicht die Isolierung von Ressourcengruppen in bestimmten privaten Netzwerken. Da VPC-Netzwerke nur über private Verbindungen kommunizieren, ist der Datenverkehr des Netzwerks vor dem Zugriff über das öffentliche Internet geschützt, wo diese Informationen anfällig für Abfangen oder Offenlegung sein könnten. VPC-Netzwerke können auch zur Isolierung von Ausführungsumgebungen sowie von Mandanten verwendet werden. Internet-Gateways können auch als einziger Zugriffspunkt zwischen dem öffentlichen Internet und den Ressourcen in Ihrem VPC-Netzwerk eingerichtet werden.

Darüber hinaus besteht ein großer Teil der Sicherheit darin, unsere Systeme zu analysieren und alle Komponenten nach besten Kräften zu sichern. Die Dienstüberwachung ermöglicht es uns, die akzeptablen Protokolle der Systeme, die ausgeführten Dienste und die für die Kommunikation genutzten Ports zu kennen. Die Kenntnis dieser Informationen kann helfen, die besten Entscheidungen bezüglich der Konfiguration zu treffen. Solche Entscheidungen könnten Firewall-Einstellungen, Systemüberwachung und -warnungen sein und welche Dienste öffentlich zugänglich sein sollten.

service Checklist

Nutzung von Audits zur Verbesserung der Sicherheit

Jeder Dienst kann für die Abwicklung externer Clients oder für interne Zwecke genutzt werden. Unabhängig von der Absicht sind diese Dienste alle Schwachstellen für böswillige Benutzer. Mit der Anzahl der ausgeführten Dienste steigt auch das Potenzial für die Ausnutzung von Schwachstellen.

Sie können mit der Analyse von Diensten beginnen, sobald Sie genau wissen, welche Dienste auf einer Maschine ausgeführt werden. Bei der Durchführung eines Service-Audits ist es hilfreich, die folgenden Fragen zu stellen:

  • Sollte der jeweilige Dienst aktiv ausgeführt werden?
  • Wird er auf den optimalen Netzwerkschnittstellen ausgeführt?
  • Ist der Dienst am besten für eine öffentliche oder private Netzwerkschnittstelle geeignet?
  • Sind die Firewall-Regeln korrekt konfiguriert, um legitimen Datenverkehr zu diesem Dienst zuzulassen?
  • Wird illegaler Datenverkehr durch meine Firewall-Regeln blockiert?
  • Ist ein Warnsystem für Sicherheitslücken aktiviert?

Beim Hinzufügen eines neuen Servers zur Infrastruktur sollten die oben genannten Punkte Standardpraktiken bei dessen Konfigurationsprozess sein. Ein zusätzlicher Vorteil von Service-Audits besteht darin, dass sie es ermöglichen, unbeabsichtigt geänderte Konfigurationen zu identifizieren.

Durchführung von Service-Audits

Um die laufenden Dienste zu überprüfen, verwenden Sie den Befehl ss, um alle UDP- und TCP-Ports aufzulisten, die aktiv auf einem Server verwendet werden. Hier ist ein Beispiel für die Verwendung des Befehls ss mit einem Programmnamen PID, um nach abhörenden TCP- und UDP-Ports zu suchen:

Etwas Ähnliches wie das Folgende wird zurückgegeben:

Performing Services Audits screenshot

Ihr Hauptaugenmerk sollte auf den Spalten Netid, Local Address:Port und Process liegen:

  • Wenn der Wert für Local Address:Port 0.0.0.0 ist, bedeutet dies, dass der Dienst aktiv alle Verbindungen über alle IPv4-Netzwerkschnittstellen akzeptiert. Wenn die Adresse [::] lautet, akzeptieren alle IPv6-Verbindungen Datenverkehr.
  • Im obigen Beispiel lauschen sowohl Nginx als auch SSH auf allen öffentlichen Schnittstellen auf beiden Netzwerk-Stacks (IPv4 und IPv6).

Mit dem obigen Beispiel können Sie wählen, ob Sie SSH und Nginx erlauben müssen, auf beiden Schnittstellen zu lauschen, oder nur auf einer von beiden. Generell sollten Sie alle nicht genutzten Dienste deaktivieren, um deren Ausführung zu verhindern. Wenn Ihre Website beispielsweise nur über IPv4 erreichbar sein soll, würde es helfen, die IPv6-Schnittstellen auszuschalten, um das Risiko zu begrenzen.

Auf dem Laufenden bleiben mit Unattended Updates

Unattended Updates reduzieren den Aufwand, der erforderlich ist, um Ihre Server sicher zu halten, und tragen dazu bei, die Zeitspanne zu verkürzen, in der sie bekannten Fehlern ausgesetzt sind. Je länger Sie brauchen, um Updates auf Ihrem Server auszuführen, desto länger bleibt er bekannten Schwachstellen ausgesetzt. Unattended Updates stellen sicher, dass Patch-Pakete, sobald sie verfügbar sind, automatisch auf dem Server installiert werden können, um das Zeitfenster der Verwundbarkeit zu minimieren.

Zusätzlich zur Serverüberwachung können Unattended Updates das Risiko von Angriffen drastisch reduzieren. Sie verringern auch den Zeitaufwand für die Serverwartung erheblich.

Wie unbeaufsichtigte Updates aktiviert werden

Unbeaufsichtigte Updates sind mittlerweile eine optionale Funktion bei den meisten Server-Distributionen. Unter Ubuntu kann die Administration beispielsweise den folgenden Befehl ausführen:

Weitere Informationen zur Implementierung unbeaufsichtigter Updates finden Sie unter dem Abschnitt „Automatische Updates“ hier. Für Fedora finden Sie die Anweisungen hier. Bitte beachten Sie, dass die automatischen Updates nur die Software installieren, die ursprünglich über das Paketverwaltungssystem Ihres Systems installiert wurde. Alle zusätzlichen Anwendungen, wie z. B. webbasierte, müssen manuell separat auf Updates überprüft oder einzeln für automatische Updates konfiguriert werden.

Verzeichnisindizes

Wenn ein Verzeichnis keine Indexdatei enthält, sind die meisten Server so konfiguriert, dass sie standardmäßig Verzeichnisindizes anzeigen. Mit anderen Worten: Wenn auf Ihrem Webserver ein Verzeichnis namens „downloads“ erstellt wurde, kann jeder, der dieses Verzeichnis aufruft, alle darin enthaltenen Dateien sehen. Dies stellt zwar nicht immer ein Sicherheitsrisiko dar, macht aber vertrauliche Informationen für unbefugte Augen sichtbar. Stellen Sie sich beispielsweise vor, dass Ihr Webserver eine Datei enthält, die die Zugangsdaten für die Startseite Ihrer Website enthält, und eine Datei mit allen Konfigurationen für das Backend der Datenbank der Website. Wenn Verzeichnisindizes nicht deaktiviert sind, werden diese Dateien für jeden sichtbar, der dieses Verzeichnis aufruft.

Erhöhung der Sicherheit durch Deaktivierung von Verzeichnisindizes

Obwohl Verzeichnisindizes nützlich sind, können sie dazu führen, dass Dateien unbeabsichtigt offengelegt werden. Um eine solche unbeabsichtigte Offenlegung und die damit verbundenen Risiken zu minimieren, sollten die Verzeichnisindizes auf dem Server standardmäßig deaktiviert werden. Obwohl die Dateien für Besucher weiterhin erreichbar sind, wird das Risiko einer unbeabsichtigten Dateneinsicht erheblich eingeschränkt.

Deaktivieren von Verzeichnisindizes

In den meisten Fällen reicht das Hinzufügen einer einzigen Zeile zur Konfiguration Ihres Webservers aus, um Verzeichnisindizes zu deaktivieren.

Häufige Backups

Obwohl Backups keine Sicherheitsmaßnahme im engeren Sinne sind, sind sie unerlässlich, um Daten und ganze Systeme zu schützen, falls das System kompromittiert wird. Sie helfen auch dabei zu analysieren, wie das System angegriffen werden konnte. Stellen Sie sich das unglückliche Szenario vor, dass Ihr System von Ransomware angegriffen wird (einem Virus oder einer Malware, die die Dateien auf Ihrem System verschlüsselt und sie nur gegen Zahlung von Lösegeld an den Hacker wieder entschlüsselt). Wenn keine Backups der Daten vorhanden sind, bleibt Ihnen nur die Wahl, das Geld zu zahlen, um wieder Zugriff auf Ihre Daten zu erhalten. Wenn die Daten sicher gesichert sind, haben Sie weiterhin Zugriff darauf und können sie wiederherstellen, ohne auf das kompromittierte System zugreifen zu müssen.

Sicherheitsverbesserung durch häufige Backups

Häufige Backups helfen dabei, Informationen nach einem Angriff, einer Beschädigung oder sogar einem unbeabsichtigten Verlust (Löschen) wiederzuerlangen. Unabhängig davon, welche Art von negativen Ereignissen zu Datenverlust führt, wird das Risiko durch die Aufbewahrung von Kopien der Serverdaten verringert.

Abgesehen von Ransomware-Angriffen können häufige Backups bei der messbaren Untersuchung langfristiger Systemangriffe helfen. Wenn Sie Ihre Daten nicht sicher in Form eines Backups auslagern, kann es schwierig oder sogar unmöglich sein, die Quelle des Angriffs und die kompromittierten Daten zu bestimmen.

Implementierung häufiger Backups

Bei der Sicherung Ihrer Systeme ist es von größter Bedeutung, die überprüfbare Wiederherstellung beschädigter, kompromittierter oder gelöschter Daten als Ziel Ihrer Wiederherstellungsbemühungen zu betrachten. Am besten überlegen Sie sich, welche Maßnahmen den geringsten Arbeitsaufwand erfordern würden, um Sie wieder einsatzbereit zu machen, falls Ihr Server morgen verschwinden sollte.

Hier sind einige weitere Punkte, die Sie bei der Planung eines Disaster-Recovery-Plans berücksichtigen sollten:

  • Wenn Sie mit sich dynamisch ändernden Daten arbeiten, müssen Ihre Backups wahrscheinlich häufiger durchgeführt werden. Im Falle eines Datenverlusts müssen Sie, wenn Ihr letztes Backup zu lange her ist, möglicherweise auf veraltete Daten zurückgreifen.
  • Denken Sie an den eigentlichen Prozess der Backup-Wiederherstellung. Muss dafür ein neuer Server hinzugefügt werden oder kann der bestehende wiederhergestellt werden?
  • Was ist der längste Zeitraum, in dem der Server nicht betriebsbereit sein darf?
  • Ist ein Offsite-Backup eine notwendige Lösung?

Um mehr über die Disaster-Recovery-Lösungen von CloudSigma zu erfahren, lesen Sie unseren Blogbeitrag über warum unser Disaster-Recovery-as-a-Service der perfekte Begleiter für die Cloud ist. Und hier erfahren Sie mehr über die Sicherheits- & Business-Continuity-Funktionen von CloudSigma. Wir haben auch eine detaillierte Anleitung über wie Sie die Backup-Funktionalität von CloudSigma ganz einfach einrichten.

Private Netzwerke und VPNs

Ein privates Netzwerk ist ein Netzwerk, auf das nur bestimmte Benutzer oder Server zugreifen und es nutzen können. Eine sichere Verbindung zwischen entfernten Geräten, die es ermöglicht, dass die Verbindung so funktioniert, als befände sie sich in einem privaten Netzwerk, ist ein VPN (ein virtuelles privates Netzwerk). Es bietet Ihnen die Möglichkeit, Verbindungen in einem privaten Netzwerk zu sichern und Remote-Server zu verbinden.

security measures

Wie erhöhen private Netzwerke die Sicherheit?

Wenn die Wahl zwischen öffentlichen und privaten Netzwerken für die interne Kommunikation besteht, ist letztere immer die bevorzugte Option. Denken Sie jedoch daran, dass andere Benutzer aus dem Rechenzentrum immer noch auf dasselbe Netzwerk zugreifen können. Das bedeutet, dass zusätzliche Sicherheitsmaßnahmen ergriffen werden müssen, um eine sichere Kommunikation zwischen den Servern zu gewährleisten.

Im Wesentlichen ist die Nutzung eines VPNs ein Ansatz, um abzugrenzen, was die Mitarbeiter Ihres Unternehmens sehen können. Die Korrespondenz ist absolut sicher und privat. Anwendungskonfigurationen würden es ermöglichen, den Datenverkehr der virtuellen Schnittstelle über das VPN zu leiten. Auf diese Weise werden nur die Dienste, die für die Interaktion mit Clients über das Internet bestimmt sind, für ein öffentliches Netzwerk freigegeben.

Wie schwierig ist die Implementierung eines VPNs?

Die Nutzung privater Netzwerke ist für Ihr Rechenzentrum ebenso einfach wie die Konfiguration Ihrer Anwendungen und Firewalls für die Nutzung eines privaten Netzwerks und die Aktivierung des VPNs während der Erstellung Ihres Servers. Es ist wichtig zu bedenken, dass andere Server denselben Netzwerkbereich nutzen wie rechenzentrumsweite private Netzwerke.

Die Ersteinrichtung eines VPNs ist etwas komplexer. Die dadurch gewonnene zusätzliche Sicherheit ist jedoch für die meisten Anwendungsfälle lohnenswert. Die Konfigurationsdaten und die gemeinsame Sicherheit müssen auf jedem Server im Netzwerk installiert und konfiguriert werden. Für detailliertere Informationen über wie ein VPN funktioniert und eine Übersicht über die Einrichtung von OpenVPN auf Ubuntu finden Sie in dieser Anleitung. Sie können auch diesem Tutorial folgen, das Sie durch die Schritte zur Verbindung eines VPN-Netzwerks mit der Infrastruktur von CloudSigma führt.

SSL/TLS-Verschlüsselung und Public-Key-Infrastruktur

security measures

Die Erstellung, Verwaltung und Validierung von Zertifikaten zur Identifizierung von Personen und zur Verschlüsselung der Kommunikation wird als Public-Key-Infrastruktur (PKI) bezeichnet. Verschiedene Entitäten können sich gegenseitig authentifizieren durch die Verwendung von SSL oder TLS-Zertifikaten. Danach können sie auch für den Aufbau einer verschlüsselten Kommunikation verwendet werden.

Wie Zertifikate die Sicherheit erhöhen

Um den Datenverkehr zu verschlüsseln und die Identität von Mitgliedern auf einem Server zu validieren, ist es unerlässlich, eine Zertifizierungsstelle (CA) einzurichten und alle Zertifikate Ihres Netzwerks einsehen zu können. Dies kann helfen, „Man-in-the-Middle“-Angriffe zu verhindern, bei denen der Server von einem Hacker imitiert und der Datenverkehr umgeleitet wird.

Die Konfiguration jedes Servers kann so eingerichtet werden, dass einer zentralen CA vertraut wird. Allen nachfolgenden Zertifikatssignaturen kann dann implizit vertraut werden. Wenn die SSL/TLS-Verschlüsselung von den Protokollen und Anwendungen unterstützt wird, die Ihr Server verwendet, können Sie Ihr System ohne den Overhead eines VPN-Tunnels sichern. Weitere Informationen finden Sie in unserem Tutorial zur Automatisierung der Verlängerung von LetsEncrypt-SSL-Zertifikaten für Nginx.

Schwierigkeit der Implementierung

Es kann anfangs sehr aufwendig sein, eine Zertifizierungsstelle zu konfigurieren und anschließend die restliche PKI einzurichten. Auch wenn neue Zertifikate erstellt, widerrufen oder signiert werden müssen, ist ein zusätzlicher Administrationsaufwand erforderlich.

Da die meisten Infrastrukturen wachsen müssen, ist die Implementierung einer vollwertigen PKO der sinnvollste Ansatz. Bis Sie einen Punkt erreichen, an dem sich die PKI trotz der zusätzlichen Administrationskosten lohnt, kann der Einsatz eines VPN zur Absicherung der Systemkomponenten als angemessene Übergangslösung dienen.

Erkennung von Systemeinbrüchen und Nutzung von Datei-Audits

Ein Datei-Audit ist ein Prozess, mit dem die Dateien und deren Attribute Ihres Systems in einem völlig sicheren, guten Zustand mit denen Ihres aktuellen Systems verglichen werden. Dies ist eine gute Methode, um unbefugte Systemänderungen zu finden und zu isolieren.

security measures

Ein IDS, Intrusion Detection System, bezieht sich auf eine Überwachungssoftware, die unbefugte Aktivitäten auf dem System im Auge behält. Im Allgemeinen nutzt sie Methoden des Datei-Audits, um nach unerwarteten Systemänderungen zu suchen.

Erhöhung der Sicherheit durch IDS/Datei-Audits

Über das reine Auditieren auf Dienstebene hinaus ist die Durchführung von Audits auf Dateiebene unerlässlich, um die Sicherheit Ihres Systems zu gewährleisten. Dies kann entweder durch einen automatisierten IDS-Prozess oder regelmäßig durch den Systemadministrator erfolgen.

Datei-Audits und IDS sind die einzigen echten Prozesse, um sicherzustellen, dass das System keine unerwarteten Änderungen erfahren hat. Die meisten Angreifer wollen Server, in die sie eindringen, über einen längeren Zeitraum ausnutzen. Um dies zu tun, müssen sie in der Lage sein, ihre Aktionen verdeckt auszuführen. Sie könnten Binärdateien durch anfällige oder kompromittierte Versionen ersetzen. Alle Dateien, die im System geändert wurden, werden durch ein Dateisystem-Audit erkannt. Dies gibt Ihnen die Gewissheit, sehr schnell zu wissen, ob die Integrität des Systems kompromittiert wurde.

Schwierigkeitsgrad der Implementierung

Die Implementierung von IDS und Datei-Audits kann ein sehr intensiver Prozess sein. Zu Beginn muss das System so konfiguriert werden, dass auszuschließende Pfade definiert und nicht standardmäßige Änderungen, die am System vorgenommen wurden, erfasst werden, um einen Ausgangszustand des Systems zu erstellen.

Auch der tägliche Betrieb wird mühsamer, da Abläufe das System erneut überprüfen müssen, bevor Updates ausgeführt werden. Der Ausgangszustand der Systemmessungen muss ebenfalls neu erstellt oder wiederhergestellt werden, um Änderungen der Softwareversionen als Teil des neuen Ausgangszustands des Systems zu erfassen. Die Audit-Berichte müssen zudem an einen anderen Ort übertragen werden. Das liegt daran, dass Sie verhindern müssen, dass ein Systemangreifer das Audit ändert, um unentdeckt zu bleiben, indem er seine Spuren verwischt.

Dies erhöht zwar sicherlich die administrative Belastung Ihres Systems, ist aber eine der wenigen absolut sicheren Methoden, um zu gewährleisten, dass keine der Dateien ohne Ihr Wissen geändert wurde. Einige der beliebtesten Intrusion-Detection- und Datei-Audit-Systeme sind Aide und Tripwire.

Isolierte Umgebungen

Jede Methode, bei der einzelne Komponenten in ihrem eigenen, dedizierten Bereich ausgeführt werden, wird als isolierte Ausführungsumgebung bezeichnet.

Isolated Environments

Dies kann bedeuten, dass bestimmte Anwendungskomponenten auf eigenen, dedizierten Servern untergebracht sind oder dass Ihre Dienste so konfiguriert sind, dass sie in chroot-Umgebungen (oder Containern) betrieben werden. Wie isoliert die Umgebung ist, hängt meist von den Gegebenheiten Ihrer Infrastruktur und den Anforderungen Ihrer Anwendung ab.

Erhöhung der Sicherheit durch isolierte Umgebungen

Durch die Isolierung Ihrer Prozesse in einzelne Umgebungen isolieren Sie auch, welche Prozesse von Sicherheitslücken betroffen sein könnten. Ähnlich wie Schotten und Abteilungen dazu beitragen, Rumpfbrüche auf Schiffen einzudämmen, kann ein Angreifer, wenn Sie die einzelnen Teile und Komponenten Ihres Systems trennen, selbst wenn er Zugriff auf eines davon erhält, nicht auf das gesamte vernetzte Netzwerksystem zugreifen.

Schwierigkeit der Implementierung

Die Komplexität der Isolierung Ihrer Anwendungen variiert je nach den von Ihnen gewählten Containment-Typen. Docker betrachtet Isolierung nicht als Sicherheitsmerkmal. Wenn Ihre Komponenten jedoch auf verschiedene Container aufgeteilt sind, lässt sich die Isolierung wesentlich einfacher erreichen. Sie können dieser Anleitung zur Installation von Docker auf unserer Infrastruktur folgen.

Wenn chroot-Umgebungen eingerichtet werden, wird ebenfalls ein gewisses Maß an Isolierung geboten. Dies ist jedoch keine völlig unüberwindbare Methode, da es Möglichkeiten gibt, aus einer solchen Umgebung auszubrechen. Dedizierte Maschinen für verschiedene Komponenten sind in der Regel der beste und einfachste Weg, um eine Isolierung zu erreichen. Aufgrund der Notwendigkeit zusätzlicher Maschinen ist dies jedoch kostspieliger.

Schlussgedanken

Die bereitgestellten Strategien sind nur einige der Schritte, die Sie unternehmen können, um die Sicherheit Ihres Systems zu erhöhen. Es ist erwähnenswert, dass die Wirksamkeit der Sicherheitsfunktionen abnimmt, je länger Sie mit deren Implementierung warten. Vor diesem Hintergrund ist es wichtig sicherzustellen, dass mit der Sicherheit nicht gewartet wird. Stattdessen sollte sie als eine der ersten Vorkehrungen beim Aufbau der Infrastruktur implementiert werden. Sobald Ihr System mit grundlegenden Schutzmaßnahmen ausreichend gesichert ist, können Sie mit der Aktivierung von Diensten und dem Hinzufügen von Anwendungen beginnen, im Wissen, dass diese standardmäßig in einer sicheren Umgebung ausgeführt werden.

Sicherheit ist jedoch kein stagnierender, sondern ein fließender Prozess. Sie muss gepflegt und wiederholt werden. Ihr sollte mit einer Mentalität ständiger Aufmerksamkeit und anhaltender Wachsamkeit begegnet werden. Hinterfragen Sie stets, welche Sicherheitsauswirkungen jede Systemänderung mit sich bringt.  Stellen Sie sicher, dass Betriebsumgebungen und Standardkonfigurationen die Sicherheit stets optimieren und mit ausreichend defensiver Software arbeiten.

Viel Spaß beim Computing!

author

Manpreet Singh

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.