Nur-Schreib-Remote-Backup-Lösungen, um das Löschen von Backups durch Hacker zu verhindern [geschlossen]


12

Stellen Sie sich dieses Szenario vor: Ich habe einen Linux-Server, der täglich automatisch über rsync oder ähnliches an einem entfernten Ort gesichert wird. Alles ist in Ordnung, bis ein Bösewicht Zugriff auf den Server erhält, mein automatisiertes Sicherungsskript findet und auch alles vom Sicherungsserver löscht.

Ich versuche, ein Remote-Backup-Dienstprogramm zu finden, mit dem Backups nur remote hinzugefügt, aber nicht entfernt werden können. Ich weiß jetzt nicht, wie ich etwas machen soll, das nur ssh-Schreiben verwendet, und ich habe versucht, etwas zu finden, das ssh nicht verwendet, aber nur Box Backup gefunden .

Ich bin jetzt möglich, aber ich möchte wissen, ob es einen kanonischen Weg gibt, dies zu erreichen.


Ich habe viele Antworten, danke an alle!

Antworten:


8

Am einfachsten wäre es wahrscheinlich, mit den Backups den anderen Weg zu gehen, d. H. vom Backup-Server ziehen. So führe ich meine Backups mit rdiff-backup aus.


8

Wenn Sie eine naive Sicherung durchführen (Einzelkopie, Überschreiben aller Daten), können Sie nicht das erreichen, was Sie möchten. Ein Angreifer kann jederzeit einen Stapel leerer Dateien (oder einen leeren Dateisatz) "sichern", was dazu führt Alle Ihre Daten gehen auf Wiedersehen. Ich gehe hier also davon aus, dass Sie ordnungsgemäße Archivierungssicherungen durchführen und Ihre Sicherungen so gut überwachen, dass alle Versuche, die Sicherung durch Senden eines leeren Sicherungssatzes zu löschen, erkannt werden, bevor dauerhafte Schäden verursacht werden.

Wenn Ihr rsync-over- (vermutlich) -SSH einen erzwungenen Befehl verwendet, um rsyncauf dem Ziel ausgeführt zu werden, sind Sie vor dem Löschen so sicher wie möglich. Da Sie nur einen bestimmten rsyncBefehl ausführen möchten , können Sie alle Argumente fest codieren und dann nur noch neue Daten schreiben. Die Archivierung ist einfach genug, indem jedes Mal ein Backup in einem neuen Baum erstellt und unveränderte Dateien mithilfe von Hardlinks mit der vorherigen Sicherung verknüpft werden. Dies spart Platz und Übertragungszeit.

Der andere Weg ist die Verwendung von Pull-Backups, bei denen der Backup-Server den rsyncVorgang initiiert und verwaltet. Dies bedeutet, dass der Client-Computer nicht einmal die Möglichkeit hat, einen eingeschränkten rsync-Befehl auszuführen, was bedeutet, dass der Angreifer keine Macht dazu hat Dateien löschen.

Dies alles setzt voraus, dass Ihr Sicherungsserver sicher ist. Wenn der Angreifer auf andere Weise darauf zugreifen kann, werden Sie unabhängig von Ihrer Tätigkeit entbeint.


5

Dies ist eine der Funktionen, die mir am Tarsnap- Sicherungsdienst gefallen . Es ermöglicht mir, Unterschlüssel mit Lese-, Schreib- und / oder Löschfunktionen zu erstellen.

Auf meinen Servern behalte ich im Allgemeinen Unterschlüssel mit Lese- und Schreibfunktionen. In Zeiten, in denen ich alte Sicherungsarchive beschneiden muss / möchte, verwende ich die Hauptschlüssel von meinem lokalen Desktop-Computer.

Beachten Sie, dass Tarsnap an sich ein Speicherdienst ist. Sie können die Tarsnap-Software nicht zum Erstellen von Sicherungen auf Ihren eigenen Speicherservern verwenden.


3

Versuchen Sie, eine schreibgeschützte Dateisystemschicht zu verwenden, die Ihr tatsächliches Ziel maskiert.

Ich habe hier ein Beispiel mit FUSE gefunden .

Sie können auch ein verschlüsseltes Dateisystem verwenden, in das jeder schreiben kann, das jedoch Ihr Schlüsselzertifikat ändern muss (scheint die sicherste Option zu sein, obwohl es wahrscheinlich mehr Planung während der Implementierung erfordert). Wenn Sie diesen Weg gehen, überprüfen Sie WOCFS (Write Only enCrypted FileSystem) und TrueCrypt

Während die erste Lösung Ihr Dateisystem "maskiert", das tatsächlich an anderer Stelle im Computer gespeichert ist und mit Berechtigungen für die Systembenutzer geändert werden kann, kann es in der zweiten Lösung nur mit den richtigen Schlüsseln geändert werden.


2

ftp: vsftp hat beispielsweise die Option, Löschvorgänge zu deaktivieren, sodass Sie nur Uploads durchführen können. Auf der anderen Seite erstellen Sie ein Skript, das Sicherungen löscht, die älter als x Tage sind. Ich benutze diese Option. Auf dem Hauptserver sind Backups einfache Backups mit tar + gz. Sie werden über SFTP auf einen Nas-Server hochgeladen und der Nas-Server löscht dann Backups, die älter als 7 Tage sind.

rsync: Der rsync-Server verfügt über eine Option zum Deaktivieren von Löschvorgängen, sodass dies möglicherweise auch für Sie funktioniert. Sie müssen jedoch das rsync-Protokoll / den rsync-Server verwenden. Optionen ablehnen = löschen

Aber dann müssten Sie die "Lösch" -Dateien von Zeit zu Zeit manuell löschen.


1

Also habe ich gelernt, dass es zwei grundlegende Strategien gibt:

  1. Ziehen Sie Backups vom Server, der mit etwas SSH-basiertem gesichert wird
  2. Richten Sie sshd auf dem Sicherungsserver so ein, dass nur sichere Befehle akzeptiert werden

Zitat aus der rdiff-backup- Manpage zur zweiten Strategie:

Obwohl ssh selbst sicher sein kann, birgt die standardmäßige Verwendung von rdiff-backup einige Sicherheitsrisiken. Wenn der Server beispielsweise als Root ausgeführt wird, kann ein Angreifer, der den Client kompromittiert hat, mit rdiff-backup beliebige Serverdateien überschreiben, indem er sie "sichert". Ein solches Setup kann sicherer gemacht werden, indem der Befehl sshd configuration option = "rdiff-backup --server" verwendet wird, möglicherweise zusammen mit den Optionen --restrict * für rdiff-backup. Weitere Informationen finden Sie auf der Webseite, im Wiki und in den Einträgen für die Optionen --restrict * auf dieser Manpage.

--restrict-update-only path
          ike --restrict, but only allow writes as part of an incremental
          backup.  Requests for  other  types  of  writes  (for  instance,
          deleting path) will be rejected.

Natürlich müssen Ihre Sicherungen inkrementell sein, und Sie sollten über ein Überwachungssystem verfügen, um zu verhindern, dass Hacker Junk-Daten sichern, um eventuell echte Daten von Ihrem inkrementellen Sicherungssystem zu "verdrängen".


0

Dies war wahrscheinlich vor langer Zeit nicht der Fall, als die Frage gestellt wurde, aber heutzutage gibt es verschiedene Sicherungsdienstprogramme, die dies entweder direkt als Option oder durch einfache Skripterstellung / zusätzliche Einstellungen unterstützen.

Einer der Begriffe, die häufig für diese Funktionalität verwendet werden, sind "Nur-Anhängen-Sicherungen".

Borg backuphat diese Funktionalität als eingebaute Option. Restickann so eingerichtet werden, dass sie mit einem Remote-Dateisystem rclonekommuniziert, das keine Löschvorgänge unterstützt, oder mit einem Server, der ein von rclone unterstütztes Backend für Restic unterstützt, wobei die integrierte Option rclone nur für Anhänge verwendet werden kann.

Darüber hinaus unterstützen viele Cloud-Anbieter (AWS, B2, Wasabi usw.) beim Sichern in einer Cloud das Vorhandensein von Buckets, die das Löschen von Daten nicht zulassen, oder indirekt durch das Vorhandensein eines ewigen Verlaufs für alle Dateien, wodurch das Löschen dieser Daten effektiv nicht unterstützt wird (diese Einstellung) wird manchmal pro Zugriffsschlüssel eingerichtet, nicht pro Bucket selbst).

(Update: Jemand hat Links zu sogenannten "neu erstellten Produkten" entfernt. Beachten Sie, dass keines dieser Produkte neu ist, sehr gut etabliert ist und einige der größten Produkte im Backup-Bereich sind. Ich habe keine Beziehung zu diesen Produkten und sie sind alle kostenlos und Open Source . Sie sind ungefähr so ​​neu wie rsync oder duplicity (Übertreibung, um einen Punkt zu veranschaulichen). Die Frage suchte speziell nach Möglichkeiten, dies zu implementieren, und verlinkt auf bestimmte Lösungen (im Gegensatz zu generischer "Software wahrscheinlich" hat diese Funktion ") sind hier gerechtfertigt. Tatsächlich bin ich auf diese Frage auch auf der Suche nach spezifischen Lösungen gekommen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.