धमकी मॉडलिंग और जोखिम नियंत्रण
1) सिद्धांत
1. वास्तुशिल्प पहले। हम संदर्भों, विश्वास सीमाओं और डेटा प्रवाह के साथ शुरू करते हैं।
2. जोखिम ≈ संभावना × प्रभाव। हम मापते हैं, महसूस नहीं करते।
3. गहराई में रक्षा। प्रत्येक परत पर नियंत्रण: कोड → प्रोटोकॉल → प्लेटफॉर्म → लोग।
4. बाएँ/दाएँ शिफ्ट करें। पीआर + निगरानी और प्रोड में प्रारंभिक द्वार।
5. डिजाइन द्वारा गोपनीयता। हम न केवल सुरक्षा खतरों का अनुकरण करते हैं, बल्कि गोपनीयता जोखिम भी
6. स्वचालित कहाँ संभव है। कोड, ऑटो-चेक, "लाल रेखाओं" के रूप में नीतियां।
2) इन्वेंट्री: संपत्ति, संस्थाएं, विश्वास की सीमाएं
संपत्ति: डेटा (पीआईआई, वित्त, रहस्य), कंप्यूटिंग संसाधन, कुंजी, एक्सेस, व्यावसायिक प्रक्रियाएं।
विषय: उपयोगकर्ता, सेवा, प्रशासन, भागीदार, बाहरी प्रदाता।
ट्रस्ट की सीमाएँ: उपयोगकर्ता ↔ फ्रंट, फ्रंट ↔ एपीआई गेटवे, सर्विसेज ↔ डेटाबेस/कैश/कतारें, क्षेत्र/बादल।
हमला सतह: इनपुट पॉइंट (एपीआई, वेबहूक, यूआई, नेटवर्क, सीआई/सीडी, आपूर्ति श्रृंखला)।
DFD (उदाहरण, मरमेड):mermaid flowchart LR
U[Пользователь] -- TLS --> WAF[WAF/CDN]
WAF --> GW[API Gateway]
GW --> Svc[Service A]
Svc --> DB[(Postgres)]
Svc --> MQ[[Kafka]]
MQ --> SvcB[Service B]
subgraph Trust Boundary
GW; Svc; SvcB end
3) खतरे की रूपरेखा
STRIDE (безопасность): स्पूफिंग, टैम्परिंग, प्रतिशोध, सूचना प्रकटीकरण, सेवा से इनकार, विशेषाधिकार की ऊंचाई।
LINDDUN (приватность): लिंकेबिलिटी, आइडेंटिफिबिलिटी, नॉन-रिपुडिएशन, डिटेक्टिबिलिटी, डिस्क्लोजर, अनजानता, गैर-अनुपालन।
PASTA (प्रक्रिया): व्यावसायिक लक्ष्यों और खतरे वाले अभिनेताओं से - तकनीकी विवरण परीक्षण परि
तालिका (टुकड़ा, STRIDE × घटक):4) जोखिम मूल्यांकन
कमजोरियों के लिए DREAD/OWASP जोखिम रेटिंग या CVSS।
संभावना (एल): हमलावर का मकसद/क्षमताएं, जटिलता, सतह जोखिम।
प्रभाव (I): वित्त, कानूनी जोखिम, डाउनटाइम, पीडी लीक।
जोखिम (R = L × I) → प्राथमिकता और ट्राइटमेंट: बचें/कम करें/स्थानांतरण/स्वीकार करें।
मैट्रिक्स (उदाहरण):
Impact
Low Med High Critical
Lik Low L L M H
Med L M H H
High M H High Crit
जोखिम रजिस्टर (न्यूनतम क्षेत्र): 'आईडी, परिदृश्य, स्ट्राइड, परिसंपत्ति, एल, आई, आर, मालिक, नियंत्रण, स्थिति, संशोधन तिथि'।
5) नियंत्रण: रोकना/पता लगाना/जवाब देना
रोकें:- प्रमाणीकरण/प्राधिकरण: OIDC/OAuth2, PoLP, RBAC/ABAC, अल्पकालिक सेवा क्रेडिट।
- रहस्य/कुंजियाँ: KMS/HSM, घुमाव, नहीं जानता, FPE/फ़ील्ड एन्क्रिप्शन.
- सुरक्षित प्रोटोकॉल: TLS1। 2 +, एमटीएलएस, वेबहुक हस्ताक्षर, पहचान और एंटी-रिप्ले।
- सत्यापन/स्वच्छता: योजनाएं (JSON स्कीमा/प्रोटो), सीमा, सामान्यीकरण।
- अलगाव: नेटवर्क नीतियां, विभाजन, सैंडबॉक्स, नेमस्पेस, बल्कहेड।
- ऑडिट लॉग (अपरिचित), SIEM में सहसंबंध, विसंगतियों के लिए अलर्ट।
- हस्ताक्षर और अखंडता की निगरानी (कलाकृति हैश का निर्यात, सत्यापन)।
- प्रारंभिक कुंजी रिसाव का पता लगाने के लिए हनीटोकेंस/कैनरी।
- रनबुक IR: वर्गीकरण, अलगाव, कुंजी रिकॉल, अलर्ट, फोरेंसिक।
- स्वचालित किल-स्विच/फीचर-फ्लैग, टोकन की "ब्लैक लिस्ट"।
- पीडी घटनाओं के मामले में उपयोगकर्ताओं/नियामकों की अधिसूचना।
6) एसडीएल और सुरक्षा द्वार
विचार/डिजाइन में: खतरा मॉडल (RFC/ADR), नियंत्रण की चेकलिस्ट।
विकास में: SAST/गुप्त-स्कैन, निर्भरता स्कैन (SCA), निर्भरता नीति।
विधानसभा में: SBOM, कलाकृति हस्ताक्षर, भेद्यता नीति (CVSS थ्रेसहोल्ड)।
क्षेत्र में: OPA/Kyverno - IaC/प्रकट नीति ( संदर्भ, नेटवर्क नीतियां, गुप्त अग्रेषण)।
बिक्री में: IDS/WAF, विसंगति का पता लगाना, कैनरी चेक, अराजकता सुरक्षा (उदाहरण के लिए, समाप्त प्रमाणपत्र)।
गेट का उदाहरण (कोड के रूप में नीति, छद्म-रेगो):rego package policy.cicd deny[msg] {
some v input.sbom.vulns[v].cvss >= 7.0 msg:= sprintf("High vuln blocked: %s %s", [v.package, v.id])
}
deny[msg] {
input.k8s.pod.spec.securityContext.runAsRoot == true msg:= "RunAsRoot forbidden"
}
7) कलाकृतियों में आपूर्ति श्रृंखला और ट्रस्ट
SBOM प्रति छवि/पैकेज; निर्भरता अद्यतन - बॉट/पॉलिसी के माध्यम से।
SLSA/provenance: प्रजनन योग्य विधानसभाएं, हस्ताक्षर, सत्यापन।
कंटेनर: न्यूनतम छवियां, रूटलेस, ड्रॉप क्षमताएं, केवल रीड-एफएस।
IaC स्कैन: Terraform/Helm - एन्क्रिप्शन पॉलिसी, खुले पोर्ट, नेटवर्क नियम।
8) गोपनीयता और अनुपालन
LINDDUN-मानचित्र गोपनीयता खतरों, डेटा न्यूनीकरण, छद्म नाम/गुमनामी।
प्रतिधारण नीतियां: टीटीएल/प्रतिधारण, "हटाने का अधिकार", पीडी तक पहुंच का ऑडिट।
स्थानीयकरण: भू-सीमाएं, "डेटा क्षेत्र में रहता है।"
पारदर्शिता: प्रसंस्करण, अधिसूचना और सहमति लॉग।
9) बादल और परिधि
जीरो ट्रस्ट: प्रत्येक अनुरोध का प्रमाणीकरण, सेवाओं के बीच mTLS/OPA।
विभाजन: वीपीसी/सबनेट्स/एसजी, निजी एंडपॉइंट, एग्रेस कंट्रोल।
कुंजी/रहस्य: KMS, रोटेशन, CI (OIDC महासंघ) में लघु क्रेडिट।
रिजर्व/डीआर: एन्क्रिप्टेड बैकअप, चाबियां अलग से, रिकवरी रिहर्सल।
10) लाल/बैंगनी टीमें और टेबलटॉप अभ्यास
रेड टीम: खतरे की परिकल्पना परीक्षण, सामाजिक इंजीनियरिंग, श्रृंखला शोषण।
पर्पल टीम: डिटेक्शन/अलर्ट की संयुक्त डिबगिंग, प्लेबुक आईआर में सुधार।
टेबलटॉप: स्क्रिप्ट "एक्सपायर्ड सर्टिफिकेट", "लीक की गई कुंजी", "आपूर्ति-श्रृंखला समझौता। "परिणाम अद्यतन नियंत्रण और मैट्रिक्स है।
11) परिपक्वता मैट्रिक्स और प्रबंधन
कवरेज: वर्तमान खतरे मॉडल और डीएफडी के साथ% सेवाएं।
सुरक्षा एमटीटीडी/एमटीटीआर, नियंत्रण द्वारा पकड़ी गई घटनाओं का अनुपात।
सीआई में नीति पास-दर, आलोचना द्वारा कमजोरियों को बंद करने का समय।
गोपनीयता: TTL/ILM के साथ डेटासेट का%, औचित्य के साथ पहुंच का हिस्सा।
लेखा परीक्षा: जोखिम रजिस्टर संशोधन (त्रैमासिक) की नियमितता।
12) कलाकृतियाँ पैटर्न
12. 1 जोखिम कार्ड (उदाहरण)
Risk ID: SEC-API-012
Сценарий: SSRF через изображение в профиле
STRIDE: Tampering/Info Disclosure
Актив: API / файловый прокси
Likelihood: High Impact: High Risk: Critical
Контроли: denylist схем, egress-прокси, URL-fetcher в изолированном рантайме,
DNS-resolv только через прокси, время/размер-лимиты, allowlist.
Владелец: team-accounts Статус: Reduce (в работе)
Дата пересмотра: 2025-12-01
12. 2 डिजाइन चेकलिस्ट
संपत्ति और PII की पहचान? ट्रस्ट की सीमाएँ चिह्नित?
क्या DFD/डेटा लूप ADR के लिए रचित और मैप किए गए हैं?
STRIDE/LINDDUN ने प्रत्येक DFD तीर का पता लगाया?
जोखिम ट्रिटमेंट चयनित; मालिकों/समय सीमा/DoD है?
कोड के रूप में नीतियां जोड़ी गई (OPA/Kyverno/CI गेट्स)?
निगरानी योजना/अलर्ट और आईआर-रनबुक अद्यतन?
गोपनीयता: न्यूनतम करना, एन्क्रिप्शन, टीटीएल/प्रतिधारण, स्थानीयकरण?
12. 3 वेबहुक नीति (स्यूडोकोड)
python def verify_webhook(req, keys):
ts = int(req.h["X-Timestamp"])
if abs(now_utc()-ts) > 300: return 401 if not hmac_ok(req.body, ts, keys.active_or_prev(), req.h["X-Signature"]):
return 401 if replay_cache.seen(req.h["X-Event-ID"]): return 200
PoLP: в обработчике — только нужные скоупы handle(json.loads(req.body))
replay_cache.mark(req.h["X-Event-ID"])
return 200
13) एंटी-पैटर्न
डीएफडी/इनवेरिएंट्स के बिना धमकी मॉडल "शो के लिए"।
आंतरिक सेवा-से-सेवा प्रमाणीकरण के बिना "सुपर-परिधि"।
पर्यावरण/रेपो चर में लंबे समय तक जीवित रहस्य।
कोड मैनुअल के रूप में एम्बेडेड नहीं की गई नीतियां "भूल गई"।
छलावरण के बिना और प्रतिधारण/टीटीएल के बिना पीडी के साथ लॉग।
आपूर्ति श्रृंखला की अनदेखी (कोई SBOM/हस्ताक्षर/स्कैन नहीं)।
बिना मालिक और संशोधन तिथि स्वीकारें।
14) प्रक्रियाओं में एकीकरण
RFC/ADR - प्रत्येक सार्थक समाधान में एक खतरा और नियंत्रण अनुभाग होता है।
डॉक्स-ए-कोड: कोड के बगल में संस्करण में खतरा मॉडल, डीएफडी, जोखिम रजिस्टर।
रिलीज़ गेट्स: SAST/SCA/SBOM नीतियां विफल होने या उच्च-गंभीरता नियंत्रण गायब होने पर रिलीज़ अवरुद्ध हो जाती है।
प्रशिक्षण: डेवलपर्स के लिए प्लेबुक (रहस्य, हस्ताक्षर, PoLP), नियमित टेबलटॉप।
निष्कर्ष
थ्रेट मॉडलिंग जोखिम प्रबंधन का एक इंजीनियरिंग अभ्यास है, न कि एक बार का दस्तावेज। परिसंपत्तियों और विश्वास सीमाओं को परिभाषित करें, STRIDE/LINDDUN को लागू करें, जोखिम को मापें, इसे पंजीकृत करें, और CI/CD और ऑपरेशन में एम्बेड करके कोड के रूप में नियंत्रण लागू करें। परिपक्वता मैट्रिक्स और नियमित संशोधन के साथ, आप सुरक्षा को एक अनुमानित वास्तुशिल्प क्षमता में बदल देंगे - समझने योग्य मूल्य, प्रभाव और गति के साथ।