Haben alle meine Programme Eigentümerrechte für alle meine Dateien?

432
HappyDeveloper

Ich mache mir Sorgen, dass alle meine Programme vollen Zugriff auf alle meine Dateien haben.

Beispiel: Mein Benutzer ist 'john'. Ich installiere ein Programm, etwa Dropbox. Dropbox läuft als 'john'. Daher hat es nicht nur volle Rechte an seinen Dateien unter ~ / .dropbox, sondern an allen Dateien einschließlich ~.

1) habe ich recht Wenn ja,

2) Sollte ich mir darüber Sorgen machen?

3) Gibt es eine Möglichkeit, dies zu beheben? Jemand sagte mir, ich könnte chroot oder setuid verwenden, aber ich bin nicht sicher, wie ich sie verwenden soll.

Ich verwende Ubuntu 12, falls es wichtig ist.

1

3 Antworten auf die Frage

2
Daniel Pittman

Das ist eine vernünftige Sache zu berücksichtigen: Andere Plattformen wie MacOS-X und Anwendungen wie Chrome verwenden Sandboxing, um ganze Anwendungen oder Teile von Anwendungen so auszuführen, dass sie nicht mehr die volle Kontrolle über das haben, was Sie haben.

Wenn Sie also eine Anwendung als sich selbst starten, haben Sie als Antwort auf die Antwort 1 den gleichen Zugriff auf das, was Sie tun: jede Datei, die Sie bearbeiten können, sie kann bearbeiten und so weiter. Die einzige Ausnahme ist, wenn die Anwendung die Berechtigungen einschränkt.

In Antwort auf Punkt 2 sollten Sie sich wahrscheinlich vage mehr Sorgen machen, als Sie sich aktiv darum kümmern . Schließlich hat jede einzelne Anwendung, die Sie ausführen, denselben Zugriff - das einzige, was DropBox unterscheidet, ist, dass es von einer anderen Person als der Upstream-Distribution kam.

Also, 3: Kannst du das beheben? Die Antwort lautet "wahrscheinlich nicht". Es ist nicht so, dass es unmöglich ist, es ist wahrscheinlich schwierig, dies auf eine Weise zu tun, die Ihren Wünschen nach Verwendung der Anwendungen oder Dienste entspricht.

Wenn Sie chroot verwenden, können Sie so tun, als gäbe es ein anderes "Wurzelverzeichnis" als das echte. Dadurch werden Anwendungen (wie Dropbox) von Ihrem echten Root-Server isoliert - und Sie können möglicherweise der Gefahr entgehen, dass der Rest Ihres Home-Verzeichnisses gelesen werden kann. (Fügen Sie einen Symlink von ~/.dropboxzu hinzu ~/chroot/whatever/home/you/.dropboxund es ist nicht einmal so unpraktisch).

Sie müssen jedoch root sein oder ein Tool wie schroot verwenden, um den Zugriff auf die Ausführung der Anwendung zu verwalten. Die Chroot-Datei isoliert nur einige Teile der Systemdateien. Anwendungen mit root innerhalb, die noch nach außen sehen oder entkommen können. Verschiedene andere Ressourcen (IP-Ports, Pids usw.) werden weiterhin gemeinsam genutzt.

Ich wette auch, dass DropBox eine UI-Komponente hat, und das funktioniert nicht gut chrootiert. Selbst wenn dies der Fall ist, schadet diese Einschränkung anderen Anwendungen.

Die Alternative, eine setuid- Anwendung, ist eine Möglichkeit, mit der Sie sagen können: "Unabhängig davon, wer dies ausführt, starten Sie es als diesen anderen Benutzer und nicht als den Benutzer, der es gestartet hat".

Dies wird meistens verwendet, um Anwendungen zuzulassen, die Sie als normaler Benutzer als root ausführen können, beispielsweise sudo. Es kann jedoch auch den Benutzer oder die Gruppe des Prozesses auf einen nicht privilegierten Benutzer setzen.

Das Problem dabei ist, dass es als ein anderer Benutzer ausgeführt wird - so wie Sie es mit sudo -u another-user dropboxoder was auch immer ausgeführt haben. Dies bedeutet, dass es keinen Zugriff auf Ihr Home-Verzeichnis hat und Sie ohne hartes Arbeiten keinen Zugriff auf das Home-Verzeichnis der anderen Benutzer haben.

Sie können das umgehen, aber im Normalfall ist das weder trivial noch praktisch. Normalerweise möchten Sie eine Gruppe freigeben und versuchen zu arrangieren, dass die Dateien, die es lesen kann, dieser Gruppe gehören und nicht Ihrer Standardgruppe. Dies ist selbst bei setuid-Verzeichnissen (die die Gruppe oder den Eigentümer der unter ihnen erstellten Dateien ändern) nicht trivial, zum Teil, weil Sie Ihre umask verwalten müssen, was unter Linux ein Problem ist.

Schließlich können Sie AppArmor oder SELinux verwenden, um die Anwendung zu sichern. Ich glaube, dass AppArmor das ist, was Ubuntu als bevorzugte Option gewählt hat. Es wird zwar überzeugend argumentiert, dass es weniger sicher ist als SELinux, aber es ist auch konzeptionell einfacher, auf sichtbaren Namen und Pfaden zu basieren als auf sicheren Labels.

Dies könnte eine effektive Möglichkeit sein, um Ihre Sicherheit zu verbessern, ohne die komplexeren Pfade durchgehen zu müssen. Theoretisch sollte es Ihnen möglich sein, DropBox auf genau den ~/.dropboxOrdner und nichts anderes zu beschränken, ohne als anderer Benutzer ausgeführt zu werden.

Wenn Sie Ihre Sicherheit dort wirklich verbessern möchten, schauen Sie sich den Chroot-Pfad an. Dies ist der am wenigsten schmerzhafte Weg, um die Sicherheit von DropBox auf Ubuntu zu verbessern - weitaus weniger als eine Setuid-Anwendung.

Die Chancen sind jedoch das größte Risiko für die Exposition eines Angestellten von DropBox. Wir wissen, dass sie selbst zwischen Benutzern deduplizieren, sodass ihre Systeme den unverschlüsselten Inhalt sehen können, was bedeutet, dass jemand, der für sie arbeitet, das Gleiche tun kann.

Sie können stattdessen encfs verwenden, um Dateien zu verschlüsseln, bevor sie an DropBox gesendet werden.

Ja, ich benutze bereits encfs, danke. Deshalb mache ich mir jetzt nur noch Sorgen um diese andere Sache, die noch schlimmer wird, da Dropbox Eigentum ist und der Code nicht überprüft werden kann. HappyDeveloper vor 11 Jahren 0
* nicken * Dann stehe ich tatsächlich hinter "einer chroot ist der wahrscheinlichste Weg, um Ihr Sicherheitsrisiko zu verringern". Ich habe allerdings vergessen, dass Sie (theoretisch) SELinux oder AppArmor verwenden könnten, um sich weiter zu schützen ... Daniel Pittman vor 11 Jahren 0
Perfekt, vielen Dank. Ich werde dann über all diese Dinge lesen. HappyDeveloper vor 11 Jahren 0
1
Lars Kotthoff

1) ja. 2) Im Allgemeinen nicht. Sie müssen zumindest einigen der von Ihnen ausgeführten Software vertrauen, um die Dinge nicht durcheinander zu bringen. 3) Der einfachste Weg wäre wahrscheinlich, die Software als einen anderen Benutzer auszuführen. Wenn es keinen Zugriff auf irgendetwas benötigt, können Sie es als "Niemand" -Anwender ausführen, der grundsätzlich keine Rechte hat. Andernfalls können Sie den Eigentümer aller Dateien ändern, auf die die Anwendung Zugriff auf den Benutzer hat, unter dem sie ausgeführt wird. Beachten Sie, dass dies jedoch den Zugriff auf die Dateien für Sie und andere Programme erschweren würde.

Im Allgemeinen würde ich mir nicht allzu viele Sorgen machen. Sie haben Sicherungen Ihrer Daten, von denen Sie Dateien wiederherstellen können, nicht wahr?

Ja, aber ich bin nicht so besorgt über Programme, die meine Dateien löschen. Ich mache mir mehr Sorgen darüber, dass sie sie lesen können. HappyDeveloper vor 11 Jahren 0
0
David Andersson

1) habe ich recht

Grundsätzlich ja, aber nicht "Programme" haben Zugriffsrechte, sondern der "Benutzer", der den "Prozess" besitzt, der das "Programm" ausführt. Wenn Sie also Dropbox ausführen, haben Dropbox Ihre Zugriffsrechte. Wenn jemand anderes Dropbox ausführt, hat es seine Zugriffsrechte.

2) Sollte ich mir darüber Sorgen machen?

Nicht wirklich.