iZac Newton schrieb am 05.07.2024 15:14:
...
Ich möchte eine "Reverse Sandbox", bzw. einen "Safe Room", mit der ich die Daten einzelner Anwendungen schützen kann.
Dann muss jede Applikation ihre Daten mit einem eigenen Passwort verschlüsseln und du musst dieses Passwort bei jedem Lese- und Schreibvorgang neu eingeben, denn es darf nirgends abgespeichert sein, nicht mal länger im RAM bleiben.
DafĂĽr gibt es im Betriebssystem z. B. "Keychains".
100% sicher sein kannst du trotzdem nicht, denn ein Angreifer, der schon root ist und sämtliche Sicherheitsmechanismen umgangen hat, kann ja auch deine Keyboardeingabe abhören oder sich den Schlüssel in dem kurzen Moment aus dem RAM holen, in dem er da gebraucht wird.
... oder auch gleich die unverschlĂĽsselten Daten im RAM lesen ...
Bei dem Problem, das in Bezug auf ChatGPT angesprochen wurde, oder beim Zugriff auf die gespeicherten E-Mails, was ich als noch größeres Problem ansehen würde, geht es ja nicht um root-Zugriff. Da reichen die Zugriffsrechte des angemeldeten Benutzers, und eine Schadsoftware, die mit "full disk access" ("full" unterliegt trotzdem noch den Beschränkungen des angemeldeten Benutzers!) läuft.
Also wie soll das -- auch nur rein theoretisch -- ĂĽberhaupt praktikabel gehen?
Man kann ja auf Betriebssystemebene durchaus den Zugriff auf die betreffende Keychain, wo die SchlĂĽssel gespeichert sind, mit der kryptografischen Signatur der App(s), die Zugriff auf die Keychain haben dĂĽrfen, absichern. Ich kenne da nicht die Details unter macOS, aber einen App-spezifischen Zugriffsschutz fĂĽr Keychain-Zugriff gibt es dort meines Wissens schon jetzt.
Es reicht dabei ja schon aus, wenn bei jeder Ă„nderung auch einer nicht signierten App eine erneute Benutzerinteraktion durch das System erfolgt, und ansonsten die einmal freigegebenen Einstellungen gelten.
Alternativ zur Verschlüsselung der App-Daten könnte das Betriebssystem natürlich auch App-spezifische Dateirechte realisieren. Ich habe mich noch nicht näher mit SELinux beschäftigt, aber ich glaube, da geht so etwas.
Grundvoraussetzung ist natürlich, dass die Schadsoftware nur mit Benutzerrechten läuft und nicht das gesamte System kompromittiert ist. Aber das ist m. E. eine realistische Annahme, so oft gibt es keine Privilege Escalations.