Communitylösning

Vad reglaget för appbehörigheter i ZimaOS egentligen gör

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

Omkopplaren ”Privileges” i ZimaOS-appen motsvarar i praktiken Dockers privilegierade läge. IceWhale-supporten beskrev det som att containern får behörigheter som liknar värdens, direkt åtkomst till maskinvara och funktioner på root-nivå. Aktivera det bara när ett program verkligen behöver den åtkomstnivån.

För de flesta appar behövs inte privilegierat läge, och det försvagar isoleringen som gör containrar säkrare. Föredra att mappa en enhet eller lägga till en Linux-funktion i stället för att ge containern åtkomst till allt.

Vad privilegierat läge ändrar

Dockers aktuella guide till privilegierade Docker-containrar säger att --privileged ger containern alla Linux-funktioner och åtkomst till alla värdens enheter, samtidigt som viktiga säkerhetskontroller lättas upp.

Varför IceWhale beskrev det som åtkomst på värdnivå

Det officiella svaret från källan säger att containerprocessen kan komma åt värdens maskinvara direkt och köras med rootliknande privilegier. Det är en användbar kortfattad förklaring, men den praktiska säkerhetspåverkan är större: containern är inte längre starkt isolerad.

Aktivera inte privilegier bara för att åtgärda ett slumpmässigt fel

Om en app inte kommer åt en USB-enhet, GPU, nätverksfunktion eller montering ska du först ta reda på exakt vilken behörighet som saknas. Privilegierat läge kan dölja det verkliga konfigurationsproblemet samtidigt som det exponerar hela värden.

Föredra mappning av enheter

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

För en maskinvaruenhet mappar du den enheten i stället för alla värdens enheter.

Föredra specifika Linux-funktioner

cap_add:
  - NET_ADMIN

En VPN-/routercontainer kan behöva en specifik nätverksfunktion. Ge den minsta uppsättning som krävs i stället för privilegierat läge när appens dokumentation stöder det.

Appar som kan behöva mer åtkomst

Exempel är lågnivåverktyg för maskinvara, Docker-in-Docker, vissa VPN-/nätverksapparater, USB-/enhetshantering eller specialiserad systemövervakningsprogramvara. Läs ändå först uppströms vägledning för driftsättning.

Appar som vanligtvis inte behöver det

Vanliga webbappar, mediebibliotek, anteckningsappar, databaser, fotohanterare, kontrollpaneler och de flesta API-tjänster bör inte behöva fullständigt privilegierat läge för att fungera.

Granska privilegier efter en appuppdatering

Ett gammalt appaket kan ha aktiverat privilegierat läge av bekvämlighetsskäl, även efter att projektet uppströms lagt till mer begränsade behörigheter. Kontrollera de aktuella Compose-kraven igen vid uppdatering.

Dockers säkerhetsguide beskriver det säkrare mönstret för anpassade appar.

Granska containern innan du ger den mer åtkomst

docker inspect CONTAINER

Kontrollera befintliga enhetsmappningar, funktioner, monteringar, nätverksläge och användarkonfiguration. Många appar slutar fungera 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ärdsystemet.

Privilegierat läge kan öka skadeomfattningen

Om en vanlig webbapp utan privilegier komprometteras kan containerisolering begränsa vad en angripare kommer åt. En privilegierad container kan få åtkomst till betydligt fler värdenheter och kärngränssnitt, så en sårbarhet i appen kan få konsekvenser för hela systemet.

Dokumentera varför privilegier är aktiverat

Om du aktiverar det medvetet bör du dokumentera exakt vilken funktion som kräver det. När appen uppdateras senare bör du testa igen om den 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 privilegier att containern körs som root?

Det är mer omfattande än att bara köra som root i containern; privilegierat läge ger omfattande värdsystemsfunktioner och åtkomst till enheter.

Bör jag aktivera det för varje anpassad app?

Nej. Låt det vara avstängt om inte dokumentationen uppströms anger att arbetsbelastningen kräver det.

Kan jag bara ge åtkomst till GPU:n eller USB?

Ja. Föredra specifika enhetsmappningar och körningsinställningar framför fullständigt privilegierat läge.

Är privilegierat läge farligt?

Det begränsar isoleringen mellan containrar avsevärt, så en komprometterad app med privilegier kan påverka värdsystemet mycket mer.