इस महीने एक XDA लेख ने कुछ प्रकट किया जो अधिकांश होमलाब्स कठिन तरीके से सीखते हैं: एक कार्यशील Docker Compose फाइल एक सुरक्षित Docker Compose फाइल नहीं है। पोर्ट 0.0.0.0 पर बंधे होते हैं जब उन्हें 127.0.0.1 पर रहना चाहिए, डेटाबेस सेवाएं उसी सार्वजनिक ब्रिज पर समाप्त होती हैं जैसे रिवर्स प्रॉक्सी, और प्रशासन डैशबोर्ड डिफ़ॉल्ट क्रेडेंशियल्स के साथ आते हैं जो किसी को घुमाने के लिए याद नहीं है। समाधान एक स्कैनर है जो compose फाइल, छवि और कंटेनर कॉन्फ़िगरेशन को एक साथ पढ़ता है और सिग्नल करता है कि क्या उजागर है। हमने Windows, macOS और Linux पर एक वास्तविक होमलैब स्टैक के खिलाफ सात Docker Compose सुरक्षा उपकरणों का परीक्षण किया, वास्तविक गलत कॉन्फ़िगरेशन को पकड़ने वाले जांचों पर ध्यान केंद्रित किया।
Docker Compose सुरक्षा स्कैनर में क्या खोजना है
Compose-जागरूक पार्सिंग पहली जांच है। एक स्कैनर जो केवल Dockerfile पढ़ता है वह पोर्ट बाइंडिंग, नेटवर्क टोपोलॉजी और पर्यावरण ब्लॉक को मिस करेगा जो docker-compose.yml में रहते हैं। सही विकल्प दोनों को पढ़ता है, और expose बनाम ports, होस्ट-मोड नेटवर्किंग और बाइंड माउंट को समझता है जो /etc या /var/run/docker.sock तक पहुंचते हैं।
असुरक्षा डेटा वर्तमान होना चाहिए। इसका मतलब एक CVE फीड है जो रोजाना अपडेट होती है, डिस्ट्रो पैकेजेस और भाषा-स्तर की निर्भरताओं दोनों का कवरेज, और यह जानने का तरीका कि कौन से निष्कर्ष वास्तव में चलाए जा रहे कंटेनर में शोषणीय हैं बजाय छवि में केवल मौजूद होने के। एक उपकरण जो संदर्भ की परवाह किए बिना हर CVE को सर्फेस करता है एक होमलैब को चेतावनियों से भर देता है और एक सप्ताह में अनदेखा कर दिया जाता है।
CI-अनुकूल आउटपुट वह है जो एक एकबारगी स्कैन को एक टिकाऊ जांच में बदल देता है। JSON या SARIF आउटपुट, चुने गए गंभीरता के ऊपर निष्कर्षों पर गैर-शून्य बाहर निकास कोड, और compose फाइल में इनलाइन दमन टिप्पणियां एक ही उपकरण को git pre-commit हुक, GitHub Actions नौकरी या रात cron में रहने देती हैं। स्थानीय-प्रथम ऑपरेशन होमलैब के लिए महत्वपूर्ण है, कोई टेलीमेट्री नहीं, कोई बल्ल क्लाउड खाता नहीं।
त्वरित तुलना
| ऐप | सर्वश्रेष्ठ के लिए | प्लेटफॉर्म | मुफ्त योजना | शुरुआती कीमत | रेटिंग |
|---|---|---|---|---|---|
| Trivy | सर्वांगीण छवि और compose स्कैनर | Windows, macOS, Linux | हाँ | मुफ्त | 4.8 |
| Docker Bench for Security | CIS होस्ट और डेमन ऑडिट | Linux, macOS | हाँ | मुफ्त | 4.6 |
| Grype | तेजी से छवि असुरक्षा स्कैनिंग | Windows, macOS, Linux | हाँ | मुफ्त | 4.6 |
| Dockle | छवि सर्वश्रेष्ठ अभ्यास लिंटर | Windows, macOS, Linux | हाँ | मुफ्त | 4.5 |
| Hadolint | सुरक्षा नियमों के साथ Dockerfile लिंटर | Windows, macOS, Linux | हाँ | मुफ्त | 4.6 |
| Checkov | IaC और compose नीति स्कैनर | Windows, macOS, Linux | हाँ | मुफ्त | 4.6 |
| Sysdig CLI Scanner | गहरी रनटाइम-जागरूक छवि स्कैनिंग | Windows, macOS, Linux | ट्रायल | व्यावसायिक उपयोग के लिए मामूली | 4.5 |
1. Trivy, किसी भी compose स्टैक के लिए डिफ़ॉल्ट पहला पास
Trivy वह उपकरण है जहां अधिकांश होमलाब्स पहले उतरते हैं, और यह इसे अर्जित करता है। यह OS और भाषा असुरक्षा के लिए कंटेनर छवियों को स्कैन करता है, गलत कॉन्फ़िगरेशन के लिए Dockerfile और compose फाइलों को पढ़ता है, और अब गुप्त स्कैनिंग शामिल करता है जो env फाइल में प्रतिबद्ध API कुंजी पकड़ता है। एक होमलैब स्टैक के खिलाफ trivy config docker-compose.yml का एक एकल रन एक मिनट से भी कम में एक सुपाठ्य रिपोर्ट का उत्पादन करता है।
डेटाबेस ताजा करना डिफ़ॉल्ट रूप से हर स्कैन पर चलता है, जो cron नौकरी के बिना निष्कर्षों को वर्तमान रखता है। आउटपुट मोड एक मानव-पठनीय तालिका, JSON, SARIF और CycloneDX SBOMs को कवर करते हैं, और बाहर निकास कोड एक CI पाइपलाइन में काम करते हैं। यह मुफ्त और खुला स्रोत है, एक एकल बाइनरी के रूप में चलता है, और प्रारंभिक स्कैन के बाद लंबे समय तक उपयोगी रहता है।
- मंच: Windows, macOS, Linux
- हाइलाइट्स: छवि और IaC स्कैनिंग, गुप्त पहचान, SBOM आउटपुट, एकल-बाइनरी इंस्टॉल
- कीमत: मुफ्त और खुला स्रोत
- आदर्श: एक ताजा होमलैब पर स्थापित पहला स्कैनर
- डाउनलोड: trivy.dev
2. Docker Bench for Security, होस्ट और डेमन के लिए CIS ऑडिट
Docker Bench for Security एक shell स्क्रिप्ट है जो चलाए जा रहे होस्ट के विरुद्ध CIS Docker Benchmark से गुजरती है। यह डेमन कॉन्फ़िगरेशन, वर्तमान में चल रहे कंटेनर और डिस्क पर पहले से छवियों को लगभग एक सौ प्रलेखित नियंत्रणों के विरुद्ध जांचता है, और पास, चेतावनी, जानकारी और नोट स्थितियों के साथ एक रिपोर्ट मुद्रित करता है।
यह एक compose पार्सर नहीं है, लेकिन यह होस्ट-स्तर के गलत कॉन्फ़िगरेशन को पकड़ने का सबसे तेजी से तरीका है जो एक compose स्कैनर नहीं देख सकता: एक Docker डेमन TCP पर बिना TLS सुन रहा है, --privileged कंटेनर, गुम no-new-privileges, लॉग ड्राइवर डिफ़ॉल्ट और /etc/docker पर फाइल अनुमतियां। किसी भी होस्ट पर महीने में एक बार चलाएं जो एक सार्वजनिक सेवा चलाता है, और विकी पर परिणाम पिन करें।
- मंच: Linux, macOS (bash)
- हाइलाइट्स: CIS-संरेखित जांच, होस्ट और डेमन कवरेज, सादा-पाठ और JSON आउटपुट
- कीमत: मुफ्त और खुला स्रोत
- आदर्श: Docker होस्ट की त्रैमासिक ऑडिट
- डाउनलोड: github.com/docker/docker-bench-security
3. Grype, Syft के साथ जोड़ी गई तेजी छवि असुरक्षा स्कैनिंग
Grype Anchore का खुला स्रोत असुरक्षा स्कैनर है। यह सीधे एक छवि या Syft द्वारा निर्मित एक SBOM पढ़ता है और स्थापित पैकेजों और भाषा-स्तर की निर्भरताओं के विरुद्ध ज्ञात CVEs की एक सूची लौटाता है। Grype अपनी असुरक्षा डेटाबेस को स्थानीय रूप से भेजता है और एक अनुसूची पर अपडेट होने के कारण स्कैन सेकंड में चलते हैं।
इसे Trivy के साथ जोड़ने का कारण कवरेज है। Trivy व्यापक है; Grype अक्सर भाषा-स्तर की पैकेजों को पकड़ता है जो Trivy मिस करते हैं, विशेषकर Python और Node छवियों में। अभ्यास में हम दोनों को एक ही पाइपलाइन में चलाते हैं और या तो किसी भी उच्च गंभीरता निष्कर्ष पर विफल होते हैं। Grype कोई बल्ल टेलीमेट्री नहीं जोड़ता और कोई खाता नहीं, और यह हर डेस्कटॉप ओएस पर एक जैसे काम करता है।
- मंच: Windows, macOS, Linux
- हाइलाइट्स: SBOM-संचालित स्कैनिंग, स्थानीय असुरक्षा DB, JSON और SARIF आउटपुट, तेजी से स्कैन
- कीमत: मुफ्त और खुला स्रोत
- आदर्श: छवि CVEs पर Trivy के बगल में एक दूसरी राय
- डाउनलोड: github.com/anchore/grype
4. Dockle, CI चरण के लिए छवि सर्वश्रेष्ठ अभ्यास लिंटर
Dockle एक CIS सर्वश्रेष्ठ प्रथाओं के साथ संरेखित कंटेनर छवि लिंटर है। जहां Trivy CVEs पर ध्यान केंद्रित करता है और Grype पैकेज असुरक्षा पर, Dockle यह जांचता है कि छवि कैसे बनाई गई है: क्या USER एक गैर-root खाते पर सेट है, क्या एक अनावश्यक sudo बाइनरी अंदर भेजी गई है, क्या सीक्रेट्स परतों में बेक किए गए हैं, क्या छवि एक शेल को उजागर करती है जिसकी उसे जरूरत नहीं है। निष्कर्ष CIS नियंत्रण संख्याओं को मानचित्र करते हैं।
यह एक छोटा बाइनरी है जो एक CI नौकरी में छवि प्रति एक एकल आदेश के रूप में फिट बैठता है। आउटपुट पढ़ने के लिए काफी छोटा है, और बाहर निकास कोड गेटिंग को आसान बनाता है। एक compose स्कैनर के साथ एक ही समस्या के दोनों पक्षों को कवर करता है: compose फाइल क्या कनेक्ट करती है, और छवि में क्या होता है भले ही यह कनेक्ट हो।
- मंच: Windows, macOS, Linux
- हाइलाइट्स: छवि लिंटिंग, CIS मैपिंग, छोटी रिपोर्ट, आसान CI एकीकरण
- कीमत: मुफ्त और खुला स्रोत
- आदर्श: छवि निर्माण आदतों को पकड़ना उन्हें भेजने से पहले
- डाउनलोड: github.com/goodwithtech/dockle
5. Hadolint, Dockerfile लिंटर जो compose-आसन्न गलतियों को पकड़ता है
Hadolint एक Dockerfile पढ़ता है और उन पैटर्नों को चिन्हित करता है जो compose समस्याओं में समाप्त होते हैं: हार्डकोडेड क्रेडेंशियल्स, गुम टैग, apt-get install -y सफाई के बिना, रूट उपयोगकर्ता जगह में छोड़े गए, और ADD जहां COPY संबंधित है। यह Haskell shell पार्सर के साथ Dockerfile को पार्स करता है, इसलिए यह समस्याओं को पकड़ता है जो एक रेजेक्स-आधारित उपकरण मिस करता है।
Hadolint compose के ऊपर की ओर है। Dockerfile को एक बार ठीक करें और compose स्कैनर के पास शिकायत करने के लिए कम है। यह एक एकल बाइनरी के रूप में चलता है, pre-commit या CI के साथ बहुत अच्छी तरह से एकीकृत होता है, और होमलैब प्रोजेक्ट्स पर मापे गए सर्वोच्च-संकेत जांचों में से एक जोड़ता है।
- मंच: Windows, macOS, Linux
- हाइलाइट्स: वास्तविक shell पार्सर, सैकड़ों नियम, JSON और SARIF आउटपुट, pre-commit तैयार
- कीमत: मुफ्त और खुला स्रोत
- आदर्श: टीमों के लिए जो अपने स्वयं के Dockerfiles लिखते हैं बजाय अपस्ट्रीम छवियों को खींचने के
- डाउनलोड: github.com/hadolint/hadolint
6. Checkov, compose, Kubernetes और Terraform में नीति-से-कोड
Checkov एक नीति-से-कोड स्कैनर है जो docker-compose, Kubernetes manifests, Terraform, Helm और IaC के एक दर्जन अन्य स्वरूपों को बोलता है। एक compose फाइल पर यह उजागर डेमन सॉकेट, रूट कंटेनर, होस्ट नेटवर्क मोड, गुम संसाधन सीमा और सार्वजनिक पोर्ट बाइंडिंग को चिन्हित करता है। नीतियां समझदारी से भेजी जाती हैं और कॉन्फ़िगरेशन फाइल के साथ प्रति रेपो को समायोजित किया जा सकता है।
इसे एक एकल-प्रारूप उपकरण के ऊपर चुनने का कारण मिश्रण है। एक होमलैब जो आज Docker Compose चलाता है लेकिन कल एक छोटे k3s या Nomad क्लस्टर में जाने की योजना बनाता है दोनों के विरुद्ध एक ही जांच प्राप्त करता है, और एक ही दमन टिप्पणियां स्थानांतरित होती हैं। यह कहीं भी चलता है जहां Python चलता है, जो हर डेस्कटॉप ओएस को कवर करता है।
- मंच: Windows, macOS, Linux
- हाइलाइट्स: बहु-प्रारूप IaC कवरेज, कस्टम नीतियां, दमन टिप्पणियां, SARIF आउटपुट
- कीमत: मुफ्त और खुला स्रोत
- आदर्श: मिश्रित-IaC होमलाब्स जो एक नीति इंजन चाहते हैं
- डाउनलोड: github.com/bridgecrewio/checkov
7. Sysdig CLI Scanner, जब रनटाइम संदर्भ मायने रखता है तो गहराईपूर्ण विकल्प
Sysdig CLI Scanner असुरक्षा स्कैनिंग को रनटाइम जागरूकता के साथ जोड़ता है। यह छवि पढ़ता है, एक असुरक्षा फीड के विरुद्ध CVEs को सहसंबंधित करता है और, जब एक Sysdig तैनाती के साथ जोड़ा जाता है, तो वास्तव में रनटाइम पर लोड किए गए पैकेजों के लिए फ़िल्टर करता है। वह एकल फ़िल्टर अक्सर सैकड़ों निष्कर्षों की एक रिपोर्ट को एक दर्जन की एक छोटी सूची में बदल देता है।
स्कैनर हर डेस्कटॉप ओएस पर एक एकल बाइनरी के रूप में चलता है। मुफ्त स्तर मूल्यांकन और छोटी तैनाती को कवर करता है; व्यावसायिक उपयोग एक भुगतान योजना के तहत आता है। एक गंभीर होमलैब या एक छोटी टीम के लिए जो LAN के बाहर सेवाएं होस्ट करती है, रनटाइम फ़िल्टर सेटअप के लायक है। एक विशुद्ध निजी स्टैक के लिए, Trivy प्लस Grype मुफ्त में अधिकांश एक ही जमीन को कवर करता है।
- मंच: Windows, macOS, Linux
- हाइलाइट्स: रनटाइम-जागरूक फ़िल्टरिंग, IaC और छवि स्कैनिंग, नीति लाइब्रेरी, JSON आउटपुट
- कीमत: मूल्यांकन और छोटे उपयोग के लिए मुफ्त स्तर, व्यावसायिक तैनाती के लिए भुगतान
- आदर्श: टीमों के लिए जो पहले से ही Sysdig चलाती हैं रनटाइम सुरक्षा के लिए
- डाउनलोड: docs.sysdig.com/en/sysdig-secure/vulnerability-management/cli-scanner
सही चुनने के लिए कैसे
एक होमलैब के लिए डिफ़ॉल्ट उत्तर Trivy है। इसे स्थापित करें, compose फाइल के विरुद्ध चलाएं और जो दिखाई दे उसे ठीक करें। यह छवि CVEs, compose गलत कॉन्फ़िगरेशन और एक बाइनरी में गुप्त पहचान को कवर करता है। अगर एक होमलैब सार्वजनिक सेवाओं को चलाता है, तो Docker Bench for Security को एक मासिक ऑडिट के रूप में होस्ट के विरुद्ध जोड़ें, क्योंकि एक compose स्कैनर डेमन-स्तर की समस्याओं को नहीं देख सकता।
उन टीमों के लिए जो अपनी स्वयं की छवियों का निर्माण करती हैं, Hadolint Dockerfile चरण में त्रुटियों को पकड़ता है, और Dockle उन लोगों को पकड़ता है जो निर्मित छवि से बचे रहते हैं। Grype Trivy के बगल में एक स्थान अर्जित करता है जब कार्यभार Python या Node भारी होता है, क्योंकि यह भाषा-स्तर की CVEs खोजने का प्रवृत्ति रखता है जो दूसरों ने याद किया। Checkov एक मिश्रित IaC रेपो के लिए सही विकल्प है। Sysdig CLI Scanner उन टीमों के लिए गहराईपूर्ण विकल्प है जो रनटाइम संदर्भ चाहते हैं और इसे Sysdig बैकएंड के साथ जोड़ने के लिए तैयार हैं। सभी सातों को स्टैक करना अत्यधिक है; दो या तीन चुनें और हर कमिट पर चलाएं।
FAQ
मैं docker-compose.yml को सुरक्षा समस्याओं के लिए कैसे स्कैन करूं?
Trivy स्थापित करें और trivy config docker-compose.yml चलाएं। यह पोर्ट एक्सपोजर, रूट कंटेनर, माउंट किए गए डॉकर सॉकेट और गुप्त पैटर्न को सादा पाठ रिपोर्ट में रिपोर्ट करता है। गंभीर निष्कर्षों पर एक CI पाइपलाइन विफल करने के लिए --exit-code 1 --severity HIGH,CRITICAL जोड़ें।
क्या Trivy Docker सुरक्षा के लिए Grype से बेहतर है? वे प्रतिस्पर्धी के बजाय पूरक हैं। Trivy व्यापक सतह, compose फाइलें, छवियां और IaC को कवर करता है, जबकि Grype अक्सर Python, Node और Ruby छवियों में भाषा-स्तर की अधिक CVEs को पकड़ता है। दोनों को एक ही पाइपलाइन में चलाना या तो अकेले से अधिक पकड़ता है।
Dockle और Hadolint के बीच क्या अंतर है? Hadolint छवि निर्माण से पहले Dockerfile जांचता है। Dockle स्वयं निर्मित छवि की जांच करता है। एक साथ वे दोनों पक्षों से एक ही समस्या को कवर करते हैं: खराब निर्माण पैटर्न और खराब छवि स्थिति।
क्या मैं बिना इंटरनेट कनेक्शन के इन उपकरणों को चला सकता हूं? Trivy, Grype और Sysdig CLI Scanner सभी एक दर्पण से असुरक्षा डेटाबेस आयात करके वायु-गैप संचालन का समर्थन करते हैं। Dockle, Hadolint और Docker Bench for Security डिफ़ॉल्ट रूप से ऑफ़लाइन चलते हैं क्योंकि उनके नियम बेक किए जाते हैं।
क्या ये स्कैनर Windows और macOS पर काम करते हैं? हाँ। Trivy, Grype, Dockle, Hadolint, Checkov और Sysdig CLI Scanner Windows, macOS और Linux के लिए मूल बायनेरी या कंटेनर भेजते हैं। Docker Bench for Security एक bash स्क्रिप्ट है और macOS और Linux पर चलता है; Windows पर यह WSL के अंदर चलता है।
क्या ये उपकरण व्यक्तिगत उपयोग के लिए मुफ्त हैं? सभी सातों में व्यक्तिगत और होमलैब उपयोग के लिए एक मुफ्त स्तर है। Trivy, Grype, Dockle, Hadolint, Checkov और Docker Bench for Security पूरी तरह से खुले स्रोत हैं। Sysdig CLI Scanner मूल्यांकन और छोटे उपयोग के लिए मुफ्त है, व्यावसायिक तैनाती के लिए एक भुगतान योजना के साथ।