Administratorrechte für die Sandbox

Ich habe gerade die iAntivirus-App aus dem Mac App Store heruntergeladen. Ich wollte, dass es meine gesamte Festplatte auf Viren scannt, also präsentierte es mir ein Öffnen-Dialogfeld, das auf das Stammverzeichnis der Festplatte zeigt (damit der Computer außerhalb seiner Sandbox darauf zugreifen kann). Ich habe auf OK geklickt und die App gestartet.

Was ich seltsam fand, war, dass mir nie ein Anmeldefeld angezeigt wurde. Das Programm erhielt Zugriff auf Dateien im Systemordner, Bibliotheksordner usw., die nur ich bearbeiten konnte, indem ich einen Administratorbenutzernamen und ein Kennwort eingab. Ist das ein Sicherheitsproblem beim Sandboxing oder soll es so funktionieren?

Antworten (2)

Die App kann Lese-/Schreibzugriff auf einen Standort haben, wenn sie Ihre Erlaubnis erhält, indem sie eine Berechtigung als Teil der App-Sandbox verwendet, mit anderen Worten, so soll sie funktionieren. Die App ist codesigniert und vertrauenswürdig, sie bittet um Ihre Erlaubnis, theoretisch sollte alles gut sein.

Wie in der Mac-Technologieübersicht erwähnt :

App-Sandbox

App Sandbox wurde in OS X v10.7 eingeführt und bietet eine letzte Verteidigungslinie gegen gestohlene, beschädigte oder gelöschte Benutzerdaten, wenn bösartiger Code Ihre App ausnutzt. App Sandbox minimiert auch den Schaden durch Codierungsfehler. Seine Strategie ist zweigeteilt:

Mit App Sandbox können Sie beschreiben, wie Ihre App mit dem System interagiert. Das System gewährt Ihrer App dann nur den Zugriff, den sie benötigt, um ihre Aufgabe zu erledigen, und nicht mehr.

App Sandbox ermöglicht es dem Benutzer, Ihrer App transparent zusätzlichen Zugriff zu gewähren, indem er die Dialogfelder „Öffnen“ und „Speichern“, Drag-and-Drop und andere vertraute Benutzerinteraktionen verwendet.

Insbesondere kann ein Entwickler die folgende Berechtigung implementieren, wie hier in Enabling App Sandbox erwähnt, genau das, was Sie in Ihrer Frage beschrieben haben, also ist dies wahrscheinlich die Berechtigung, die der Entwickler des A/V-Programms verwendet hat, um nur Lese- und Schreibzugriff zu erhalten.

com.apple.security.files.user-selected.read-write

Lese-/Schreibzugriff auf Dateien, die der Benutzer über einen Öffnen- oder Speichern-Dialog ausgewählt hat

Beachten Sie, dass dies nicht dasselbe ist wie ein echter Administratorbenutzer, da dem Programm nicht das Ausführungsrecht gewährt würde.

Wow, ich verstehe, warum es funktioniert, aber es ist immer noch ein wenig überraschend. Ihren Angaben zufolge könnte ich einer App Zugriff auf den Desktop-Ordner eines anderen Benutzers (oder einen anderen Ordner, für den ich keine Zugriffsberechtigung habe) gewähren, solange ich einen der übergeordneten Ordner in einem Öffnen-Dialog öffne. Es vereitelt irgendwie den Zweck von Berechtigungen, es sei denn, ich sehe es nicht richtig.
@Jack Diese Antwort ist nicht ganz richtig. Geowar hat unten eine Antwort bereitgestellt, die eine genauere Darstellung dessen darstellt, was passiert – die App verwendet die Berechtigungen des Benutzers, einschließlich Lesen/Schreiben, aber wenn sie keine Berechtigung haben, gewährt das NSOpen-Dialogfeld sie nicht.

Du siehst es nicht richtig. Sandboxing umgeht keine Dateiberechtigungen. Wenn Sie keinen Schreibzugriff auf eine Datei haben, erhalten Sie mit der Berechtigung zum Schreiben von Dateien keinen Schreibzugriff auf die Datei. Ebenso können die NSOpen/NSSave-Dialoge auf nichts zugreifen, auf das sie bei deaktiviertem Sandboxing nicht zugreifen können.