ZimaOS-appens reglage ”Privileges” motsvarar i praktiken Dockers privilegierade läge. IceWhales support beskrev det som att containern får värdliknande behörigheter, direkt åtkomst till maskinvara och funktioner på rotnivå. Aktivera det endast när ett program verkligen kräver den åtkomstnivån.
För de flesta appar är privilegierat läge onödigt och försvagar den isolering som gör containrar säkrare. Föredra att mappa en enskild enhet eller lägga till en Linux-funktion i stället för att ge containern tillgång till allt.
Vad privilegierat läge ändrar
Dockers aktuella guide för privilegierade Docker-containrar anger att --privileged ger containern alla Linux-funktioner och åtkomst till alla värdenheter, samtidigt som viktiga säkerhetskontroller lättas.
Varför IceWhale beskrev det som åtkomst på värdnivå
Det officiella svaret säger att containerprocessen kan få direkt åtkomst till värdens maskinvara och köras med rotliknande behörigheter. Det är en användbar kort förklaring, men den praktiska säkerhetspåverkan är bredare: containern är inte längre starkt sandlådad.
Aktivera inte Privileges bara för att åtgärda ett slumpmässigt fel
Om en app inte kan komma åt en USB-enhet, GPU, nätverksfunktion eller monteringspunkt bör du först fastställa exakt vilken behörighet som saknas. Privilegierat läge kan dölja det verkliga konfigurationsproblemet samtidigt som hela värden exponeras.
Föredra mappning av enheter
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
För en enskild maskinvaruenhet bör du mappa den enheten i stället för alla värdenheter.
Föredra specifika Linux-funktioner
cap_add:
- NET_ADMIN
En VPN- eller routercontainer kan behöva en specifik nätverksfunktion. Ge minsta nödvändiga uppsättning i stället för att använda privilegierat läge när appens dokumentation stöder det.
Appar som legitimt kan behöva mer åtkomst
Exempel är verktyg för maskinvara på låg nivå, Docker-in-Docker, vissa VPN- och nätverkslösningar, hantering av USB-enheter och annan maskinvara samt specialiserad programvara för systemövervakning. Läs även då först leverantörens distributionsanvisningar.
Appar som vanligtvis inte behöver det
Vanliga webbappar, mediebibliotek, anteckningsappar, databaser, fotohanterare, instrumentpaneler och de flesta API-tjänster bör inte kräva fullt privilegierat läge för att fungera.
Granska Privileges efter en appuppdatering
Ett gammalt appaket kan ha aktiverat privilegierat läge av bekvämlighet, även efter att den ursprungliga utvecklaren har lagt till mer begränsade behörigheter. Kontrollera de aktuella Compose-kraven igen när du uppdaterar.
Säkerhetsguiden för Docker beskriver det säkrare mönstret för anpassade appar.
Inspektera containern innan du ger den mer åtkomst
docker inspect CONTAINER
Kontrollera befintliga enhetsmappningar, funktioner, monteringar, nätverksläge och användarkonfiguration. Många appar misslyckas för att en nödvändig enhet eller sökväg saknas, inte för att de behöver obegränsad åtkomst till värden.
Privilegierat läge kan utöka skadeomfattningen
Om en vanlig opriviligierad webbapp utsätts för intrång kan containerisoleringen begränsa vad en angripare når. En privilegierad container kan komma åt betydligt fler värdenheter och kärngränssnitt, så en sårbarhet i appen kan få konsekvenser för hela systemet.
Dokumentera varför Privileges är aktiverat
När du aktiverar det avsiktligt bör du skriva ned den exakta funktion som kräver det. Vid en senare appuppdatering bör du testa på nytt om appen kan köras med mer begränsade behörigheter och stänga av reglaget om det inte längre behövs.
Vanliga frågor
Betyder Privileges att containern körs som root?
Det är mer omfattande än att bara köra som root i containern; privilegierat läge ger omfattande funktioner på värdnivå och åtkomst till enheter.
Bör jag aktivera det för alla anpassade appar?
Nej. Låt det vara avstängt om inte den ursprungliga utvecklarens dokumentation anger att arbetsbelastningen kräver det.
Kan jag ge åtkomst till endast GPU eller USB?
Ja. Föredra specifika enhetsmappningar och körinställningar framför fullt privilegierat läge.
Är privilegierat läge farligt?
Det minskar containerisoleringen avsevärt, så en komprometterad privilegierad app kan påverka värden betydligt mer.
