Kubernetes SecurityContext(s)
Reading time: 9 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
PodSecurityContext
जब आप एक Pod के सुरक्षा संदर्भ को निर्दिष्ट करते हैं, तो आप कई विशेषताओं का उपयोग कर सकते हैं। एक रक्षात्मक सुरक्षा दृष्टिकोण से, आपको विचार करना चाहिए:
- runASNonRoot को True रखना
- runAsUser को कॉन्फ़िगर करना
- यदि संभव हो, तो seLinuxOptions और seccompProfile को इंगित करते हुए permissions को सीमित करने पर विचार करें
- runAsGroup और supplementaryGroups के माध्यम से privilege group पहुंच न दें
| Parameter | Description | |
fsGroup
integer
एक विशेष सहायक समूह जो pod में सभी कंटेनरों पर लागू होता है। कुछ वॉल्यूम प्रकार Kubelet को उस वॉल्यूम के स्वामित्व को बदलने की अनुमति देते हैं:
1. स्वामित्व GID FSGroup होगा
2. सेटगिड बिट सेट है (वॉल्यूम में बनाए गए नए फ़ाइलें FSGroup द्वारा स्वामित्व होंगी)
3. अनुमति बिट rw-rw---- के साथ OR'd हैं यदि सेट नहीं है, तो Kubelet किसी भी वॉल्यूम के स्वामित्व और अनुमतियों को संशोधित नहीं करेगा
|
fsGroupChangePolicy
string
runAsGroup
integer
runAsNonRoot
boolean
runAsUser
integer
seLinuxOptions
SELinuxOptions
More info about seLinux
seccompProfile
SeccompProfile
More info about Seccomp
supplementalGroups
integer array
sysctls
Sysctl array
More info about sysctls
windowsOptions
WindowsSecurityContextOptions
SecurityContext
यह संदर्भ कंटेनरों की परिभाषाओं के अंदर सेट किया गया है। एक रक्षात्मक सुरक्षा दृष्टिकोण से, आपको विचार करना चाहिए:
- allowPrivilegeEscalation को False पर सेट करें
- संवेदनशील capabilities न जोड़ें (और जिनकी आपको आवश्यकता नहीं है उन्हें हटा दें)
- privileged को False पर सेट करें
- यदि संभव हो, तो readOnlyFilesystem को True पर सेट करें
- runAsNonRoot को True पर सेट करें और एक runAsUser सेट करें
- यदि संभव हो, तो seLinuxOptions और seccompProfile को इंगित करते हुए permissions को सीमित करने पर विचार करें
- runAsGroup के माध्यम से privilege group पहुंच न दें।
ध्यान दें कि SecurityContext और PodSecurityContext में सेट किए गए गुणों में, SecurityContext में निर्दिष्ट मान प्राथमिकता लेता है।
allowPrivilegeEscalation | AllowPrivilegeEscalation नियंत्रित करता है कि क्या एक प्रक्रिया अपने माता-पिता की प्रक्रिया से अधिक विशेषाधिकार प्राप्त कर सकती है। यह bool सीधे नियंत्रित करता है कि क्या no_new_privs ध्वज कंटेनर प्रक्रिया पर सेट किया जाएगा। AllowPrivilegeEscalation हमेशा सही होता है जब कंटेनर Privileged के रूप में चलाया जाता है या CAP_SYS_ADMIN होता है |
---|---|
capabilities | कंटेनरों को चलाते समय जोड़ने/हटाने के लिए क्षमताएँ। डिफ़ॉल्ट रूप से क्षमताओं के डिफ़ॉल्ट सेट पर। |
privileged | कंटेनर को विशेषाधिकार मोड में चलाएं। विशेषाधिकार प्राप्त कंटेनरों में प्रक्रियाएँ मूल रूप से होस्ट पर रूट के बराबर होती हैं। डिफ़ॉल्ट रूप से गलत। |
procMount | procMount कंटेनरों के लिए उपयोग करने के लिए proc माउंट के प्रकार को दर्शाता है। डिफ़ॉल्ट DefaultProcMount है जो केवल-पढ़ने वाले पथों और मास्क किए गए पथों के लिए कंटेनर रनटाइम डिफ़ॉल्ट का उपयोग करता है। |
readOnlyRootFilesystem | क्या इस कंटेनर का एक केवल-पढ़ने वाला रूट फ़ाइल सिस्टम है। डिफ़ॉल्ट रूप से गलत। |
runAsGroup | कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए GID। यदि सेट नहीं है तो रनटाइम डिफ़ॉल्ट का उपयोग करता है। |
runAsNonRoot | यह इंगित करता है कि कंटेनर को गैर-रूट उपयोगकर्ता के रूप में चलाना चाहिए। यदि सही है, तो Kubelet रनटाइम पर छवि को मान्य करेगा ताकि यह सुनिश्चित हो सके कि यह UID 0 (रूट) के रूप में नहीं चलती है और यदि ऐसा करती है तो कंटेनर शुरू करने में विफल हो जाएगी। |
runAsUser | कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए UID। यदि निर्दिष्ट नहीं किया गया है तो छवि मेटाडेटा में निर्दिष्ट उपयोगकर्ता पर डिफ़ॉल्ट होता है। |
seLinuxOptions | कंटेनर पर लागू होने वाला SELinux संदर्भ। यदि निर्दिष्ट नहीं किया गया है, तो कंटेनर रनटाइम प्रत्येक कंटेनर के लिए एक यादृच्छिक SELinux संदर्भ आवंटित करेगा। |
इस कंटेनर द्वारा उपयोग किए जाने वाले seccomp विकल्प। | |
सभी कंटेनरों पर लागू होने वाली Windows विशिष्ट सेटिंग्स। |
References
- https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core
- https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।