
STRIDE, MITRE ATT&CK, और PASTA फ्रेमवर्क के साथ IaC थ्रेट मॉडलर। Terraform, CloudFormation, और Kubernetes के लिए REST API, GraphQL, और Docker समर्थन।
स्टैटिक IaC थ्रेट मॉडलर जो Terraform, CloudFormation और Kubernetes मैनिफेस्ट को पार्स करता है और STRIDE, MITRE ATT&CK या PASTA फ्रेमवर्क का उपयोग करके संरचित थ्रेट मॉडल रिपोर्ट तैयार करता है। कोई नेटवर्क कॉल नहीं, कोई क्लाउड क्रेडेंशियल नहीं, पूरी तरह से ऑफलाइन। CLI, REST API या कंटेनराइज्ड सेवा के रूप में चलता है।
CLI:
pip install threatmap
threatmap scan ./examples --output report.md --fail-on HIGH
Docker:
docker run -v $(pwd):/workspace bogdynn/threatmap:2.1.0 threatmap scan /workspace --output /workspace/report.md
REST API सर्वर:
threatmap serve --host 0.0.0.0 --port 8000
# या Docker के माध्यम से:
docker run -p 8000:8000 bogdynn/threatmap:2.1.0
# API एंडपॉइंट: /health, /version, /rules, /analyze
GraphQL API:
docker run -p 8000:8000 bogdynn/threatmap:2.1.0
# GraphQL एंडपॉइंट: http://localhost:8000/graphql
# क्वेरी: health, version, rules
# म्यूटेशन: analyze(content, filename, framework)
| प्रारूप | प्रदाता | एक्सटेंशन |
|---|---|---|
| Terraform HCL | AWS, Azure, GCP | .tf |
| CloudFormation | AWS | .yaml, .yml, .json |
| Kubernetes मैनिफेस्ट | Kubernetes | .yaml, .yml |
PyPI से इंस्टॉल करें:
pip install threatmap
या स्थानीय विकास के लिए:
git clone https://github.com/bogdanticu88/threatmap.git
cd threatmap
pip install -e .
किसी निर्देशिका को स्कैन करें और stdout पर Markdown रिपोर्ट प्रिंट करें:
threatmap scan ./terraform/
एकाधिक पथों को स्कैन करें और JSON रिपोर्ट को फ़ाइल में लिखें:
threatmap scan ./terraform/ ./k8s/ ./cloudformation/ --format json --output report.json
GitHub Security के लिए इंटरैक्टिव HTML रिपोर्ट या SARIF रिपोर्ट बनाएँ:
threatmap scan ./infra/ --format html --output report.html
threatmap scan ./infra/ --format sarif --output report.sarif
CI गेट — यदि कोई CRITICAL या HIGH थ्रेट मिलता है तो exit code 1 लौटाएँ:
threatmap scan ./infra/ --fail-on HIGH --output threat-report.md
बिना पूरी रिपोर्ट लिखे केवल टर्मिनल सारांश तालिका प्रिंट करें:
threatmap scan ./infra/ --summary
उन वातावरणों के लिए केवल ASCII गंभीरता संकेतक (कोई इमोजी नहीं) का उपयोग करें जो Unicode समर्थन नहीं करते:
threatmap scan ./infra/ --ascii --output report.md
विभिन्न थ्रेट मॉडलिंग फ्रेमवर्क का उपयोग करके विश्लेषण करें:
# STRIDE (डिफ़ॉल्ट)
threatmap scan ./infra/ --framework stride
# MITRE ATT&CK (रणनीति और तकनीकों में मैप करता है)
threatmap scan ./infra/ --framework mitre --format json
# PASTA (एसेट-केंद्रित थ्रेट मॉडलिंग)
threatmap scan ./infra/ --framework pasta --format json
STRIDE (73 नियम)
MITRE ATT&CK (11 नियम, 14 रणनीति)
PASTA (12 नियम, एसेट-केंद्रित)
बंडल किए गए उदाहरणों के विरुद्ध threatmap scan ./examples --output report.md चलाने पर एक पूर्ण Markdown रिपोर्ट तैयार होती है। नीचे एक प्रतिनिधि अंश है।
| ID | गंभीरता | STRIDE श्रेणी | संसाधन | विवरण |
|---|---|---|---|---|
| T-001 | 🔴 CRITICAL | सूचना प्रकटीकरण | AuditBucket | S3 बकेट 'AuditBucket' में कोई सार्वजनिक पहुँच अवरोध कॉन्फ़िगर नहीं है — बकेट सार्वजनिक रूप से सुलभ हो सकती है। |
| T-002 | 🔴 CRITICAL | स्पूफिंग | WebSecurityGroup | सुरक्षा समूह 'WebSecurityGroup' 0.0.0.0/0 के लिए SSH/RDP (पोर्ट 22/3389) खोलता है। |
| T-003 | 🔴 CRITICAL | विशेषाधिकार वृद्धि | app_contributor | भूमिका असाइनमेंट 'app_contributor' विशेषाधिकार प्राप्त भूमिका 'Contributor' प्रदान करता है। |
| T-006 | 🟠 HIGH | सूचना प्रकटीकरण | AuditBucket | S3 बकेट 'AuditBucket' में सर्वर-साइड एन्क्रिप्शन कॉन्फ़िगर नहीं है। |
| T-008 | 🟠 HIGH | विशेषाधिकार वृद्धि | api | डिप्लॉयमेंट 'api' में कंटेनर 'api' रूट के रूप में चल सकता है (कोई runAsNonRoot=true या runAsUser=0 नहीं)। |
| T-011 | 🟠 HIGH | विशेषाधिकार वृद्धि | web | EC2 इंस्टेंस 'web' IMDSv1 को अनुमति देता है — मेटाडेटा सेवा बिना सत्र टोकन के सुलभ, जो SSRF-आधारित क्रेडेंशियल चोरी को सक्षम बनाता है। |
### T-002 — स्पूफिंग (CRITICAL)
संसाधन: AWS::EC2::SecurityGroup.WebSecurityGroup
गुण: ingress.ssh_rdp_open
निष्कर्ष: सुरक्षा समूह 'WebSecurityGroup' 0.0.0.0/0 के लिए SSH/RDP (पोर्ट 22/3389) खोलता है।
शमन: सार्वजनिक SSH/RDP पहुँच हटाएँ। AWS Systems Manager Session Manager
या IP प्रतिबंधों के साथ बास्टियन होस्ट का उपयोग करें।
रिपोर्ट एक Mermaid flowchart LR आरेख जोड़ती है। नोड्स सबसे खराब स्थिति की गंभीरता के अनुसार रंगीन होते हैं (🔴 लाल = CRITICAL, 🟠 नारंगी = HIGH)। ब्लॉक को किसी भी Mermaid रेंडरर में पेस्ट करें या GitHub पर सीधे देखें।