PID Namespace
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)
PID (Process IDentifier) namespace je funkcija u Linux kernelu koja obezbeđuje izolaciju procesa omogućavajući grupi procesa da imaju svoj set jedinstvenih PID-ova, odvojenih od PID-ova u drugim namespace-ima. Ovo je posebno korisno u kontejnerizaciji, gde je izolacija procesa ključna za bezbednost i upravljanje resursima.
Kada se kreira novi PID namespace, prvi proces u tom namespace-u dobija PID 1. Ovaj proces postaje "init" proces novog namespace-a i odgovoran je za upravljanje drugim procesima unutar namespace-a. Svaki sledeći proces kreiran unutar namespace-a će imati jedinstven PID unutar tog namespace-a, a ovi PID-ovi će biti nezavisni od PID-ova u drugim namespace-ima.
Iz perspektive procesa unutar PID namespace-a, može videti samo druge procese u istom namespace-u. Nije svesno procesa u drugim namespace-ima i ne može interagovati s njima koristeći tradicionalne alate za upravljanje procesima (npr., kill
, wait
, itd.). Ovo obezbeđuje nivo izolacije koji pomaže u sprečavanju ometanja procesa jednih drugima.
Kada se kreira novi proces (npr., korišćenjem clone()
sistemskog poziva), proces može biti dodeljen novom ili postojećem PID namespace-u. Ako se kreira novi namespace, proces postaje "init" proces tog namespace-a.
Kernel održava mapiranje između PID-ova u novom namespace-u i odgovarajućih PID-ova u roditeljskom namespace-u (tj. namespace-u iz kojeg je novi namespace kreiran). Ovo mapiranje omogućava kernelu da prevodi PID-ove kada je to potrebno, kao kada se šalju signali između procesa u različitim namespace-ima.
Procesi unutar PID namespace-a mogu videti i interagovati samo sa drugim procesima u istom namespace-u. Nisu svesni procesa u drugim namespace-ima, a njihovi PID-ovi su jedinstveni unutar njihovog namespace-a.
Kada se PID namespace uništi (npr., kada "init" proces namespace-a izađe), svi procesi unutar tog namespace-a se prekidaju. Ovo osigurava da se svi resursi povezani sa namespace-om pravilno očiste.
Montiranjem nove instance /proc
datotečnog sistema ako koristite parametar --mount-proc
, osiguravate da novi prostor imena montiranja ima tačan i izolovan prikaz informacija o procesima specifičnim za taj prostor imena.
Napomena da root korisnik iz inicijalnog (podrazumevanog) PID imenskog prostora može videti sve procese, čak i one u novim PID imenskim prostorima, zato možemo videti sve PID imenske prostore.
Kada uđete u PID namespace iz podrazumevanog namespace-a, i dalje ćete moći da vidite sve procese. A proces iz tog PID ns će moći da vidi novi bash u PID ns.
Takođe, možete ući u drugi proces PID namespace samo ako ste root. I ne možete ući u drugi namespace bez deskriptora koji pokazuje na njega (kao što je /proc/self/ns/pid
)
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)