Docker --privileged
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unapokimbia kontena kama la kibali, hizi ndizo ulinzi unazozima:
Katika kontena la kibali, vifaa vyote vinaweza kufikiwa katika /dev/
. Hivyo unaweza kutoroka kwa kuunganisha diski ya mwenyeji.
Mifumo ya faili ya kernel inatoa njia kwa mchakato kubadilisha tabia ya kernel. Hata hivyo, linapokuja suala la michakato ya kontena, tunataka kuzuia mabadiliko yoyote kwenye kernel. Kwa hivyo, tunashikilia mifumo ya faili ya kernel kama kusoma tu ndani ya kontena, kuhakikisha kwamba michakato ya kontena haiwezi kubadilisha kernel.
Mfumo wa faili wa /proc unaweza kuandikwa kwa kuchagua lakini kwa usalama, sehemu fulani zimekingwa dhidi ya ufikiaji wa kuandika na kusoma kwa kuzifunika na tmpfs, kuhakikisha kwamba michakato ya kontena haiwezi kufikia maeneo nyeti.
tmpfs ni mfumo wa faili unaohifadhi faili zote katika kumbukumbu ya virtual. tmpfs haaundai faili zozote kwenye diski yako ngumu. Hivyo ikiwa utaondoa mfumo wa faili wa tmpfs, faili zote zilizomo ndani yake zitapotea milele.
Mifumo ya kontena inazindua kontena na idadi ndogo ya uwezo ili kudhibiti kile kinachotokea ndani ya kontena kwa kawaida. Wale wenye mamlaka wana uwezo wote unaopatikana. Ili kujifunza kuhusu uwezo soma:
Linux CapabilitiesUnaweza kudhibiti uwezo unaopatikana kwa kontena bila kukimbia katika hali ya --privileged
kwa kutumia bendera za --cap-add
na --cap-drop
.
Seccomp ni muhimu ili kudhibiti syscalls ambazo kontena linaweza kuita. Profaili ya seccomp ya kawaida imewezeshwa kwa default wakati wa kukimbia kontena za docker, lakini katika hali ya privileged imezimwa. Jifunze zaidi kuhusu Seccomp hapa:
SeccompPia, kumbuka kwamba wakati Docker (au CRIs zingine) zinapotumika katika Kubernetes cluster, seccomp filter imezimwa kwa default
AppArmor ni uboreshaji wa kernel ili kufunga containers kwenye seti ndogo ya rasilimali kwa kutumia profiles za kila programu. Unapokimbia na bendera --privileged
, ulinzi huu unazimwa.
Kukimbia kontena na bendera --privileged
kunazima lebo za SELinux, na kusababisha kurithi lebo ya injini ya kontena, kwa kawaida unconfined
, ikitoa ufikiaji kamili sawa na injini ya kontena. Katika hali isiyo na mizizi, inatumia container_runtime_t
, wakati katika hali ya mizizi, spc_t
inatumika.
Namespaces HAITHI na bendera --privileged
. Ingawa hazina vikwazo vya usalama vilivyowekwa, haziona mchakato wote kwenye mfumo au mtandao wa mwenyeji, kwa mfano. Watumiaji wanaweza kuzima namespaces binafsi kwa kutumia bendera za injini za kontena --pid=host
, --net=host
, --ipc=host
, --uts=host
.
Kwa default, injini za kontena hazitumi user namespaces, isipokuwa kwa kontena zisizo na mizizi, ambazo zinahitaji user namespaces kwa ajili ya kuunganisha mfumo wa faili na kutumia UIDs nyingi. User namespaces, muhimu kwa kontena zisizo na mizizi, haziwezi kuzuiliwa na zinaongeza usalama kwa kiasi kikubwa kwa kupunguza mamlaka.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)