kdpv - Reuters
Wenn Sie einen Server gemietet haben, haben Sie keine vollständige Kontrolle darüber. Das bedeutet, dass speziell geschulte Personen jederzeit zum Hosting-Anbieter kommen und alle Ihre Daten anfordern können. Und der Anbieter wird diese herausgeben, wenn die Anforderung gesetzlich korrekt formuliert ist.
Sie möchten auf keinen Fall, dass die Protokolle Ihres Webservers oder die Benutzerdaten in die falschen Hände geraten. Es ist unmöglich, einen perfekten Schutz aufzubauen. Sich vor einem Anbieter zu schützen, der den Hypervisor besitzt und Ihnen eine virtuelle Maschine zur Verfügung stellt, ist fast unmöglich. Aber es ist möglich, die Risiken ein wenig zu senken. Die Verschlüsselung gemieteter Maschinen ist nicht so nutzlos, wie es auf den ersten Blick scheint. Außerdem werden wir uns die Bedrohungen durch Datenextraktion von physischen Servern ansehen.
Bedrohungsmodell
In der Regel wird der Anbieter versuchen, die Interessen des Kunden so weit wie möglich gesetzlich zu schützen. Wenn in einem Schreiben von offiziellen Stellen nur nach den Zugriffsprotokollen gefragt wird, wird der Anbieter nicht alle Dumps Ihrer virtuellen Maschinen mit Datenbanken herausgeben. Zumindest sollte er das nicht. Wenn nach allen Daten gefragt wird, kopiert der Anbieter die virtuellen Festplatten mit allen Dateien, und Sie werden darüber nicht informiert.
Unabhängig vom Szenario ist Ihre Hauptaufgabe, einen Angriff so kompliziert und kostspielig wie möglich zu gestalten. In der Regel gibt es drei Hauptvarianten der Bedrohung.
Offiziell
Am häufigsten wird ein schriftliches Schreiben an das offizielle Büro des Hosting-Anbieters gesendet, in dem die Herausgabe der erforderlichen Daten gemäß dem entsprechenden Beschluss gefordert wird. Wenn alles korrekt formuliert ist, stellt der Anbieter die benötigten Zugriffsprotokolle und andere Daten den offiziellen Stellen zur Verfügung. Normalerweise wird einfach darum gebeten, die erforderlichen Daten zu senden.
Gelegentlich, wenn es unbedingt erforderlich ist, kommen Vertreter der Strafverfolgungsbehörden persönlich ins Rechenzentrum. Zum Beispiel, wenn Sie einen eigenen dedizierten Server haben und die Daten nur physisch entnommen werden können.
In all countries, access to private property, conducting searches, and other activities require evidence that such data may contain important information for the investigation of a crime. Additionally, a properly issued search warrant is necessary according to all regulations. There may be nuances related to local legislation. The main point to understand is that if the official process is followed correctly, representatives of the data center will not allow anyone beyond the checkpoint.
Moreover, in most countries, you cannot simply take working equipment. For example, in Russia until the end of 2018, according to Article 183 of the Criminal Procedure Code of the Russian Federation, part 3.1, it was guaranteed that during the seizure process, the removal of electronic information carriers would take place with the participation of a specialist. At the request of the legitimate owner of the seized electronic data carriers or the holder of the information contained on them, the specialist participating in the seizure, in the presence of witnesses, would carry out the copying of information onto other electronic data carriers.
Unfortunately, this point was later removed from the article.
Covert and unofficial
This already falls under the jurisdiction of specially trained individuals from the NSA, FBI, MI5, and other three-letter agencies. Most often, legislation in various countries provides extremely broad powers for such structures. Moreover, there is almost always a legal prohibition on any direct or indirect disclosure of the very fact of cooperation with such law enforcement agencies. There are similar norms in Russia. .
In the event of such a threat to your data, they will almost certainly be extracted. In addition to simple seizure, all kinds of unofficial arsenals of backdoors, zero-day vulnerabilities, extraction of data from the RAM of your virtual machine, and other such measures may be used. The host will be obliged to assist law enforcement specialists as much as possible.
Dishonest employee
Nicht alle Menschen sind gleich gut. Manche Administratoren im Rechenzentrum könnten sich entscheiden, etwas dazu zu verdienen und Ihre Daten zu verkaufen. Die weitere Entwicklung der Ereignisse hängt von ihren Befugnissen und Zugriffsrechten ab. Das Unangenehmste ist, dass ein Administrator mit Zugang zur Virtualisierungskonsole die volle Kontrolle über Ihre Maschinen hat. Man kann jederzeit einen Snapshot zusammen mit dem gesamten Inhalt des Arbeitsspeichers erstellen und dann in Ruhe untersuchen.
VDS
Sie haben also eine virtuelle Maschine, die Ihnen vom Hosting-Anbieter bereitgestellt wurde. Wie können Sie eine Verschlüsselung einrichten, um sich abzusichern? Eigentlich kaum. Mehr noch, selbst ein fremder dedizierter Server kann sich letztendlich als virtuelle Maschine herausstellen, in die die erforderlichen Geräte eingeklinkt wurden.
Wenn die Aufgabe des entfernten Systems nicht nur die Speicherung von Daten, sondern die Durchführung bestimmter Berechnungen ist, wird die einzige Möglichkeit im Umgang mit einer nicht vertrauten Maschine die Implementierung von sein. Dabei wird das System Berechnungen durchführen, ohne zu verstehen, was genau es tut. Leider sind die Overheads für die Implementierung dieser Verschlüsselung so hoch, dass ihre praktische Anwendung derzeit auf sehr enge Aufgaben beschränkt ist.
Außerdem sind alle verschlüsselten Volumes, sobald die virtuelle Maschine läuft und bestimmte Aktionen durchführt, in einem zugänglichen Zustand, sonst kann das Betriebssystem einfach nicht mit ihnen arbeiten. Das bedeutet, dass Sie, wenn Sie Zugang zur Virtualisierungskonsole haben, immer einen Snapshot der arbeitenden Maschine erstellen und alle Schlüssel aus dem Arbeitsspeicher extrahieren können.
Viele Anbieter haben versucht, eine Hardware-Verschlüsselung des RAM zu organisieren, damit selbst der Hostanbieter keinen Zugriff auf diese Daten hat. Zum Beispiel die Technologie Intel Software Guard Extensions, die Bereiche im virtuellen Adressraum schafft, die vor dem Lesen und Schreiben von außen durch andere Prozesse, einschließlich des Betriebssystemkerns, geschützt sind. Leider können Sie diesen Technologien nicht voll vertrauen, da Sie durch Ihre virtuelle Maschine eingeschränkt sind. Außerdem gibt es bereits Beispiele für auf diese Technologie. Dennoch ist die Verschlüsselung virtueller Maschinen nicht so sinnlos, wie es scheinen mag.
Verschlüsseln von Daten auf VDS
Zunächst sei gesagt, dass alles, was wir unten tun, keinen vollständigen Schutz bietet. Der Hypervisor ermöglicht es, benötigte Kopien zu erstellen, ohne den Dienst zu stoppen und ohne dass Sie es merken.
- Wenn der Anbieter auf Anfrage ein "kaltes" Abbild Ihrer virtuellen Maschine liefert, sind Sie relativ sicher. Dies ist das häufigste Szenario.
- Wenn der Anbieter ein vollständiges Snapshot einer laufenden Maschine liefert, sieht es ziemlich schlecht aus. Alle Daten werden im System im Klartext montiert. Außerdem besteht die Möglichkeit, den RAM nach privaten Schlüsseln und ähnlichen Daten zu durchsuchen.
Standardmäßig hat der Anbieter keinen Root-Zugriff, wenn Sie das Betriebssystem aus einem Vanilla-Image ausgeführt haben. Man kann immer ein Medium mit einem Rescue-Image anmontieren und das Passwort für Root ändern, indem man einen Chroot in die Umgebung der virtuellen Maschine macht. Dies erfordert jedoch einen Neustart, was bemerkt wird. Außerdem werden alle montierten verschlüsselten Partitionen geschlossen sein.
Wenn jedoch die Bereitstellung der virtuellen Maschine nicht aus einem Vanilla-Image erfolgt, sondern aus einem zuvor vorbereiteten, kann der Anbieter häufig ein privilegiertes Konto hinzufügen, um bei Notfällen des Kunden zu helfen. Zum Beispiel, um ein vergessenes Root-Passwort zu ändern.
Selbst im Falle eines vollständigen Snapshots ist nicht alles so schlimm. Ein Angreifer erhält keine verschlüsselten Dateien, wenn Sie diese aus einem entfernten Dateisystem eines anderen Computers montiert haben. Ja, theoretisch kann man den RAM-Dump durchforsten und die Verschlüsselungsschlüssel dort extrahieren. Aber in der Praxis ist das sehr kompliziert, und es ist sehr unwahrscheinlich, dass der Prozess über die bloße Dateiübertragung hinausgeht.
Wir bestellen eine Maschine

Für unsere Testzwecke nehmen wir eine einfache Maschine in . Wir benötigen nicht viele Ressourcen, daher wählen wir die Option mit Zahlung für tatsächlich verbrauchte Megahertz und Traffic. Das reicht gerade aus, um ein wenig zu experimentieren.
Der klassische dm-crypt für die gesamte Partition hat nicht funktioniert. Die Festplatte wird standardmäßig als ein Block mit Root für die gesamte Partition bereitgestellt. Die Partition mit ext4 auf dem montierten Root zu verringern, ist praktisch ein garantierter Brick statt eines Dateisystems. Ich habe es ausprobiert) Der Tamburin hat nicht geholfen.
Wir erstellen einen Kryptocontainer
Daher werden wir nicht den gesamten Abschnitt verschlüsseln, sondern verwenden Dateikryptocontainer, insbesondere das geprüfte und zuverlässige 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 gleich 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, um ihn manuell bei einem Neustart zu mounten. Im interaktiven Modus geben Sie die Containergröße, das Passwort und die Verschlüsselungsalgorithmen an. Sie können den patriotischen Cipher Kuznetschik und die Hash-Funktion Stribog wählen.
veracrypt -t -c ~/my_super_secretJetzt lassen Sie uns nginx installieren, den Container einhängen und geheime Informationen hochladen.
mkdir /var/www/html/images
veracrypt ~/my_super_secret /var/www/html/images/
wget https://upload.wikimedia.org/wikipedia/ru/2/24/Lenna.pngWir passen /var/www/html/index.nginx-debian.html leicht an, um die gewünschte Seite zu erhalten und können überprüfen.
Wir verbinden uns und überprüfen.

Der Container ist gemountet, die Daten sind verfügbar und werden bereitgestellt.

Hier ist die Maschine nach dem Neustart. Die Daten sind sicher in ~/my_super_secret gespeichert.
Wenn es wirklich nötig ist und Sie Hardcore wollen, können Sie das gesamte Betriebssystem verschlüsseln, sodass es beim Neustart eine SSH-Verbindung und das Eingeben eines Passworts erfordert. Das wird auch im Szenario einer einfachen Sicherstellung „kalter Daten“ ausreichend sein. Hier ist und zur Fernverschlüsselung von Festplatten. Obwohl es im Fall von VDS kompliziert und übertrieben ist.
Bare metal
Es ist nicht so einfach, einen eigenen Server im Rechenzentrum aufzustellen. Ein fremder Dedicated-Server könnte sich als virtuelle Maschine herausstellen, über die alle Geräte zugänglich sind. Aber etwas Interessantes in Bezug auf den Schutz beginnt dann, wenn Sie die Möglichkeit haben, Ihren vertrauenswürdigen physischen Server im Rechenzentrum unterzubringen. Hier können Sie dann voll und ganz traditionelle dm-crypt, VeraCrypt oder jede andere Verschlüsselungsmethode Ihrer Wahl nutzen.
Man muss verstehen, dass der Server beim Einsatz von voller Verschlüsselung nach einem Neustart nicht selbstständig hochfahren kann. Es wird notwendig sein, eine Verbindung zur lokalen IP-KVM-Schnittstelle, IPMI oder einer ähnlichen Lösung herzustellen. Danach geben wir manuell den Master-Schlüssel ein. Das Schema sieht aus Sicht der Kontinuität und Ausfallsicherheit nicht ideal aus, aber es gibt keine wirklich alternativen Optionen, wenn die Daten so wertvoll sind.

NCipher nShield F3 Hardware-Sicherheitsmodul
Eine weichere 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. In der Regel handelt es sich dabei um sehr funktionale Geräte, die nicht nur hardwarebasierte Kryptografie bieten, sondern auch Mechanismen zur Erkennung von physischen Eindringversuchen besitzen. Wenn jemand beginnt, Ihren Server mit einer Flex zu bearbeiten, wird das HSM mit einer unabhängigen Stromquelle die gespeicherten Schlüssel löschen. Der Angreifer erhält einen verschlüsselten Brei. Außerdem kann ein automatischer Neustart erfolgen.
Das Löschen der Schlüssel ist eine viel schnellere und humanere Methode, als ein Thermitbombe oder einen elektromagnetischen Impuls zu aktivieren. Für solche Geräte würden Sie von Ihren Nachbarn im Rechenzentrum lange verprügelt werden. Umso mehr, als im Falle des Einsatzes von verschlüsselung direkt auf den Speichermedien kaum ein Overhead zu spüren ist. Dies geschieht transparent für das Betriebssystem. Allerdings muss man dem hypothetischen Samsung vertrauen und hoffen, dass da ehrliches AES256 und nicht banales XOR verwendet wird.
Dabei darf man nicht vergessen, dass alle überflüssigen Ports physisch deaktiviert oder einfach mit einem Compound vergossen werden müssen. Andernfalls geben Sie Angreifern die Möglichkeit, . Wenn Sie einen herausragenden PCI Express oder Thunderbolt haben, einschließlich USB c mit dessen Unterstützung – sind Sie anfällig. Ein Angreifer kann über diese Ports einen Angriff durchführen und direkten Zugriff auf den Speicher mit den Schlüsseln erhalten.

In einem äußerst raffinierten Szenario kann der Angreifer einen Cold-Boot-Angriff durchführen. Dabei gießt er einfach eine ordentliche Menge flüssigen Stickstoff in Ihren Server, entfernt grob die gefrorenen RAM-Module und entnimmt von ihnen ein Dump mit allen Schlüsseln. Oft reicht es aus, einen normalen Kühlspray und eine Temperatur von etwa -50 Grad zu verwenden. Es gibt auch eine vorsichtigere Variante. Wenn Sie das Booten von externen Geräten nicht deaktiviert haben, wird der Angriffsalgorithmus noch einfacher:
- Die RAM-Module ohne Öffnung des Gehäuses einfrieren
- Seinen eigenen bootfähigen USB-Stick anschließen
- Mit speziellen Tools Daten aus dem Arbeitsspeicher zu extrahieren, die den Neustart überlebt haben, dank des Einfrierens.
Teile und herrsche
Okay, wir haben nur virtuelle Maschinen, aber wir möchten die Risiken von Datenlecks irgendwie reduzieren.
Man könnte in der Tat versuchen, die Architektur zu überdenken und die Datenspeicherung und -verarbeitung auf verschiedene Jurisdiktionen zu verteilen. Zum Beispiel das Frontend mit den Verschlüsselungsschlüsseln beim Hoster in Tschechien und das Backend mit den verschlüsselten Daten irgendwo in Russland. Im Falle eines standardmäßigen Beschlagnahmeversuchs ist es sehr unwahrscheinlich, dass Sicherheitsbehörden dies gleichzeitig in verschiedenen Jurisdiktionen durchführen können. Außerdem schützt uns dies teilweise vor dem Szenario einer Snapshot-Entnahme.
Oder man könnte eine ganz saubere Option in Betracht ziehen – End-to-End-Verschlüsselung. Natürlich geht das über die Anforderungen hinaus und schließt Berechnungen auf der Seite des Remote-Servers aus. Dennoch ist es eine durchaus akzeptable Lösung, wenn es um die Speicherung und Synchronisierung von Daten geht. Beispielsweise ist dies sehr angenehm im selben Nextcloud umgesetzt. Dabei bleiben Synchronisierung, Versionierung und andere Funktionen der Serverseite nicht auf der Strecke.
Insgesamt
Es gibt keine perfekt geschützten Systeme. Die Aufgabe besteht lediglich darin, einen Angriff teurer zu machen als der potenzielle Gewinn.
Ein gewisses Maß an Risikominderung beim Zugriff auf Daten auf virtuellen Servern kann erreicht werden, indem man Verschlüsselung und getrennte Speicherung bei verschiedenen Hostern kombiniert.
Eine mehr oder weniger zuverlässige Option ist die Nutzung eines eigenen physischen Servers.
Der Hoster muss jedoch so oder so vertraut werden. Darauf beruht die gesamte Branche.
Quelle: habr.com
