De schakelaar ‘Privileges’ in de ZimaOS-app komt in feite neer op de geprivilegieerde modus van Docker. De ondersteuning van IceWhale beschreef deze als een instelling die de container machtigingen op hostniveau, rechtstreekse toegang tot hardware en mogelijkheden op rootniveau geeft. Schakel deze alleen in als een applicatie dit toegangsniveau echt vereist.
Voor de meeste apps is de geprivilegieerde modus niet nodig en verzwakt deze de isolatie die containers veiliger maakt. Koppel liever één apparaat of voeg één Linux-mogelijkheid toe, in plaats van de container volledige toegang te geven.
Wat de geprivilegieerde modus verandert
In de actuele handleiding voor geprivilegieerde containers van Docker staat dat --privileged de container alle Linux-mogelijkheden en toegang tot alle apparaten van de host geeft, terwijl belangrijke beveiligingsmaatregelen worden versoepeld.
Waarom IceWhale dit omschreef als toegang op hostniveau
In het officiële antwoord van IceWhale staat dat het containerproces rechtstreeks toegang heeft tot hardware van de host en kan worden uitgevoerd met rootachtige privileges. Dat is een nuttige korte uitleg, maar de praktische gevolgen voor de beveiliging zijn groter: de container is niet langer sterk geïsoleerd.
Schakel geen privileges in alleen om een willekeurige fout op te lossen
Als een app geen toegang heeft tot een USB-apparaat, GPU, netwerkfunctie of koppeling, bepaal dan eerst welke specifieke machtiging ontbreekt. De geprivilegieerde modus kan het echte configuratieprobleem verhullen en tegelijk de hele host blootstellen.
Geef de voorkeur aan apparaatkoppeling
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
Koppel bij één hardwareapparaat dat apparaat, in plaats van alle apparaten van de host.
Geef de voorkeur aan specifieke Linux-mogelijkheden
cap_add:
- NET_ADMIN
Een VPN-/routercontainer heeft mogelijk een specifieke netwerkfunctionaliteit nodig. Geef alleen de minimaal vereiste set op in plaats van de geprivilegieerde modus, als de documentatie van de app dit ondersteunt.
Apps die mogelijk legitiem meer toegang nodig hebben
Voorbeelden zijn onder meer tools voor hardwaretoegang op laag niveau, Docker-in-Docker, bepaalde VPN-/netwerkapparaten, USB-/apparaatbeheer of gespecialiseerde software voor systeembewaking. Lees ook dan eerst de implementatierichtlijnen van de ontwikkelaars.
Apps die dit meestal niet nodig hebben
Voor gewone webapps, mediabibliotheken, notitie-apps, databases, fotobeheerders, dashboards en de meeste API-diensten is doorgaans niet de volledige modus met uitgebreide rechten nodig.
Controleer de uitgebreide rechten na een app-update
Een oud app-pakket heeft de modus met uitgebreide rechten misschien uit gemak ingeschakeld, zelfs nadat de upstream-bron beperktere rechten heeft toegevoegd. Controleer bij een update opnieuw de huidige Compose-vereisten.
De Docker-beveiligingsgids beschrijft de veiligere aanpak voor aangepaste apps.
Inspecteer de container voordat je meer toegang verleent
docker inspect CONTAINER
Controleer bestaande apparaatdoorgiften, mogelijkheden, mounts, netwerkmodus en gebruikersconfiguratie. Veel apps werken niet omdat een vereist apparaat of pad ontbreekt, niet omdat ze onbeperkte toegang tot de host nodig hebben.
De modus met uitgebreide rechten kan de impact vergroten
Als een gewone webapp zonder uitgebreide rechten wordt gecompromitteerd, kan containerisolatie beperken waartoe een aanvaller toegang krijgt. Een container met uitgebreide rechten heeft toegang tot veel meer hostapparaten en kernelinterfaces, waardoor een kwetsbaarheid in die app gevolgen voor het hele systeem kan hebben.
Leg vast waarom uitgebreide rechten zijn ingeschakeld
Noteer precies welke functie dit vereist als je het bewust inschakelt. Test bij een latere app-update opnieuw of de app met beperktere rechten kan draaien en schakel de optie uit als die niet meer nodig is.
Veelgestelde vragen
Betekent uitgebreide rechten dat de container als root draait?
Dit gaat verder dan simpelweg als root uitvoeren binnen de container; de modus met uitgebreide rechten geeft uitgebreide hostmogelijkheden en toegang tot apparaten.
Moet ik dit inschakelen voor elke aangepaste app?
Nee. Laat dit uitgeschakeld, tenzij de documentatie van de upstream-bron aangeeft dat de workload dit vereist.
Kan ik alleen toegang tot de GPU of USB geven?
Ja. Geef liever specifieke apparaten door en stel de runtime gericht in dan de volledige modus met uitgebreide rechten te gebruiken.
Is de modus met uitgebreide rechten gevaarlijk?
Het vermindert de isolatie van containers aanzienlijk, waardoor een gecompromitteerde app met uitgebreide rechten veel meer invloed kan hebben op de host.



