Community-Lösung

Was der Schalter für App-Berechtigungen in ZimaOS wirklich bewirkt

IceWhale support explained that the App Privileges switch gives a container host-like permissions, direct hardware access, and root-level execution.

Der Schalter „Berechtigungen“ der ZimaOS-App entspricht im Wesentlichen dem privilegierten Docker-Modus. Der IceWhale-Support beschrieb ihn als Bereitstellung von hostähnlichen Berechtigungen, direktem Hardwarezugriff und Root-ähnlichen Fähigkeiten für den Container. Aktivieren Sie ihn nur, wenn eine Anwendung diese Zugriffsebene tatsächlich benötigt.

Für die meisten Apps ist der privilegierte Modus unnötig und schwächt die Isolation, die Container sicherer macht. Ziehen Sie es vor, ein einzelnes Gerät einzubinden oder eine einzelne Linux-Capability hinzuzufügen, statt dem Container uneingeschränkten Zugriff zu gewähren.

Was der privilegierte Modus ändert

Der aktuelle Leitfaden für privilegierte Docker-Container von Docker besagt, dass --privileged dem Container alle Linux-Capabilities und Zugriff auf alle Hostgeräte gewährt und gleichzeitig wichtige Sicherheitskontrollen lockert.

Warum IceWhale ihn als Zugriff auf Host-Ebene beschreibt

In der offiziellen Antwort heißt es, dass der Containerprozess direkt auf die Hosthardware zugreifen und mit Root-ähnlichen Berechtigungen ausgeführt werden kann. Das ist eine nützliche Kurzbeschreibung, aber die praktischen Auswirkungen auf die Sicherheit sind umfassender: Der Container ist nicht mehr stark von der Umgebung abgeschottet.

Aktivieren Sie „Berechtigungen“ nicht einfach zur Behebung eines beliebigen Fehlers

Wenn eine App nicht auf ein USB-Gerät, eine GPU, eine Netzwerkfunktion oder einen Mount zugreifen kann, ermitteln Sie zuerst die genau fehlende Berechtigung. Der privilegierte Modus kann das eigentliche Konfigurationsproblem verschleiern und gleichzeitig den gesamten Host gefährden.

Bevorzugen Sie die Einbindung einzelner Geräte

devices:
  - /dev/dri/renderD128:/dev/dri/renderD128

Binden Sie bei einem einzelnen Hardwaregerät dieses Gerät ein, anstatt alle Hostgeräte freizugeben.

Bevorzugen Sie spezifische Linux-Capabilities

cap_add:
  - NET_ADMIN

Ein VPN-/Router-Container benötigt möglicherweise eine bestimmte Netzwerk-Capability. Gewähren Sie statt des privilegierten Modus nur den erforderlichen Mindestsatz, sofern die Dokumentation der App dies unterstützt.

Apps, die möglicherweise berechtigterweise mehr Zugriff benötigen

Beispiele sind Hardwaretools auf niedriger Ebene, Docker-in-Docker, einige VPN-/Netzwerk-Appliances, USB-/Geräteverwaltung oder spezielle Systemüberwachungssoftware. Lesen Sie auch in diesen Fällen zuerst die Bereitstellungsanleitung des jeweiligen Projekts.

Apps, die ihn normalerweise nicht benötigen

Normale Web-Apps, Medienbibliotheken, Notiz-Apps, Datenbanken, Fotomanager, Dashboards und die meisten API-Dienste sollten nicht den vollständigen privilegierten Modus benötigen, um zu funktionieren.

Überprüfen Sie die Berechtigungen nach einem App-Update

Ein älteres App-Paket kann den privilegierten Modus aus Bequemlichkeit aktiviert haben, obwohl das zugrunde liegende Projekt inzwischen restriktivere Berechtigungen unterstützt. Überprüfen Sie beim Aktualisieren die aktuellen Compose-Anforderungen erneut.

Der Docker-Sicherheitsleitfaden beschreibt das sicherere Muster für benutzerdefinierte Apps.

Überprüfen Sie den Container, bevor Sie weitere Zugriffe gewähren

docker inspect CONTAINER

Prüfen Sie vorhandene Geräteeinbindungen, Capabilities, Mounts, den Netzwerkmodus und die Benutzerkonfiguration. Viele Apps schlagen fehl, weil ein erforderliches Gerät oder ein erforderlicher Pfad fehlt – nicht weil sie uneingeschränkten Zugriff auf den Host benötigen.

Der privilegierte Modus kann den Schadensumfang vergrößern

Wenn eine normale, nicht privilegierte Web-App kompromittiert wird, kann die Container-Isolation den Zugriff eines Angreifers begrenzen. Ein privilegierter Container kann auf deutlich mehr Hostgeräte und Kernel-Schnittstellen zugreifen, sodass eine Schwachstelle in dieser App systemweite Folgen haben kann.

Dokumentieren Sie, warum „Berechtigungen“ aktiviert ist

Wenn Sie die Option bewusst aktivieren, notieren Sie die genaue Funktion, die sie erfordert. Testen Sie bei einem späteren App-Update erneut, ob die App mit restriktiveren Berechtigungen ausgeführt werden kann, und deaktivieren Sie den Schalter, wenn er nicht mehr benötigt wird.

FAQ

Bedeutet „Berechtigungen“, dass der Container als Root ausgeführt wird?

Der Umfang geht über die einfache Ausführung als Root im Container hinaus; der privilegierte Modus gewährt weitreichende Host-Capabilities und Gerätezugriff.

Sollte ich die Option für jede benutzerdefinierte App aktivieren?

Nein. Lassen Sie sie deaktiviert, sofern die Dokumentation des zugrunde liegenden Projekts nicht besagt, dass die Workload sie benötigt.

Kann ich nur GPU- oder USB-Zugriff gewähren?

Ja. Bevorzugen Sie spezifische Geräteeinbindungen und Laufzeiteinstellungen gegenüber dem vollständigen privilegierten Modus.

Ist der privilegierte Modus gefährlich?

Er verringert die Container-Isolation erheblich. Eine kompromittierte privilegierte App kann daher deutlich größere Auswirkungen auf den Host haben.