
इस्टियो सर्विस मेश के साथ कुबेरनेट्स क्लस्टरों के लिए स्वचालित सुरक्षा जाँचकर्ता, OPA नीतियों के माध्यम से सर्वोत्तम प्रथाओं को लागू करता है और गलत कॉन्फ़िगरेशन के लिए सुधार रिपोर्ट उत्पन्न करता है।
अपने Kubernetes सेवा जाल सुरक्षा को बढ़ाएं !!
mesh-kridik एक ओपन-सोर्स सुरक्षा जाँचकर्ता है जो istio सेवा जाल के साथ Kubernetes क्लस्टर पर विभिन्न सुरक्षा जाँचें करता है और एक सुरक्षा रिपोर्ट आउटपुट करता है।
सुरक्षा जाँच परीक्षण istio सुरक्षा सर्वोत्तम अभ्यास का पूर्ण कार्यान्वयन हैं।
Kubernetes क्लस्टर पर istio सेवा जाल के साथ की जाने वाली सुरक्षा जाँचों को OPA (Open Policy Agent) द्वारा सुरक्षा नियमों को लागू करने के लिए उपयोग किया जाता है, और आउटपुट ऑडिट रिपोर्ट में शामिल होता है: सुरक्षा समस्या का मूल कारण और समस्या के लिए प्रस्तावित उपचार।

git clone https://github.com/chen-keinan/mesh-kridik
cd mesh-kridik
make build
Mesh-Kridik को बिना किसी फ्लैग के निष्पादित करें, सभी परीक्षण चलाएँ
./mesh-kridik
फ्लैग के साथ mesh-kridik निष्पादित करें, आवश्यकतानुसार परीक्षण चलाएँ
Usage: mesh-kridik [--version] [--help] <command> [<args>]
Available commands are:
-r , --report : run security checks and generate remediation report
-i , --include: execute only specific security check, example -i=1.1
-e , --exclude: ignore specific security check, example -e=1.1,2.0
परीक्षण चलाएँ और विफलता परीक्षण रिपोर्ट और उसके उपचार उत्पन्न करें
./mesh-kridik -r
| नाम | विवरण | प्रभाव |
|---|---|---|
| पारस्परिक TLS | Istio पारस्परिक TLS प्रॉक्सी डिफ़ॉल्ट रूप से अनुमेय मोड में कॉन्फ़िगर किए जाते हैं | प्रॉक्सी पारस्परिक TLS और सादा टेक्स्ट ट्रैफ़िक दोनों स्वीकार करेंगे |
| Istio सुरक्षित प्राधिकरण नीति पैटर्न | ALLOW-विथ-पॉज़िटिव-मैचिंग या DENY-विथ-नेगेटिव-मैच पैटर्न का उपयोग करें | ये प्राधिकरण नीति पैटर्न अधिक सुरक्षित हैं क्योंकि नीति बेमेल के मामले में सबसे खराब परिणाम एक अप्रत्याशित 403 अस्वीकृति होती है, न कि प्राधिकरण नीति के उल्लंघन का. |
| प्राधिकरण नीति में पथ सामान्यीकरण | प्राधिकरण नीतियों के प्रवर्तन बिंदु बैकएंड एप्लिकेशन में सामान्य संसाधन पहुँच बिंदु के बजाय Envoy प्रॉक्सी हैं | बेमेल से या तो अप्रत्याशित अस्वीकृति या नीति उल्लंघन हो सकता है |
| बाहरी ट्रैफ़िक के लिए TLS उत्पत्ति | बाहरी ट्रैफ़िक के लिए सेवा ServiceEntry पर DestinationRule का उपयोग | बाहरी सेवा के लिए बाहरी ट्रैफ़िक के लिए TLS उत्पत्ति का उपयोग न करने पर सादा/टेक्स्ट भेजा जाएगा |
| प्रोटोकॉल का पता लगाना | सेवा प्रोटोकॉल को स्पष्ट रूप से घोषित करें | गलत पता लगाने से अप्रत्याशित ट्रैफ़िक व्यवहार हो सकता है |
| CNI समर्थन | istio पारदर्शी ट्रैफ़िक कैप्चर | सभी नेट ट्रैफ़िक कैप्चर नहीं होगा |
| अत्यधिक व्यापक होस्ट | गेटवे में अत्यधिक व्यापक होस्ट सेटिंग्स से बचें | अप्रत्याशित डोमेन का संभावित एक्सपोज़र हो सकता है |
| गेटवे निर्माण विशेषाधिकारों को प्रतिबंधित करें | गेटवे संसाधनों के निर्माण को विश्वसनीय क्लस्टर प्रशासकों तक सीमित करें | अविश्वसनीय उपयोगकर्ताओं द्वारा गेटवे का निर्माण हो सकता है |
| डाउनस्ट्रीम कनेक्शन पर सीमा कॉन्फ़िगर करें | अपने डिप्लॉयमेंट में अलग-अलग गेटवे उदाहरणों के लिए आवश्यक समवर्ती कनेक्शनों की संख्या के अनुसार कॉन्फ़िग मैप में global_downstream_max_connections अपडेट करें। सीमा तक पहुँचने पर, Envoy tcp कनेक्शनों को अस्वीकार करना शुरू कर देगा | डाउनस्ट्रीम कनेक्शनों की संख्या पर कोई सीमा न होने पर एक दुर्भावनापूर्ण अभिनेता द्वारा शोषण किया जा सकता है |
| तीसरे पक्ष के सेवा खाता टोकन कॉन्फ़िगर करें | तीसरे पक्ष के टोकन कॉन्फ़िगर करने की अनुशंसा की जाती है क्योंकि पहले पक्ष के टोकन के गुण कम सुरक्षित होते हैं | पहले पक्ष के टोकन गुण कम सुरक्षित होते हैं और प्रमाणीकरण उल्लंघन का कारण बन सकते हैं |
| नियंत्रण तल | Istiod डिफ़ॉल्ट रूप से सुविधा के लिए कुछ अप्रमाणित सादा टेक्स्ट पोर्ट खोलता है | XDS सेवा पोर्ट 15010 और डीबग पोर्ट 8080 को अप्रमाणित सादा टेक्स्ट पर उजागर करता है |
| डेटा तल | प्रॉक्सी विभिन्न पोर्ट खोलता है | प्रॉक्सी के समान पॉड में चलने वाले एप्लिकेशन की पहुँच होती है; साइडकार और एप्लिकेशन के बीच कोई विश्वास सीमा नहीं है |
Kube-kridik उपयोगकर्ता प्लगिन के लिए एक हुक प्रकट करता है उदाहरण :
go build -buildmode=plugin -o=~/<plugin folder>/<plugin>.so ~/<plugin folder>/<plugin>.go
cp ~/<plugin folder>/<plugin>.so ~/.kube-kridik/plugins/compile/<plugin>.so
Kube-kridik इस विनिर्देश का समर्थन करता है और इसे आसानी से विस्तारित किया जा सकता है:
इस विनिर्देश को ~/.mesh-kridik/security/mesh/istio फ़ोल्डर के अंतर्गत स्पेक फ़ाइलों में संशोधन करके आसानी से विस्तारित किया जा सकता है
| ट्रैफ़िक कैप्चर सीमाओं को समझें | meshConfig.outboundTrafficPolicy.mode सेट करके बाहरी ट्रैफ़िक को सुरक्षित करना | बाहरी सेवा पहुँच नियंत्रित नहीं होगी |