Härtung der Time Machine-Sicherheit

Angesichts der Nachricht, dass es jetzt eine Ransomware für Mac in freier Wildbahn gibt , habe ich über die Sicherheit meiner Zeitmaschinen-Backups nachgedacht.

Berechtigungen

Zuerst habe ich mir die Berechtigungen der Dateien angesehen, die sich auf meiner Zeitkapsel befinden, und zwar die folgenden:

Datenverzeichnis

Benutzer (unbekannt) Lesen & Schreiben

Gruppe (jeder) Lesen & Schreiben

Einzelne Sparsebundles pro gesichertem Computer innerhalb des Datenverzeichnisses

Benutzer (unbekannt) Lesen & Schreiben

Gruppe (Mitarbeiter) Lesen & Schreiben

Gruppe (jeder) Lesen & Schreiben

Hier scheint es Raum für Verbesserungen zu geben. Erstens verstehe ich nicht, warum ein unbekannter Benutzer aufgeführt ist. Gibt es dafür einen Grund oder kann ich diesen Artikel löschen? Zweitens: Gibt es eine Notwendigkeit, „jeder“ und „Mitarbeitern“ Lese- und Schreibberechtigungen zu erteilen?

Wenn ich das richtig verstehe, werden Time Machine-Sicherungen vom gesicherten Prozess ausgeführt, der auf meinem Computer als Benutzer root ausgeführt wird . Es scheint also, dass nur der Root- Benutzer Lese- und Schreibzugriff haben muss. Ist das korrekt? Kann ich die vorhandenen Berechtigungen löschen und den Benutzer „root“ mit Lese- und Schreibberechtigungen hinzufügen?

Würde diese Änderung schließlich eine weitere Verteidigungslinie gegen Ransomware darstellen? Wenn eine Ransomware als normaler Benutzer X läuft und nicht root wird, könnte sie alle Dateien verschlüsseln, auf die X Schreibzugriff hat, aber sie könnte keine Time-Machine-Backups verschlüsseln, da nur root darauf Zugriff hat. Ist diese Linie oder Argumentation richtig?

Ausführen von OSX El Capitan, 10.11.3.

Antworten (2)

Update nach Diskussion mit bmike (siehe unten)

Während einer tatsächlichen Time Machine-Sicherung stellt backupd zwei Freigaben bereit. /Volumes/Whatever und /Volumes/Time Machine Backups. Während Ersteres nicht von einem Nicht-Root-Benutzer aufgerufen werden kann, ist Letzteres möglich. Es ist zwar möglich, ACLs von Dateien zu löschen und anschließend zu überschreiben. Das Sicherheitsproblem ist also weit offen.

Ursprüngliche Antwort

Als ich ein wenig mehr über das zugrunde liegende Montagesystem nachdachte, kam ich zu dem Schluss, dass meine ursprüngliche Frage eine fehlgeleitete Annahme enthielt, deren Entfernung die Frage vielleicht obsolet macht. Ich beschloss, eine Antwort zu schreiben, anstatt die Frage zugunsten der gleichermaßen Irregeleiteten zu entfernen.

Als ich die Berechtigungen meiner Sparsebundle-Dateien überprüfte, habe ich die Time Capsule-Festplatte manuell gemountet. Da ich die Festplatte als normaler Benutzer gemountet habe, wurde dieser Benutzer der Besitzer des Einhängepunkts (wenn ich im Terminal nachschaue, kann ich sehen, dass mein Benutzerkonto der Besitzer des Einhängepunkts ist, wobei "Staff" die Gruppe ist).

Nun war meine Annahme (die für mich nicht transparent war), dass, wenn Time Machine die Festplatte während einer Sicherungssitzung einbindet, sie im System vorhanden wäre, als ob ich sie manuell eingehängt hätte. Aber das ist falsch. Denn da backupd als root läuft, gehört der Mount-Point zu root (nach Überprüfung im Terminal ist der Besitzer "root", die Gruppe ist "wheel", Gruppe und Welt haben keine Rechte.) und damit ein Prozess, der zu einem normalen gehört Benutzer wäre nicht in der Lage, Dateien auf einer Time Machine Disk zu verschlüsseln, die von backupd gemountet wurde .

In einem Time-Capsule-Setup scheint also vorerst keine Gefahr zu bestehen, dass eine Ransomware das Backup verschlüsselt. Bei einer lokal angeschlossenen externen Festplatte kann es jedoch anders sein. Ich erinnere mich vage, dass ich, als ich noch eine externe Festplatte benutzte, die Time Machine-Partition als im Finder gemountet sehen konnte (was ich jetzt nicht tue) und daher möglicherweise mit Benutzerrechten gemountet wurde. Ich kann das nicht testen, da ich keine externe Time-Machine-Festplatte habe, aber vielleicht kann jemand anderes etwas dazu sagen.

Ich gebe Ihnen +1 dafür, dass Sie darüber nachgedacht und nicht nur das Problem angesprochen, sondern auch eine Antwort vorgeschlagen haben. Allerdings bin ich mit Ihrer Einschätzung der Sicherheit von Backups nicht einverstanden. Der Schutz des Einhängepunkts verhindert nur zufällige Fehler und nicht einen minimal kompetenten Programmierer. Selbst wenn der Einhängepunkt geschützt ist, solange der Code Datei für Datei funktioniert, ist keine Root-Berechtigung erforderlich, um die Benutzerdateien zu manipulieren.
@bmike, ich bin mir nicht sicher, ob ich Ihre Bemerkung zu meiner Einschätzung verstehe. Haben Sie mich so verstanden, dass nur der Einhängepunkt zu root gehört, die Dateien im Einhängepunkt jedoch nicht? Dies ist nicht der Fall: Der Einhängepunkt und alle Dateien im Einhängepunkt gehören root. Somit folgt die Sicherheit einfach dem Unix-Berechtigungsparadigma. Es würde mehr als einen minimal kompetenten Programmierer brauchen, um dies zu brechen, denn es scheint, dass man Root-Zugriff erlangen müsste, um dies zu brechen.
Siehe meine Antwort. Nicht nur, dass sudo/root nicht benötigt wird – Nicht-Administratoren könnten ihre Benutzerdateien sabotieren (aber nicht die Dateien eines anderen Benutzers).

Time Machine-Backups werden in erster Linie durch ACL geschützt, die jedem die Berechtigung verweigert, in eine Datei zu schreiben.

$ ls -le /Volumes/Whatever/Backups.backupdb/Mac/Latest/Macintosh\ HD/Users/me/Desktop/file.text 
-rw-r--r--@ 1 me    staff  - 14 Mar  8 11:54 /Volumes/Whatever/Backups.backupdb/Mac/Latest/Macintosh\ HD/Users/me/Desktop/file.text
0: group:everyone deny write,delete,append,writeattr,writeextattr,chown

Damit ein bösartiges Programm eine Datei auf dem Backup-Subsystem ändern kann, müsste es zuerst alle ACLs lesen und löschen und dann eine Änderung an einer Datei vornehmen, die im Time Machine-Verzeichnis gespeichert ist.

$ chmod -a# 0 /Volumes/Whatever/Backups.backupdb/Mac/Latest/Macintosh\ HD/Users/me/Desktop/file.text 

Nach dem obigen Befehl kann die Datei geändert oder vollständig gelöscht werden.

Der Code des Programms würde keinen speziellen Root-Zugriff benötigen - nur dass es unter einem normalen Admin-Benutzer lief, um diese Änderung vorzunehmen und dann in die Dateien schreiben zu können.

Weder Sandboxing noch Systemintegritätsschutz würden einen böswilligen Prozess, der als Administrator ausgeführt wird, daran hindern, Benutzerdatendateien auf einem Backup-Laufwerk zu verschlüsseln/zu ändern/zu löschen, das gemountet werden kann (Netzlaufwerke) oder angeschlossen und bereits gemountet ist.

Um Ihre Backups zu härten, müssten Sie auf die eine oder andere Weise eine Kopie offline haben, vorausgesetzt, der Angreifer weiß, dass er die ACL überprüfen und ändern/entfernen muss, bevor er sie manipuliert.

Ich würde mir Verschlüsselungsoptionen ansehen, um einige Dateien zu schützen, bei denen Sie es sich nicht leisten können, dass sich ein zufälliges Programm verjüngt, und optional Ihren Verschlüsselungsschlüssel nicht für ein zweites Backup-Volume in Ihrem Schlüsselbund speichern.

Auf diese Weise könnte das erste Backup-Ziel oft ausgeführt werden, aber anfällig für Malware sein. Das zweite Ziel würde Sie alle zwei Wochen oder so auffordern, dass es veraltet ist, wenn Sie es nicht mounten und eine manuellere Sicherung starten.

Es ist nicht ideal, aber ich würde vermuten, dass Apple das System überarbeiten könnte, wenn dieses potenzielle Risiko im Laufe der Zeit unter OS X zu einem tatsächlichen Risiko wird Es ist wahrscheinlicher, dass Apple die Ausführung auf Computern verbietet, die sich für den Gatekeeper-Schutz entscheiden. In diesem Fall sieht es so aus, als hätte es weniger als 48 Stunden nach der öffentlichen Ankündigung der Bedrohung gedauert, bis das Mittel von Apple verfügbar war.

Mit einem Administratorkonto kann ich das nicht reproduzieren. ls -le /Volumes/MyBackup/Imac.sparsebundle gibt mir die Berechtigung verweigert, es sei denn, ich sudo. Ich kann auch nicht chmod -a# 0 auf eine Datei im Besitz von root (ich habe eine Testdatei erstellt, weil ich nicht mit meinen Backups herumspielen möchte), da ich dadurch Operation nicht erlaubt habe.
Phillip und ich hatten eine kurze QA-Sitzung im Chat, um die Ergebnisse hier zu überprüfen, falls jemand interessiert ist.
Problem gelöst. Während einer tatsächlichen Time Machine-Sicherung stellt backupd zwei Freigaben bereit. /Volumes/Was auch immer und /Volumes/Time Machine Backups. Während Ersteres nicht von einem Nicht-Root-Benutzer aufgerufen werden kann, ist Letzteres möglich. Es ist zwar möglich, ACLs von Dateien zu löschen und anschließend zu überschreiben. Das Sicherheitsproblem ist also weit offen.
kann auf der neuesten macOS-Version nicht reproduziert werden. Es wird nichts /Volumes/Time Machine Backupserstellt und ohne sudo kann ich nichts aus der eigentlichen Sicherung löschen, und das Ändern der ACL erfordert auch erhöhte Berechtigungen.