KDPV - Reuters
Wenn Sie einen Server gemietet haben, haben Sie keine vollständige Kontrolle darüber. Das bedeutet, dass jederzeit speziell geschulte Personen zum Hosting-Anbieter kommen können und ihn auffordern, Ihre Daten bereitzustellen. Und der Hosting-Anbieter wird dies tun, wenn die Anforderung gesetzlich legitimiert ist.
Sie möchten unbedingt vermeiden, dass die Protokolle Ihres Webservers oder die Daten Ihrer Nutzer in falsche Hände geraten. Eine perfekte Sicherheit kann nicht erreicht werden. Sich vor einem Hosting-Anbieter zu schützen, der den Hypervisor besitzt und Ihnen eine virtuelle Maschine bereitstellt, ist nahezu unmöglich. Es gibt jedoch Möglichkeiten, das Risiko etwas zu verringern. Die Verschlüsselung von gemieteten Maschinen ist nicht so nutzlos, wie es auf den ersten Blick scheint. Gleichzeitig betrachten wir die Bedrohungen des Datenabbaus von physischen Servern.
Bedrohungsmodell
In der Regel wird der Hostanbieter versuchen, die Interessen des Kunden so weit wie gesetzlich möglich zu schützen. Wenn in einem Schreiben von offiziellen Stellen lediglich Zugangsdaten angefordert werden, wird der Hostanbieter keine Dumps aller Ihrer virtuellen Maschinen mit Datenbanken herausgeben. Zumindest sollte er das nicht. Wenn alle Daten angefordert werden, wird der Hostanbieter die virtuellen Festplatten mit allen Dateien kopieren, und Sie werden nichts davon erfahren.
Unabhängig von der weiteren Entwicklung ist Ihre Hauptaufgabe, den Angriff zu kompliziert und kostspielig zu gestalten. In der Regel gibt es drei Hauptarten von Bedrohungen.
Offiziell
Am häufigsten wird ein offizielles Schreiben an das Büro des Hostanbieters gesendet, in dem die Bereitstellung der erforderlichen Daten gemäß einer entsprechenden Anordnung gefordert wird. Wenn alles korrekt ausgefüllt ist, stellt der Hostanbieter die benötigten Zugangsdaten und andere Informationen den offiziellen Stellen zur Verfügung. In der Regel wird einfach darum gebeten, die erforderlichen Daten zu übersenden.
Gelegentlich, wenn es wirklich notwendig ist, erscheinen Vertreter der Strafverfolgungsbehörden persönlich im Rechenzentrum. Zum Beispiel, wenn Sie einen eigenen dedizierten Server haben und die Daten nur physisch abgeholt werden können.
In allen Ländern ist es erforderlich, dass Beweise vorliegen, um Zugang zu privatem Gelände, die Durchsuchung und andere Maßnahmen zu erhalten, da diese Informationen für die Ermittlungen zu einem Verbrechen von Bedeutung sein könnten. Zudem ist ein ordnungsgemäß ausgestellter Durchsuchungsbefehl notwendig. Hier können Besonderheiten des lokalen Rechts zu beachten sein. Wichtig ist zu verstehen, dass die Vertreter des Rechenzentrums im Falle der Einhaltung der offiziellen Verfahren niemanden über die Sicherheitskontrolle hinauslassen.
In den meisten Ländern ist es zudem nicht einfach möglich, funktionierende Hardware einfach zu entfernen. Beispielsweise wurde in Russland bis Ende 2018 gemäß Artikel 183 der Strafprozessordnung der Russischen Föderation, Teil 3.1, garantiert, dass bei der Durchführung von Beschlagnahmungen die Sicherstellung elektronischer Speicherträger in Anwesenheit eines Fachmanns erfolgt. Auf Antrag des rechtmäßigen Eigentümers der beschlagnahmten elektronischen Speicherträger oder des Inhabers der darauf gespeicherten Informationen wird durch den an der Beschlagnahme beteiligten Fachmann in Anwesenheit von Zeugen eine Kopie der Informationen auf andere elektronische Speicherträger angefertigt.
Leider wurde dieser Punkt später aus dem Artikel entfernt.
Geheim und inoffiziell
Das fällt bereits in den Zuständigkeitsbereich speziell ausgebildeter Personen von NSA, FBI, MI5 und anderen dreibuchstabigen Organisationen. Häufig sehen die Gesetze in diesen Ländern äußerst umfangreiche Befugnisse für solche Strukturen vor. Darüber hinaus gibt es fast immer ein gesetzliches Verbot für jede direkte und indirekte Offenlegung des Umstands der Zusammenarbeit mit solchen Sicherheitsbehörden. In Russland gibt es ähnliche .
Im Falle einer solchen Bedrohung Ihrer Daten werden diese höchstwahrscheinlich entnommen. Dabei können neben dem einfachen Zugriff auch eine Vielzahl unoffizieller Methoden wie Backdoors, Zero-Day-Schwachstellen, das Auslesen von Daten aus dem Arbeitsspeicher Ihrer virtuellen Maschine und andere unerfreuliche Dinge eingesetzt werden. Der Hoster ist dabei verpflichtet, den Sicherheitsbehörden bestmöglich zu unterstützen.
Unredlicher Mitarbeiter
Nicht alle Menschen sind gleich gut. Ein Administrator im Rechenzentrum könnte beschließen, sich etwas dazu zu verdienen und Ihre Daten zu verkaufen. Wie sich die Situation weiterentwickelt, hängt von seinen Befugnissen und Zugriffsrechten ab. Das Unangenehmste ist, dass ein Administrator mit Zugriff auf die Virtualisierungskonsole die vollständige Kontrolle über Ihre Maschinen hat. Es ist immer möglich, einen Snapshot zusammen mit dem gesamten Inhalt des Arbeitsspeichers zu erstellen und diesen dann in Ruhe zu untersuchen.
VDS
Sie haben also eine virtuelle Maschine, die Ihnen vom Hoster zur Verfügung gestellt wurde. Wie können Sie eine Verschlüsselung installieren, um sich abzusichern? Tatsächlich gibt es kaum Möglichkeiten dazu. Außerdem könnte sogar ein fremder Dedicated Server am Ende eine virtuelle Maschine sein, in die die benötigten Geräte integriert wurden.
Wenn die Aufgabe eines entfernten Systems nicht nur die Speicherung von Daten, sondern auch die Durchführung von Berechnungen umfasst, ist die einzige Möglichkeit, mit einem unsicheren Rechner zu arbeiten, die Implementierung . Dabei führt das System Berechnungen durch, ohne dass es versteht, was genau es macht. Leider sind die Kosten für die Implementierung einer solchen Verschlüsselung so hoch, dass ihre praktische Anwendung derzeit auf sehr spezifische Aufgaben beschränkt ist.
Zusätzlich befinden sich die gesamten verschlüsselten Volumes in einem zugänglichen Zustand, während die virtuelle Maschine läuft und irgendwelche Aktionen ausführt; andernfalls kann das Betriebssystem einfach nicht mit ihnen arbeiten. Das bedeutet, dass Sie, wenn Sie Zugriff auf die Virtualisierungskonsole haben, jederzeit einen Snapshot der aktiven Maschine erstellen und alle Schlüssel aus dem Arbeitsspeicher extrahieren können.
Viele Anbieter haben versucht, Hardwareverschlüsselungen für RAM zu implementieren, um sicherzustellen, dass selbst der Hosting-Anbieter keinen Zugang zu diesen Daten hat. Ein Beispiel hierfür ist die Intel Software Guard Extensions-Technologie, die Bereiche im virtuellen Adressraum schafft, die vor dem Lesen und Schreiben von anderen Prozessen, einschließlich des Betriebssystemkerns, geschützt sind. Leider können Sie diesen Technologien nicht vollständig vertrauen, da Sie durch Ihre virtuelle Maschine eingeschränkt sind. Zudem gibt es bereits Beispiele auf diese Technologie. Dennoch ist die Verschlüsselung virtueller Maschinen nicht so nutzlos, wie es scheinen mag.
Daten auf VDS verschlüsseln
Ich möchte gleich klarstellen, dass alles, was wir im Folgenden tun, nicht für einen vollwertigen Schutz ausreicht. Der Hypervisor ermöglicht es, benötigte Kopien zu erstellen, ohne den Dienst zu unterbrechen und für Sie unbemerkt.
- Wenn der Hosting-Anbieter auf Anfrage ein "kaltes" Abbild Ihrer virtuellen Maschine übermittelt, sind Sie relativ sicher. Dies ist das häufigste Szenario.
- Wenn der Hosting-Anbieter ein vollständiges Snapshot einer laufenden Maschine zur Verfügung stellt, sieht es ziemlich schlecht aus. Alle Daten werden im System unverschlüsselt eingebunden. Außerdem besteht die Möglichkeit, den RAM nach privaten Schlüsseln und ähnlichen Daten zu durchsuchen.
Standardmäßig hat der Hosting-Anbieter keinen Root-Zugriff, wenn Sie das Betriebssystem aus einem Vanilla-Image bereitgestellt haben. Es ist jedoch immer möglich, ein Medium mit einem Rescue-Image einzubinden und das Root-Passwort zu ändern, indem Sie in die Umgebung der virtuellen Maschine chrooten. Dies erfordert jedoch einen Neustart, der bemerkt wird. Zudem sind alle eingebundenen verschlüsselten Partitionen gesperrt.
Wenn die Bereitstellung der virtuellen Maschine jedoch nicht aus einem Vanilla-Image, sondern aus einem vorab vorbereiteten erfolgt, kann der Hosting-Anbieter oft ein privilegiertes Konto hinzufügen, um in Notfällen Unterstützung für den Kunden zu leisten. Beispielsweise um ein vergessenes Root-Passwort zurückzusetzen.
Selbst im Falle eines vollständigen Snapshots ist die Situation nicht so katastrophal. Der Angreifer erhält keine verschlüsselten Dateien, wenn Sie diese aus einem entfernten Dateisystem eines anderen Systems gemountet haben. Ja, theoretisch könnte man den RAM-Dump durchforsten und die Verschlüsselungsschlüssel extrahieren. Aber in der Praxis ist das äußerst kompliziert, und es ist sehr unwahrscheinlich, dass der Prozess über die einfache Dateiübertragung hinausgeht.
Bestellen wir einen Server

Für unsere Testzwecke nehmen wir einen einfachen Server in . Wir benötigen keine großen Ressourcen, deshalb wählen wir die Option mit der Abrechnung nach tatsächlich verbrauchten Megahertz und Traffic. Das sollte für ein bisschen Experimentieren ausreichen.
Der klassische dm-crypt des gesamten Volumes hat nicht funktioniert. Die Festplatte wird standardmäßig als eine Einheit mit Root für das gesamte Volume bereitgestellt. Ein verkleinern des ext4 Volumes mit gemountetem Root - das endet praktisch garantiert in einem Brick statt in einem funktionierenden Dateisystem. Ich habe es versucht) Ein Zauberstab hat nicht geholfen.
Erstellen wir einen KryptokContainer
Daher werden wir den Abschnitt nicht vollständig verschlüsseln, sondern verwenden Datei-Kryptocontainer, und zwar den geprüften und zuverlässigen VeraCrypt. Für unsere Zwecke ist das ausreichend. Zuerst laden wir das Paket mit der CLI-Version von der offiziellen Website herunter und installieren es. Sie können auch die Signatur überprüfen.
wget https://launchpad.net/veracrypt/trunk/1.24-update4/+download/veracrypt-console-1.24-Update4-Ubuntu-18.04-amd64.deb
dpkg -i veracrypt-console-1.24-Update4-Ubuntu-18.04-amd64.deb
Jetzt erstellen wir den Container irgendwo in unserem Home-Verzeichnis, damit wir ihn beim Neustart manuell einbinden können. Im interaktiven Modus legen Sie die Größe des Containers, das Passwort und die Verschlüsselungsalgorithmen fest. Sie können den patriotischen Algorithmus Kuznetschik und die Hashfunktion Stribog wählen.
veracrypt -t -c ~/my_super_secretNun lassen Sie uns nginx installieren, den Container einbinden und geheime Informationen hineinspeichern.
mkdir /var/www/html/images
veracrypt ~/my_super_secret /var/www/html/images/
wget https://upload.wikimedia.org/wikipedia/ru/2/24/Lenna.pngLassen Sie uns die Datei /var/www/html/index.nginx-debian.html leicht anpassen, um die gewünschte Seite zu erhalten und zu überprüfen.
Wir verbinden uns und überprüfen es.

Der Container ist eingebunden, die Daten sind zugänglich und werden bereitgestellt.

Hier ist die Maschine nach dem Neustart. Die Daten liegen sicher in ~/my_super_secret.
Wenn Sie es unbedingt brauchen und auf Hardcore stehen, können Sie das gesamte Betriebssystem verschlüsseln, sodass beim Neustart eine SSH-Verbindung und die Eingabe eines Passworts erforderlich sind. Dies reicht auch für das einfache Szenario der Entnahme "kalter Daten" aus. Hier ist und zur Remote-Datenträgerverschlüsselung. Obwohl es bei VDS komplex und überflüssig ist.
Bare Metal
Es ist nicht ganz einfach, einen eigenen Server im Rechenzentrum zu betreiben. Ein fremder Dedicated Server kann sich als virtuelle Maschine herausstellen, auf die alle Geräte zugreifen. Interessant wird es in Bezug auf den Schutz, wenn Sie die Möglichkeit haben, Ihren vertrauenswürdigen physischen Server im Rechenzentrum zu platzieren. Hier können Sie dann vollständig auf traditionelle dm-crypt, VeraCrypt oder eine andere Verschlüsselung Ihrer Wahl zurückgreifen.
Es ist wichtig zu verstehen, dass bei der Implementierung einer umfassenden Verschlüsselung der Server nach einem Neustart nicht selbstständig hochfahren kann. Es wird erforderlich sein, eine Verbindung zu einem lokalen IP-KVM-Interface, IPMI oder einem ähnlichen System herzustellen. Anschließend geben wir manuell den Master-Schlüssel ein. Dieses Verfahren ist aus Sicht der Kontinuität und Fehlertoleranz eher suboptimal, aber es gibt hier keine nennenswerten Alternativen, wenn die Daten so wertvoll sind.

NCipher nShield F3 Hardware Security Module
Eine sanftere Variante sieht vor, dass die Daten verschlüsselt sind und der Schlüssel sich direkt im Server in einem speziellen HSM (Hardware Security Module) befindet. Diese Geräte sind in der Regel sehr funktional und bieten nicht nur hardwarebasierte Kryptografie, sondern verfügen auch über Mechanismen zur Erkennung physischer Angriffe. Wenn jemand anfängt, Ihren Server mit einem Winkelschleifer zu bearbeiten, wird das HSM mit einer unabhängigen Stromquelle die Schlüssel, die es in seinem Speicher hat, zurücksetzen. Der Angreifer erhält somit nur verschlüsselten Müll. Dabei kann das Hochfahren automatisch erfolgen.
Das Entfernen von Schlüsseln ist eine deutlich schnellere und humanere Option als die Aktivierung einer Thermitsprengladung oder eines elektromagnetischen Auslösers. Für solche Geräte werden Sie von Ihren Nachbarn im Rechenzentrum lange Zeit geschlagen werden. Zumal im Falle einer Verwendung von Verschlüsselung auf den Speichermedien Sie praktisch keinen Overhead erleben. All dies geschieht transparent für das Betriebssystem. Allerdings muss man in diesem Fall dem hypothetischen Samsung vertrauen und hoffen, dass dort ehrliches AES256 und nicht banales XOR verwendet wird.
Dabei darf nicht vergessen werden, dass alle überflüssigen Ports physisch abgeschaltet oder einfach mit einem Compound gefüllt werden müssen. Andernfalls geben Sie Angreifern die Möglichkeit, auszuführen. Wenn Sie ein herausragendes PCI Express oder Thunderbolt haben, einschließlich USB c mit seiner Unterstützung – sind Sie anfällig. Der Angreifer kann über diese Ports einen Angriff durchführen und direkten Zugriff auf den Speicher mit den Schlüsseln erhalten.

In einem raffinierten Szenario könnte ein Angreifer einen Cold Boot-Angriff durchführen. Dabei wird einfach eine große Menge flüssigen Stickstoffs auf Ihren Server gegossen, gefrorene Speichermodule werden grob herausgezogen und vom Speicher wird ein Dump mit allen Schlüsseln gemacht. Oft reicht es aus, mit einem normalen Kühlmittel-Spray und Temperaturen um -50 Grad zu arbeiten. Es gibt auch eine präzisere Methode. Wenn Sie das Booten von externen Geräten nicht deaktiviert haben, wird der Angriff für den Angreifer noch einfacher:
- Speichermodule ohne Gehäuseöffnung einfrieren
- Ihre bootfähige USB-Stick anschließen
- Mit speziellen Tools Daten aus dem Arbeitsspeicher extrahieren, die den Neustart überlebt haben, dank der Kälteeinwirkung.
Teile und herrsche
Okay, wir haben nur virtuelle Maschinen, aber wir möchten das Risiko eines Datenlecks irgendwie reduzieren.
Grundsätzlich könnte man die Architektur überdenken und die Speicherung von Daten und die Verarbeitung in verschiedene Rechtsräume aufteilen. Zum Beispiel könnte das Frontend mit den Verschlüsselungsschlüsseln beim Anbieter in Tschechien gehostet werden, während das Backend mit den verschlüsselten Daten irgendwo in Russland liegt. Im Falle eines standardmäßigen Versuchs eines Zugriffes ist es äußerst unwahrscheinlich, dass die Strafverfolgungsbehörden dies gleichzeitig in verschiedenen Jurisdiktionen durchführen können. Zudem schützt uns dies teilweise vor einem Szenario, in dem ein Snapshot erstellt wird.
Oder man könnte eine absolut saubere Lösung in Betracht ziehen – End-to-End-Verschlüsselung. Natürlich überschreitet dies die Vorgaben und bedeutet, dass keine Berechnungen auf der Seite des entfernten Servers durchgeführt werden. Dennoch ist dies eine durchaus akzeptable Option, wenn es um die Speicherung und Synchronisierung von Daten geht. Beispielsweise ist dies sehr komfortabel im gleichen Nextcloud umgesetzt. Gleichzeitig bleiben die Synchronisation, Versionierung und andere Vorteile der Server-Seite erhalten.
Gesamt
Es gibt keine perfekt geschützten Systeme. Die Aufgabe besteht nur darin, den Angriff teurer zu machen als der potenzielle Gewinn.
Durch die Kombination von Verschlüsselung und getrennten Speichermöglichkeiten bei verschiedenen Anbietern können die Risiken beim Zugriff auf Daten in einer virtuellen Umgebung verringert werden.
Eine mehr oder weniger zuverlässige Möglichkeit ist die Nutzung eines eigenen Servers.
Dennoch müssen Sie dem Hostanbieter in irgendeiner Weise vertrauen. Darauf basiert die gesamte Branche.
Quelle: habr.com
