
DockSec v2026.8.19
AI-संचालित Docker सुरक्षा स्कैनर जो कमजोरियों को सरल अंग्रेजी में समझाता है। एक OWASP लैब प्रोजेक्ट।
DockSec क्या है?
DockSec एक OWASP लैब प्रोजेक्ट है जो जटिल सुरक्षा स्कैन परिणामों और डेवलपर के लिए कार्रवाई योग्य सुधारों के बीच की खाई को पाटता है। यह उद्योग-मानक स्कैनरों (Trivy, Hadolint, Docker Scout) को AI के साथ एकीकृत करके संदर्भ-जागरूक सुरक्षा विश्लेषण प्रदान करता है।
आपको 200+ CVEs की सूची से अभिभूत करने के बजाय, DockSec:
- प्राथमिकता देता है कि वास्तव में आपके विशिष्ट कंटेनर सेटअप को क्या प्रभावित करता है।
- सरल अंग्रेजी में कमजोरियों की व्याख्या करता है, केवल सुरक्षा शब्दजाल में नहीं।
- आपके Dockerfile के लिए विशिष्ट सुधार सुझाता है।
- आपकी टीम के लिए पेशेवर, इंटरैक्टिव सुरक्षा रिपोर्ट तैयार करता है।
सब कुछ स्थानीय रूप से स्कैन होता है; आपकी मशीन से केवल वह (गोपनीय-हटाई गई) फ़ाइल सामग्री बाहर जाती है जो आपके चुने हुए AI प्रदाता को भेजी जाती है - और स्थानीय मॉडल या केवल-स्कैन मोड के साथ, कुछ भी बाहर नहीं जाता है। देखें डेटा प्रवाह और गोपनीयता।
यह कैसे काम करता है
DockSec कार्यप्रवाह: स्कैनिंग से कार्रवाई योग्य अंतर्दृष्टि तक
DockSec चार-चरणीय पाइपलाइन का पालन करता है:
- स्कैन: आपके वातावरण में Trivy, Hadolint, और Docker Scout को स्थानीय रूप से चलाता है।
- विश्लेषण: AI सभी स्कैनरों के निष्कर्षों को सहसंबंधित करता है ताकि शोर हटे और वास्तविक दुनिया का प्रभाव आंका जाए।
- अनुशंसा: मानव-पठनीय स्पष्टीकरण और विशिष्ट सुधारात्मक कदम उत्पन्न करता है।
- रिपोर्ट: कार्रवाई योग्य परिणामों को HTML, PDF, JSON, CSV, SARIF, और CycloneDX SBOM के रूप में निर्यात करता है।
आरंभ करना
1. पूर्वापेक्षाएँ
DockSec स्थानीय स्कैनरों को व्यवस्थित करता है, इसलिए इसे चाहिए:
| आवश्यकता | किस लिए | स्थापना |
|---|---|---|
| Python 3.12+ | DockSec स्वयं | python.org |
| Trivy | सभी स्कैन (आवश्यक) | brew install trivy या Trivy दस्तावेज़ |
| Hadolint | Dockerfile लिंटिंग | brew install hadolint या Hadolint दस्तावेज़ |
| Docker | इमेज स्कैन (-i) | Docker दस्तावेज़ |
या DockSec को अपने लिए Trivy और Hadolint इंस्टॉल करने दें:```bash python -m docksec.setup_external_tools
### 2. DockSec इंस्टॉल करें```bash
# Full install with AI analysis support (recommended)
pip install "docksec[ai]"
# Or the slim, scan-only core (no LLM dependencies, no API key needed)
pip install docksec
3. अपना पहला स्कैन चलाएँ
स्थानीय स्कैनिंग के लिए किसी API key की आवश्यकता नहीं है:```bash docksec Dockerfile --scan-only
प्रत्येक स्कैन एक परिणाम सारांश के साथ समाप्त होता है: एक गंभीरता तालिका, एक 0-100 सुरक्षा स्कोर, जिसके साथ एक
रेटिंग, एक "Quick take" एक्शन ब्लॉक, जनरेट की गई रिपोर्टें (डिफ़ॉल्ट रूप से
`~/.docksec/results/` में सहेजी गई), और एक सुझाया गया अगला कमांड।
### 4. AI विश्लेषण सक्षम करें
AI विश्लेषण निष्कर्षों की व्याख्या करता है और सुधार सुझाता है। कोई प्रदाता चुनें, उसकी API कुंजी सेट करें, और चलाएँ:```bash
# OpenAI (default provider)
export OPENAI_API_KEY="sk-..."
docksec Dockerfile
# Anthropic Claude
export ANTHROPIC_API_KEY="sk-ant-..."
docksec Dockerfile --ai-only --provider anthropic --model claude-sonnet-5
# Google Gemini
export GOOGLE_API_KEY="..."
docksec Dockerfile --ai-only --provider google
# Ollama (fully local, no API key, data never leaves your machine)
docksec Dockerfile --ai-only --provider ollama --model llama3.1
प्रत्येक प्रदाता के पास एक उचित डिफ़ॉल्ट मॉडल है (OpenAI: gpt-4o, Anthropic:
claude-haiku-4-5, Google: gemini-1.5-pro, Ollama: llama3.1), इसलिए --model वैकल्पिक
है। फ़्लैग्स को दोहराने से बचने के लिए, पर्यावरण चर सेट करें (या उन्हें एक .env
फ़ाइल में उस निर्देशिका में रखें जहाँ से आप चलाते हैं - DockSec इसे स्वचालित रूप से लोड करता है):```bash
export LLM_PROVIDER=anthropic
export LLM_MODEL=claude-sonnet-5
docksec Dockerfile
किसी भी सामग्री को AI प्रदाता को भेजने से पहले, गुप्त दिखने वाले मान (पासवर्ड, टोकन, API कुंजियाँ, निजी कुंजी ब्लॉक) स्वचालित रूप से मास्क किए जाते हैं। देखें [डेटा प्रवाह और गोपनीयता](#data-flow-and-privacy)।
### 5. या GitHub Action का उपयोग करें```yaml
- name: Run DockSec AI Scanner
uses: OWASP/[email protected]
with:
dockerfile: 'Dockerfile'
openai_api_key: ${{ secrets.OPENAI_API_KEY }}
सामान्य कमांड्स```bash
Scan Dockerfile + Docker image (AI + scanners)
docksec Dockerfile -i myapp:latest
Scan a Docker Compose file and all its services
docksec --compose docker-compose.yml
Scan only a Docker image
docksec --image-only -i myapp:latest
Fast local scan, no AI, no API key
docksec Dockerfile --scan-only
Choose which severity levels the image scan reports (default: CRITICAL,HIGH)
docksec -i myapp:latest --image-only --severity CRITICAL,HIGH,MEDIUM
Fail the build (exit 1) if any finding is HIGH or above
docksec -i myapp:latest --image-only --fail-on high
Write only the report formats you want, to a directory of your choice
docksec Dockerfile --scan-only --format json,html --output-dir ./reports
Print results as JSON to stdout for scripts and CI pipelines
docksec -i myapp:latest --image-only --json
Write a SARIF report for GitHub Code Scanning
docksec Dockerfile --scan-only --sarif
Write a CycloneDX SBOM of an image for supply-chain tooling
docksec --image-only -i myapp:latest --sbom
Fully offline scan: local Trivy DB, no network, no AI
docksec --image-only -i myapp:latest --offline
Save today's findings as a baseline, then only gate on new findings later
docksec -i myapp:latest --image-only --baseline .docksec-baseline.json --update-baseline docksec -i myapp:latest --image-only --baseline .docksec-baseline.json --fail-on high
Suppress triaged findings with an auditable ignore file
docksec -i myapp:latest --image-only --ignore-file .docksec-ignore.yml
Force a fresh scan, bypassing the results cache
docksec -i myapp:latest --image-only --no-cache
Install AI-assistant skill files (Claude Code, Cursor, Copilot, and more)
docksec install-skill
Output control
docksec Dockerfile --scan-only --quiet # warnings, errors, summary only docksec Dockerfile --scan-only --verbose # INFO-level diagnostics on stderr docksec Dockerfile --scan-only --verbose --log-file logs/docksec.log docksec Dockerfile --no-color # also honors NO_COLOR
---
## कॉन्फ़िगरेशन फ़ाइल
अपने रिपॉज़िटरी के रूट में एक `.docksec.yml` कमिट करें और पूरी टीम - और
हर CI जॉब - एक ही पॉलिसी के अंतर्गत स्कैन करती है, बजाय प्रत्येक डेवलपर के अपने
फ़्लैग पास करने के।```yaml
# yaml-language-server: $schema=https://owasp.org/DockSec/docksec-config-schema.json
severity: CRITICAL,HIGH
fail_on: HIGH
formats: [json, html]
output_dir: ./security-reports
rules:
disabled:
- compose-missing-healthcheck
हर सेटिंग वैकल्पिक है; जो भी आप छोड़ देते हैं वह पर्यावरण
चर पर वापस आ जाता है और फिर अंतर्निहित डिफ़ॉल्ट पर। एक पूर्ण एनोटेटेड उदाहरण
examples/.docksec.yml में है।
प्राथमिकता
सबसे अधिक प्राथमिकता पहले:``` CLI flag > environment variable > .docksec.yml > built-in default
इसलिए एक commit की गई `severity: LOW` अभी भी कमांड लाइन पर `--severity CRITICAL`
द्वारा, और पर्यावरण में `DOCKSEC_DEFAULT_SEVERITY` द्वारा अधिलिखित हो जाती है।
### खोज
DockSec कार्यशील निर्देशिका में `.docksec.yml` (या `.docksec.yaml`) की तलाश करता है
और फिर रिपॉजिटरी रूट तक ऊपर जाता है, इसलिए एक monorepo उपनिर्देशिका में सेवा
शीर्ष स्तर पर commit की गई नीति प्राप्त करती है। खोज उस निर्देशिका पर रुक जाती है
जिसमें `.git` होता है, इसलिए यह कभी भी रिपॉजिटरी के बाहर से कोई फ़ाइल
नहीं उठाता।
- `--config FILE` खोजने के बजाय एक विशिष्ट फ़ाइल का उपयोग करता है।
- `--no-config` प्रतिलिपि योग्य CI चलाने हेतु किसी भी config फ़ाइल को अनदेखा करता है।
प्रभावी config फ़ाइल स्कैन बैनर में दिखाई जाती है, इसलिए यह हमेशा स्पष्ट रहता है
कि कौन सी नीति लागू की गई थी।
### सेटिंग्स
| सेटिंग | समतुल्य फ़्लैग | नोट्स |
| --- | --- | --- |
| `severity` | `--severity` | इमेज स्कैन के लिए गंभीरता स्तर |
| `fail_on` | `--fail-on` | CI गेट सीमा |
| `formats` | `--format` | सूची प्रारूप: `[json, html]` |
| `output_dir` | `--output-dir` | रिपोर्ट गंतव्य |
| `provider` | `--provider` | `openai`, `anthropic`, `google`, `ollama` |
| `model` | `--model` | प्रदाता के लिए मॉडल नाम |
| `offline` | `--offline` | कोई नेटवर्क नहीं; AI और Docker Scout को छोड़ देता है |
| `skip_ai_scoring` | `--skip-ai-scoring` | केवल स्थानीय स्कोरिंग |
| `no_redact` | `--no-redact` | AI कॉल से पहले रहस्यों को मास्क न करें |
| `no_cache` | `--no-cache` | स्कैन कैश को बायपास करें |
| `ignore_file` | `--ignore-file` | छूट फ़ाइल का पथ |
| `baseline` | `--baseline` | बेसलाइन फ़ाइल का पथ |
| `rules.disabled` | - | पूरी तरह बंद करने के लिए नियम आईडी |
एक अमान्य config फ़ाइल - एक अज्ञात कुंजी, एक गलत गंभीरता - एक गंभीर त्रुटि है जो
चेतावनी के बजाय `2` कोड के साथ समाप्त होती है, इसलिए एक टूटी हुई नीति फ़ाइल कभी भी स्कैन को
उन नियमों के अंतर्गत नहीं चला सकती जिन्हें टीम ने commit नहीं किया है।
### संपादक ऑटोकम्प्लीट
पहली पंक्ति पर `# yaml-language-server:` टिप्पणी VS Code और JetBrains संपादकों में पूर्णता और
इनलाइन सत्यापन देती है। स्कीमा [`docs/docksec-config-schema.json`](https://github.com/owasp/docksec/blob/main/docs/docksec-config-schema.json) पर प्रकाशित है
और इसे `docksec --print-config-schema` के साथ
पुनः उत्पन्न किया जा सकता है।
### नियम अक्षम करना
`rules.disabled` एक जाँच को हर जगह पूरी तरह से बंद कर देता है - इसे
स्कोरिंग, रिपोर्ट, `--json`, और `--fail-on` गेट से पहले हटा दिया जाता है। इसका उपयोग उन जाँचों के लिए करें
जो आपके वातावरण पर लागू नहीं होतीं। व्यक्तिगत निष्कर्षों के लिए जिन्हें आपकी टीम ने
ट्राइएज करके स्वीकार कर लिया है, [waiver फ़ाइल](#ignoring-findings-waivers) को प्राथमिकता दें,
जिसकी प्रविष्टियाँ एक कारण और एक समाप्ति तिथि रखती हैं और इसलिए ऑडिट योग्य रहती हैं।
---
## CI/CD एकीकरण
### एग्ज़िट कोड
DockSec CI-अनुकूल एग्ज़िट कोड का उपयोग करता है ताकि बिल्ड और शेल परिणामों पर प्रतिक्रिया कर सकें:
| कोड | अर्थ |
| --- | --- |
| `0` | सफलता, `--fail-on` पर या उससे ऊपर कोई निष्कर्ष नहीं |
| `1` | `--fail-on` सीमा पर या उससे ऊपर के निष्कर्ष |
| `2` | उपयोग या तर्क त्रुटि |
| `3` | उपकरण या रनटाइम त्रुटि (स्कैन विफल, इमेज नहीं मिली, उपकरण अनुपस्थित) |
`--fail-on` संरचित निष्कर्षों (इमेज कमजोरियाँ और compose गलत कॉन्फ़िगरेशन) पर गेट लगाता है।
जब `--fail-on` अनुरोधित `--severity` से नीचे होता है, तो स्कैन की गंभीरता
स्वचालित रूप से विस्तृत हो जाती है ताकि गेट उन निष्कर्षों को देख सके।
### मशीन-पठनीय आउटपुट
`--json` मानव-पठनीय सारांश के बजाय stdout पर एक एकल JSON ऑब्जेक्ट प्रिंट करता है (स्कैन जानकारी, कमजोरियाँ, गंभीरता
गणनाएँ, और कोई भी AI निष्कर्ष) ताकि इसे सीधे अन्य उपकरणों में
पाइप किया जा सके:```bash
docksec -i myapp:latest --image-only --json | jq '.severity_counts'
अकेले --json के साथ, कोई रिपोर्ट फ़ाइल नहीं लिखी जाती; इसे --format के साथ संयोजित करें ताकि
फ़ाइलें लिखें और उसी रन में JSON प्रिंट करें। --json मोड में सभी मानव-पठनीय संदेश stderr पर
चले जाते हैं, इसलिए stdout में केवल JSON पेलोड ही होता है।
GitHub Code Scanning के लिए SARIF आउटपुट
--sarif अन्य रिपोर्ट प्रारूपों के साथ एक SARIF 2.1.0 रिपोर्ट लिखता है। इसे
मानक github/codeql-action/upload-sarif एक्शन के साथ अपलोड करें ताकि निष्कर्ष सीधे
पुल रिक्वेस्ट पर और Security टैब में एनोटेटेड दिखें:```yaml
-
name: Run DockSec uses: OWASP/[email protected] with: dockerfile: 'Dockerfile' sarif: 'true'
-
name: Upload SARIF to GitHub Code Scanning uses: github/codeql-action/upload-sarif@v3 if: always() with: sarif_file: ~/.docksec/results
> `if: always()` महत्वपूर्ण है: इसके बिना, जब `--fail-on` के कारण DockSec गैर-शून्य स्थिति के साथ बाहर निकलता है तो अपलोड चरण छोड़ दिया जाता है, और निष्कर्ष ठीक उसी समय खो जाते हैं जब उनकी सबसे अधिक आवश्यकता होती है।
### आधार रेखा / रैचेट मोड
`--baseline FILE` आपको किसी मौजूदा प्रोजेक्ट पर `--fail-on` अपनाने की सुविधा देता है, बिना पहले से मौजूद निष्कर्षों की दीवार के हर बिल्ड को रोके बिना। आज के निष्कर्षों का स्नैपशॉट लेने के लिए एक बार `--update-baseline` के साथ चलाएँ, फिर बेसलाइन फ़ाइल को कमिट करें; उसके बाद, `--fail-on` केवल उन निष्कर्षों पर रोक लगाता है जो बेसलाइन में पहले से नहीं हैं:```bash
# Snapshot current findings (does not gate)
docksec -i myapp:latest --image-only --baseline .docksec-baseline.json --update-baseline
# Later runs only fail on NEW findings above the threshold
docksec -i myapp:latest --image-only --baseline .docksec-baseline.json --fail-on high
निष्कर्षों का मिलान भेद्यता ID, लक्ष्य और पैकेज नाम से किया जाता है, इसलिए बेसलाइन
तब भी मान्य बनी रहती है जब असंबंधित निष्कर्ष आते-जाते रहते हैं। जब भी आप
वर्तमान स्थिति को नई बेसलाइन के रूप में स्वीकार करना चाहें, --update-baseline के साथ इसे दोबारा चलाएँ।
निष्कर्षों को अनदेखा करना (छूट)
--ignore-file FILE उन व्यक्तिगत निष्कर्षों को दबाता है जिन्हें किसी टीम ने जाँच-परख कर स्वीकार किया है।
बेसलाइन (एक समय-बिंदु स्नैपशॉट) के विपरीत, इग्नोर फ़ाइल एक स्पष्ट, समीक्षा-योग्य सूची है
जिसमें हर प्रविष्टि में एक कारण और एक वैकल्पिक समाप्ति तिथि होती है।
यदि वर्तमान निर्देशिका में .docksec-ignore.yml फ़ाइल मौजूद है, तो यह स्वचालित रूप से
लोड हो जाती है।```yaml
.docksec-ignore.yml
ignores:
- id: CVE-2023-45853 # Trivy vulnerability ID or DockSec rule ID reason: "zlib CVE; code path not reachable, vendor fix pending" expires: 2026-12-31 # optional; entry stops applying after this date
- id: compose-missing-healthcheck reason: "healthchecks are handled by the orchestrator"
सप्रेस किए गए निष्कर्षों को स्कोरिंग, रिपोर्ट्स, `--json` आउटपुट और
`--fail-on` गेट से पहले हटा दिया जाता है। एक्सपायर्ड प्रविष्टियाँ स्वचालित रूप से लागू होना बंद कर देती हैं (चेतावनी के साथ), और
बिना कारण वाली प्रविष्टियों को चिह्नित किया जाता है ताकि छूटें ऑडिट योग्य बनी रहें। फ़ाइल को संस्करण नियंत्रण में कमिट करें
ताकि सप्रेसन की समीक्षा किसी भी अन्य बदलाव की तरह हो।
---
## रिपोर्ट्स
### रिपोर्ट फ़ॉर्मेट
डिफ़ॉल्ट रूप से हर स्कैन चार रिपोर्ट फ़ाइलें लिखता है; सबसेट चुनने के लिए `--format` का उपयोग करें:
- **html**: एक इंटरैक्टिव, दृश्य रूप से स्वच्छ वेब रिपोर्ट: गंभीरता कार्ड, स्कोर रेटिंग, फिक्स किए गए संस्करणों के साथ पूर्ण भेद्यता तालिका, और संपूर्ण AI निष्कर्ष।
- **pdf**: एक पोर्टेबल, प्रस्तुति-तैयार दस्तावेज़।
- **json**: पूर्ण, मशीन-पठनीय स्कैन डेटा (`--json` stdout आउटपुट के समान आकार)।
- **csv**: व्यक्तिगत भेद्यताओं की एक स्प्रेडशीट-तैयार तालिका।
> CSV व्यवहार पर ध्यान दें: शून्य भेद्यता होने पर भी, DockSec केवल हेडर वाली CSV लिखता है
> (कॉलम नाम, कोई पंक्तियाँ नहीं) ताकि डाउनस्ट्रीम ऑटोमेशन कभी भी अनुपलब्ध या खाली फ़ाइल के कारण विफल न हो।
> यह जानबूझकर किया गया है।
### CycloneDX SBOM
`--sbom` स्कैन की गई इमेज का CycloneDX सॉफ़्टवेयर बिल ऑफ़ मटेरियल (`<image>.cdx.json`) लिखता है,
जिसमें हर पैकेज घटक और ज्ञात भेद्यताएँ सूचीबद्ध होती हैं। BOM को
Trivy के मूल एक्सपोर्टर द्वारा तैयार किया जाता है (इसलिए यह स्पेक-अनुरूप है) और DockSec स्वयं को
टूल मेटाडेटा में अंकित करता है। इसे Dependency-Track, GitHub के डिपेंडेंसी ग्राफ़, या किसी भी
अन्य SBOM कंज़्यूमर में फ़ीड करें:```bash
docksec --image-only -i myapp:latest --sbom
--sbom को एकल इमेज (-i) की आवश्यकता होती है, इसलिए इसे compose runs के लिए छोड़ दिया जाता है। --sarif की तरह, यह --format से स्वतंत्र है।
डेटा प्रवाह और गोपनीयता
DockSec को इस तरह डिज़ाइन किया गया है कि आपको हमेशा पता रहे कि आपकी मशीन से क्या बाहर जाता है:
- स्कैनिंग पूरी तरह स्थानीय है। Trivy, Hadolint, और सुरक्षा स्कोर आपकी मशीन पर चलते हैं। इमेज सामग्री को DockSec द्वारा कहीं भी अपलोड नहीं किया जाता।
- AI विश्लेषण केवल स्कैन की गई फ़ाइल भेजता है। जब AI पास चलता है, तो Dockerfile या compose फ़ाइल की सामग्री (स्कोरिंग के लिए भेद्यता गणना का एक संक्षिप्त सारांश भी) आपके कॉन्फ़िगर किए गए LLM प्रदाता को भेजी जाती है। और कुछ नहीं भेजा जाता।
- गोपनीय जानकारी (secrets) बाहर जाने से पहले हटा दी जाती है। फ़ाइल में गोपनीय दिखने वाले मान (पासवर्ड, टोकन, API कुंजियाँ, निजी कुंजी ब्लॉक) AI प्रदाता को सामग्री भेजे जाने से पहले मास्क कर दिए जाते हैं। कुंजी के नाम दिखाई देते रहते हैं ताकि उजागर हुए क्रेडेंशियल अभी भी चिह्नित हों। ऑप्ट आउट करने के लिए
--no-redactका उपयोग करें। - पूरी तरह से स्थानीय AI समर्थित है। AI विश्लेषण को अपने हार्डवेयर पर रखने के लिए
--provider ollamaउपयोग करें, या AI को पूरी तरह छोड़ने के लिए--scan-only/--offlineउपयोग करें। - कोई टेलीमेट्री नहीं। DockSec कोई उपयोग डेटा एकत्र नहीं करता और कहीं कोई सूचना नहीं भेजता।
ऑफ़लाइन मोड
--offline बिना किसी नेटवर्क एक्सेस के स्कैन चलाता है। यह पहले से डिस्क पर मौजूद Trivy vulnerability डेटाबेस का उपयोग करता है (कोई DB अपडेट नहीं) और AI विश्लेषण तथा Docker Scout advanced स्कैन को छोड़ देता है, दोनों को नेटवर्क की आवश्यकता होती है। यह एयर-गैप्ड या locked-down वातावरण में स्कैन करने का सबसे सरल तरीका है:```bash
docksec --image-only -i myapp:latest --offline
सुनिश्चित करें कि Trivy DB कम से कम एक बार डाउनलोड हो चुका है (कोई भी पिछला ऑनलाइन स्कैन ऐसा करता है) `--offline` पर निर्भर होने से पहले।
### स्कैन परिणाम कैश
इमेज स्कैन परिणाम कैश किए जाते हैं (डिफ़ॉल्ट: 24 घंटे, `DOCKSEC_CACHE_TTL_HOURS` से ओवरराइड करें) और इमेज के कंटेंट डाइजेस्ट के आधार पर कुंजीबद्ध होते हैं, जिससे पुनः निर्मित टैग जैसे पुनः उपयोग किया गया `:latest` हमेशा ताज़ा स्कैन पाता है। एक रन के लिए कैश को बायपास करने हेतु `--no-cache` (या `DOCKSEC_USE_CACHE=false`) का उपयोग करें।
---
## AI-असिस्टेंट स्किल्स (`install-skill`)
`docksec install-skill` DockSec उपयोग निर्देशों को लोकप्रिय AI कोडिंग असिस्टेंट के जाने-माने कॉन्टेक्स्ट फ़ाइलों में लिखता है, ताकि आपके रिपो में काम करने वाला असिस्टेंट जान सके कि DockSec को कैसे इनवोक किया जाए:```bash
docksec install-skill
यह निम्नलिखित बनाता या अद्यतन करता है:
.claude/commands/docksec.md(Claude Code स्लैश कमांड/docksec).cursor/rules/docksec.mdc(Cursor)AGENTS.md(Codex CLI),GEMINI.md(Gemini CLI).github/copilot-instructions.md(GitHub Copilot)
ये फ़ाइलें सादा टेक्स्ट हैं जिन्हें आप समीक्षा करके कमिट कर सकते हैं; कुछ भी निष्पादित नहीं होता। कमांड को दोबारा चलाने से DockSec अनुभाग को डुप्लिकेट करने के बजाय उसी स्थान पर अद्यतन किया जाता है।
विशेषताएँ
- स्मार्ट विश्लेषण: AI बताता है कि कमज़ोरियाँ आपके विशिष्ट सेटअप के लिए क्या मायने रखती हैं।
- मल्टी-LLM समर्थन: OpenAI, Anthropic Claude, Google Gemini, या Ollama के माध्यम से स्थानीय मॉडल।
- गोपनीयता सर्वप्रथम: कोई भी सामग्री AI प्रदाता तक पहुँचने से पहले गुप्त मान छिपा दिए जाते हैं, स्कैनिंग पूरी तरह स्थानीय होती है, और कोई टेलीमेट्री नहीं होती।
- Docker Compose स्कैनिंग: ऑर्केस्ट्रेशन-स्तर की गलत कॉन्फ़िगरेशन का पता लगाएँ और कंपोज़ फ़ाइल में सभी सेवाओं को स्कैन करें।
- गहन एकीकरण: Trivy (कमज़ोरियाँ), Hadolint (लिंटिंग), और Docker Scout को जोड़ता है।
- सुरक्षा स्कोरिंग: समय के साथ अपनी सुरक्षा स्थिति को ट्रैक करने के लिए रेटिंग के साथ 0-100 का स्कोर।
- समृद्ध प्रारूप: HTML (इंटरैक्टिव), PDF, JSON, CSV, SARIF, और CycloneDX SBOM।
- CI/CD के लिए तैयार:
--fail-onएग्ज़िट कोड, बेसलाइन/रैचेट मोड, ऑडिट करने योग्य छूट, JSON-to-stdout, और Marketplace पर एक GitHub Action। - ऑफ़लाइन मोड: स्थानीय Trivy डेटाबेस का उपयोग करके पूरी तरह एयर-गैप्ड (
--offline) स्कैन करें। - AI-सहायक कौशल:
docksec install-skillClaude Code, Cursor, Copilot, और अन्य को सिखाता है कि आपके रिपो में DockSec कैसे चलाएँ।
DockSec की तुलना
| क्षमता | DockSec | Trivy (स्टैंडअलोन) | Snyk Container | Aikido |
|---|---|---|---|---|
| लाइसेंस और लागत | मुफ़्त, ओपन सोर्स (MIT) | मुफ़्त, ओपन सोर्स (Apache 2.0) | व्यावसायिक (सीमित मुफ़्त टियर) | व्यावसायिक (सीमित मुफ़्त टियर) |
| शासन | OWASP लैब प्रोजेक्ट, विक्रेता-तटस्थ | ओपन सोर्स, Aqua द्वारा अनुरक्षित | एकल विक्रेता | एकल विक्रेता |
| CVE और Dockerfile गलत कॉन्फ़िगरेशन का पता लगाता है | हाँ | हाँ | हाँ | हाँ |
| निष्कर्षों को सरल अंग्रेज़ी में समझाता है | हाँ (AI-लिखित संदर्भ और प्रभाव) | नहीं (कच्चा CVE डेटा) | आंशिक (गंभीरता और सुधार संकेत) | आंशिक (प्लेटफ़ॉर्म में AI सारांश) |
| संदर्भित Dockerfile सुधार | हाँ (स्पष्टीकरण के साथ विशिष्ट पुनर्लेखन) | नहीं (केवल पहचान) | हाँ (बेस इमेज अपग्रेड सलाह, फ़िक्स PR) | हाँ (AI AutoFix PR) |
| Docker Compose (मल्टी-सर्विस) स्कैनिंग | हाँ (ऑर्केस्ट्रेशन जाँच और प्रति-सेवा स्कैन) | आंशिक (कॉन्फ़िग स्कैन, कोई प्रति-सेवा फैन-आउट नहीं) | आंशिक | आंशिक |
| बेसलाइन / रैचेट मोड (केवल नए निष्कर्षों पर विफल) | हाँ | नहीं | आंशिक (प्लेटफ़ॉर्म नीतियाँ) | आंशिक (प्लेटफ़ॉर्म नीतियाँ) |
| कारणों और समाप्ति के साथ ऑडिट करने योग्य प्रति-निष्कर्ष छूट | हाँ | आंशिक (.trivyignore, कोई कारण लागू नहीं) | आंशिक (प्लेटफ़ॉर्म नीतियाँ) | आंशिक (प्लेटफ़ॉर्म नीतियाँ) |
| CI-मूल आउटपुट (GitHub Code Scanning के लिए SARIF) | हाँ | हाँ | हाँ | हाँ |
| SBOM निर्यात (CycloneDX) | हाँ (--sbom) | हाँ | हाँ | हाँ |
| AI-सहायक कौशल स्थापना (Claude Code, Cursor, Copilot) | हाँ (install-skill) | नहीं | नहीं | नहीं |
| पूरी तरह ऑफ़लाइन / एयर-गैप्ड चलता है | हाँ (Ollama के माध्यम से स्थानीय LLM, केवल-स्कैन मोड, कोई API कुंजी नहीं) | केवल स्कैनिंग (कोई सुधार परत नहीं) | नहीं (क्लाउड प्लेटफ़ॉर्म) | नहीं (होस्टेड प्लेटफ़ॉर्म) |
| आपका इमेज डेटा आपके नेटवर्क पर रहता है | हाँ | हाँ | नहीं | नहीं |
| अपना खुद का LLM / मॉडल विकल्प लाएँ | हाँ (OpenAI, Anthropic, Gemini, या स्थानीय Ollama) | लागू नहीं | नहीं (मालिकाना AI) | नहीं (मालिकाना AI) |
| स्व-होस्ट करने योग्य, कोई प्लेटफ़ॉर्म तैनाती नहीं | हाँ | हाँ | नहीं | नहीं |
| विक्रेता लॉक-इन | कोई नहीं | कोई नहीं | हाँ | हाँ |
| सुरक्षा स्कोर (0-100) और बहु-प्रारूप रिपोर्ट | हाँ | आंशिक (मशीन प्रारूप, कोई सुधार रिपोर्ट नहीं) | आंशिक (डैशबोर्ड रिपोर्ट) | आंशिक (डैशबोर्ड रिपोर्ट) |
DockSec इनमें से एकमात्र ऐसा उपकरण है जो संदर्भित Dockerfile सुधार को पूरी तरह ओपन सोर्स, OWASP-शासित, स्थानीय रूप से चलाने योग्य डिज़ाइन के साथ जोड़ता है। Snyk और Aikido सक्षम AI सुधार प्रदान करते हैं, लेकिन केवल व्यावसायिक क्लाउड प्लेटफ़ॉर्म के रूप में जो आपका डेटा उनकी सेवा में भेजते हैं। Trivy ओपन सोर्स और स्थानीय है, लेकिन यह पहचान पर ही रुक जाता है और किसी भी चीज़ को ठीक करने में आपकी मदद नहीं करता। DockSec उन डेवलपर्स और विनियमित या एयर-गैप्ड टीमों के लिए अंतर को भरता है जिन्हें सुधार मार्गदर्शन और उनके डेटा पर पूर्ण नियंत्रण दोनों की आवश्यकता होती है, बिना किसी लागत के।
रोडमैप
DockSec किस दिशा में आगे बढ़ रहा है, यह देखने के लिए ROADMAP.md देखें: स्थानीय Docker डेमन के बिना रजिस्ट्री स्कैनिंग, एक रिपो-स्तरीय नीति कॉन्फ़िग फ़ाइल, Jenkins/GitLab/Azure DevOps टेम्पलेट, एक आधिकारिक कंटेनर इमेज, Kubernetes और Helm स्कैनिंग, और बहुत कुछ। प्राथमिकताओं पर प्रतिक्रिया और वोटों का issues में और OWASP Slack पर स्वागत है।
योगदान
DockSec सामुदायिक योगदानों से फलता-फूलता है। चाहे आप डेवलपर हों, डिज़ाइनर हों, या सुरक्षा उत्साही हों, इसमें शामिल होने के कई तरीके हैं:
- कोड योगदान: बग ठीक करें या नई सुविधाएँ जोड़ें।
- दस्तावेज़ीकरण: गाइड में सुधार करें या ट्यूटोरियल बनाएँ।
- समस्या रिपोर्टिंग: बग की पहचान करें और रिपोर्ट करें।
- प्रतिक्रिया: अपने अनुभव और सुझाव साझा करें।
आरंभ करने के लिए, हमारे Contributing Guidelines, Code of Conduct, और Sponsorship Guide देखें।
नेतृत्व और समुदाय
DockSec का नेतृत्व एक समर्पित टीम करती है जो कंटेनर सुरक्षा को सुलभ बनाने के लिए प्रतिबद्ध है:
- Advait Patel - प्रोजेक्ट लीड
- Arkadii Yakovets - प्रोजेक्ट सह-लीड
हमें यहाँ खोजें:
- OWASP प्रोजेक्ट पेज: owasp.org/DockSec/
- OWASP Slack: #project-docksec
- PyPI: pypi.org/project/docksec/
- समस्याएँ: बग रिपोर्ट करें
- Changelog: CHANGELOG.md
Advait Patel और OWASP समुदाय द्वारा निर्मित।