
एक लाइव Microsoft Sentinel + Defender XDR परिवेश (नियंत्रण-तल, एंडपॉइंट, पहचान) पर MITRE ATT&CK-मैप किए गए 9 KQL डिटेक्शन, PR-गेटेड Detection-as-Code पाइपलाइन (GitHub Actions, OIDC), SOAR प्लेबुक और SOC 2 नियंत्रण मैपिंग के साथ।
Detection engineering एक लाइव Microsoft Sentinel और Defender XDR वातावरण पर जिसे मैं संचालित करता हूँ। नौ कस्टम एनालिटिक्स नियम तीन प्लेनों में फैले हुए हैं, प्रत्येक MITRE ATT&CK से मैप किया गया है और एंड-टू-एंड सिद्ध है: एक नियंत्रित कार्रवाई नियम को ट्रिगर करती है, नियम एक घटना उठाता है, और घटना की जांच और दस्तावेज़ीकरण किया जाता है। सात Azure कंट्रोल प्लेन (AzureActivity) पर नज़र रखते हैं, जिसमें एक बहु-चरण सहसंबंध और एक ARG-समर्थित सामग्री नियम शामिल है; एक एंडपॉइंट (Defender for Endpoint) पर नज़र रखता है, जिसमें Defender Vulnerability Management एक हंटिंग लाइब्रेरी को फीड करता है; एक पहचान (Entra ID SigninLogs) पर नज़र रखता है। सभी एक ही PR-गेटेड पाइपलाइन द्वारा तैनात किए गए हैं।

एक लाइव सिंगल-टेनेंट वातावरण जिसे मैं एंड-टू-एंड संचालित करता हूँ। सभी स्क्रीनशॉट में टेनेंट और सब्सक्रिप्शन पहचानकर्ता और कोई भी PII को हटा दिया गया है।
आंकड़े ट्रेसेबल हैं: कवरेज ATT&CK लेयर तक, सत्यापन RESULTS.md तक। जानबूझकर कोई फाल्स-पॉज़िटिव-रेट बैज नहीं है: एक सिंगल-टेनेंट वातावरण सार्थक FP दर नहीं दे सकता है, इसलिए रिपॉजिटरी एक वास्तविक बेनाइन बैच पर मापे गए फाल्स फायर की रिपोर्ट करता है, न कि एक मनगढ़ंत प्रतिशत (metrics.yaml इसे पूरा बताता है)।
एक फोर्क पर डिटेक्शन यूनिट टेस्ट चलाएँ, Azure की आवश्यकता नहीं है। प्रत्येक नियम का वास्तविक KQL सिंथेटिक फिक्स्चर के खिलाफ एक स्थानीय Kusto एमुलेटर में चलता है, इसलिए डिटेक्शन लॉजिक मेरे टेनेंट के बिना सत्यापित करने योग्य है:
git clone https://github.com/ibondarenko1/azure-sentinel-detection-engineering
cd azure-sentinel-detection-engineering
docker run -d --rm -p 8080:8080 -e ACCEPT_EULA=Y mcr.microsoft.com/azuredataexplorer/kustainer-linux:latest
pip install pyyaml
python tests/run-detection-tests.py
यह वही चेक है जो CI हर पुल रिक्वेस्ट पर चलाता है (detection-tests): यह दावा करता है कि प्रत्येक नियम दुर्भावनापूर्ण फिक्स्चर पर उठता है और हानिरहित पर शांत रहता है। validation/ में लाइव हार्नेस और आगे बढ़ता है, एक टेनेंट में वास्तविक बेनाइन और अटैक बैच चलाता है और ट्रू पॉज़िटिव और फाल्स फायर मापता है, लेकिन उसके लिए आपकी अपनी Azure सब्सक्रिप्शन और az login की आवश्यकता है (validation/README देखें), इसलिए यह "स्थानीय" नहीं है। तैनाती पाइपलाइन: docs/03। एक नियम का योगदान: CONTRIBUTING।
एक डिटेक्शन तभी विश्वसनीय है जब आप इसे फायरिंग दिखा सकते हैं। यह रिपॉजिटरी तीन प्लेनों में उस लूप को बंद करती है, Azure कंट्रोल प्लेन, एंडपॉइंट और पहचान: नियम लॉजिक, नियंत्रित ट्रिगर, उत्पन्न घटना, जांच, और MITRE मैपिंग। यह सिंगल-इवेंट नियमों से आगे बढ़ता है जिसमें एक बहु-चरण सहसंबंध (अनुदान फिर तैनाती) और एक सामग्री-जागरूक नियम है जो Azure Resource Graph मुद्रा को परिवर्तन घटना से जोड़ता है। यह सिंथेटिक नमूनों के बजाय वास्तविक टेलीमेट्री के विरुद्ध Sentinel एनालिटिक्स नियम, KQL, और घटना प्रतिक्रिया है।
नियम पोर्टल में क्लिक नहीं किए गए हैं। वे PR-गेटेड पाइपलाइन द्वारा तैनात संस्करणित YAML हैं। डिटेक्शन को संपादित करने का मतलब है एक पुल रिक्वेस्ट खोलना; CI मान्य करता है, एक समीक्षक अनुमोदित करता है, और main में मर्ज करने पर इसे OIDC (कोई संग्रहीत रहस्य नहीं) के माध्यम से Sentinel में तैनात किया जाता है, नियम GUID (API 2025-09-01) द्वारा इडेम्पोटेंटली।
flowchart LR
D[नियम YAML संपादित करें] --> PR[पुल रिक्वेस्ट] --> V[CI मान्य करें] -->|समीक्षा| M[Merge main] --> CD[OIDC तैनाती] --> S[Sentinel sc200-ws]
detections/rules/*.yaml · पाइपलाइन: .github/workflows/deploy-detections.yml · तैनाती/मान्यक: cicd/ · विवरण: docs/03-cicd.md
एक वास्तविक परिवर्तन इसके माध्यम से गया: PR #1 ने DET-001 थ्रेशोल्ड को कस दिया (10 से 8); CI ने मान्य किया, और मर्ज ने इसे लाइव sc200-ws नियम में तैनात कर दिया। वह कदम, नियमों का git से समीक्षित PR द्वारा स्वचालित रूप से तैनात होना, एक डिटेक्शन इंजीनियर को एक विश्लेषक से अलग करता है जिसने एक कोर्स पूरा कर लिया है।
flowchart LR
subgraph Sources
A[Microsoft Defender XDR<br/>ईमेल · एंडपॉइंट]
B[Azure सब्सक्रिप्शन<br/>एक्टिविटी लॉग]
C[Entra ID<br/>साइन-इन]
end
A --> W[Log Analytics वर्कस्पेस<br/>sc200-ws]
B --> W
C --> W
W --> R[9 अनुसूचित<br/>एनालिटिक्स नियम]
R --> I[घटनाएँ]
I --> V[जांच<br/>+ MITRE मैपिंग]


प्रत्येक डिटेक्शन को एक नियंत्रित, स्व-वापस लेने योग्य प्रशासनिक कार्रवाई के साथ ट्रिगर किया गया और एक वास्तविक घटना उत्पन्न हुई:

वर्कस्पेस की वर्तमान परिचालन स्थिति: 10 एनालिटिक्स नियम सक्षम, 4 सक्रिय डेटा कनेक्टर, एक ऑटोमेशन नियम, और लाइव डेटा प्रवाहित। सक्षम 10 नियम इस सूची में नौ कस्टम [DET] अनुसूचित नियम और Microsoft के बिल्ट-इन Fusion नियम (एडवांस्ड मल्टी-स्टेज अटैक डिटेक्शन) हैं, जो डिफ़ॉल्ट रूप से चालू है और यहाँ लिखित नहीं है; नौ का आंकड़ा इस README में कहीं और केवल कस्टम नियमों की गणना करता है।

पाँच घटनाओं को पूर्ण जांच के रूप में लिखा गया है:
एक बार के ट्रिगर से परे, एक सत्यापन हार्नेस टेनेंट में एक वास्तविक बेनाइन + अटैक बैच चलाता है और प्रत्येक नियम के KQL को इसके खिलाफ चलाता है, ताकि फाल्स पॉज़िटिव मापे गए हों, अनुमानित नहीं। नवीनतम रन (परिणाम): 5/5 अटैक परिदृश्य उठे (DET-002/003/004/007/009) और बेनाइन स्ट्रीम पर 0 फाल्स फायर (अनुमत-सूचीबद्ध मालिक तैनाती, थ्रेशोल्ड से कम हटाने, बिना-अनुदान तैनाती)। यह उत्पादन मात्रा का दिखावा नहीं करता है; यह "N=1 पर 0% FP" को एक मापे गए "एक वास्तविक बेनाइन बैच पर 0 फाल्स फायर" में परिवर्तित करता है।
एक कवरेज नक्शा जिसमें स्पष्ट अंतराल हैं, नियमों की सूची से अधिक ईमानदार है। ATT&CK Navigator लेयर (लोड कैसे करें) दोनों दिखाता है:
अंतराल स्थिर पाठ नहीं हैं। प्रत्येक एक जीवंत detection-gap मुद्दा है, इसलिए रोडमैप एक क्लिक करने योग्य बैकलॉग है।
ये नियम क्यों और अन्य नहीं: docs/08, डिटेक्शन रणनीति और खतरा मॉडल सूची को एक क्लाउड किल चेन और जोखिम-रैंक वाले अंतरालों से मैप करता है। एक नियम कैसे ट्यून किया जाता है: docs/09, एक मापा DET-005 ट्यूनिंग लूप एक नियम को "हर लेखन पर उठता है" से मापा शून्य फाल्स पॉज़िटिव तक ले जाता है सत्यापन हार्नेस पर।
सबसे उच्च-गंभीरता डिटेक्शन पता लगाने से प्रतिक्रिया तक लूप को बंद करता है। एक Sentinel ऑटोमेशन नियम प्रत्येक DET-004 (सामूहिक हटाना) घटना पर एक Logic App प्लेबुक चलाता है: यह अनुशंसित रोकथाम (कॉलर को अक्षम करें, संसाधन समूहों को लॉक करें, पुनर्स्थापित करें, शिकार करें) के साथ एक संवर्धन टिप्पणी पोस्ट करता है। प्लेबुक अपनी प्रबंधित पहचान से सीधे ARM API में प्रमाणित होती है, बिना किसी रहस्य और बिना किसी बाहरी कनेक्टर के।
एक दूसरी प्लेबुक लूप को पता लगाना → प्रतिक्रिया → AI-जांच तक Microsoft Security Copilot के साथ बढ़ाती है: एक प्रॉम्प्टबुक + Logic App उसी DET-004 घटना पर एक Copilot प्रॉम्प्टबुक को लागू करती है और एक AI जांच सारांश को एक टिप्पणी के रूप में पोस्ट करती है। यह बिना किसी कंप्यूट यूनिट के बनाई और तैनात की जाती है; लाइव AI-सारांश कैप्चर एक एकल लागत-सीमित (~$4) भुगतान विंडो में चलता है और कैप्चर होने तक दावा नहीं किया जाता है। लागत और आरंभन रनबुक: docs/06।
डिटेक्शन Azure कंट्रोल प्लेन पर शुरू होते हैं; यह चरण एंडपॉइंट प्लेन जोड़ता है। एक Windows होस्ट पर Defender for Endpoint सेंसर उसी वर्कस्पेस को फीड करता है, ताकि Detection-as-Code पाइपलाइन एक एंडपॉइंट नियम, DET-006 LSASS क्रेडेंशियल एक्सेस, कंट्रोल-प्लेन नियमों के बगल में तैनात करती है। DET-006 बहु-स्रोत और देखा गया है: सेंसर के खिलाफ तीन क्रेडेंशियल-डंप तकनीकें चलाई गईं, कठोर होस्ट (LSASS RunAsPPL, AMSI, व्यवहारिक सुरक्षा) ने उनमें से प्रत्येक को रोका, और नियम परिणामी Defender अलर्ट पर उठा जिससे एक घटना उठी (INV-03)। Defender Vulnerability Management एक दूसरा इनपुट जोड़ता है: एक हंटिंग लाइब्रेरी जो उजागर सॉफ़्टवेयर द्वारा महत्वपूर्ण CVEs, असफल सुरक्षित-कॉन्फ़िगरेशन बेसलाइन, और सक्रिय अलर्ट के तहत कमजोर संपत्तियों को उजागर करती है। DeviceTvm* टेबल केवल Defender उन्नत हंटिंग में रहती हैं, इसलिए वे सहसंबंध हंट हैं, तैनात नियम नहीं, और रिपॉजिटरी कहती है कि प्रत्येक क्वेरी वास्तव में कहाँ चलती है। आर्किटेक्चर और डेटा प्रवाह: docs/07।


डिटेक्शन हमलों पर नज़र रखते हैं; यह चरण टेनेंट के अपने मुद्रा स्कोर को पढ़ता है और जो कुछ भी फ़्लैग करता है उसे ठीक करता है, फिर साबित करता है कि संख्या स्थानांतरित हो गई है। Defender for Cloud सुरक्षित स्कोर बेसलाइन को collect-posture.ps1 द्वारा एक मशीन-पढ़ने योग्य स्नैपशॉट के रूप में खींचा जाता है, ताकि पहले/बाद एक फ़ाइल डिफ हो, स्क्रीनशॉट तुलना नहीं। बेसलाइन पर स्कोर 68.81% (21.33 / 31) है, और प्रति-नियंत्रण ब्रेकडाउन पूरे 9.67-पॉइंट अंतर को चार नियंत्रणों (रेस्ट पर एन्क्रिप्शन, एक्सेस और अनुमतियाँ, नेटवर्क एक्सेस, ऑडिटिंग) में रखता है। उपचार विस्फोट त्रिज्या द्वारा आदेशित है, पहले योगात्मक फिक्स, और प्रत्येक आइटम को उस कैटलॉग नियम से मैप किया गया है जो इसके प्रतिगमन को पकड़ता है (स्टोरेज एक्सपोज़र से DET-002 / DET-009, RBAC प्रसार से DET-003 / DET-007, खोया लॉगिंग पूरे कैटलॉग से)। इस पास में तीन फिक्स लागू किए गए और संसाधन स्तर पर सत्यापित किए गए: सुरक्षा संपर्क और अलर्ट सूचनाएँ, दोनों SOAR प्लेबुक (+1 ऑडिटिंग) पर डायग्नॉस्टिक लॉगिंग, और सेंसर VM (+4 रेस्ट पर एन्क्रिप्शन) पर होस्ट पर एन्क्रिप्शन। Defender for Cloud अगले 24 से 72 घंटों में स्कोर का पुनर्मूल्यांकन और पुनर्गणना करता है, इसलिए बाद का स्कोर अब दावा करने के बजाय अनुवर्ती के रूप में दस्तावेज़ीकृत किया जाता है। पूर्ण विधि, आदेशित योजना, और डिटेक्शन-लिंकेज तालिका: docs/10, मुद्रा उपचार।


यह कार्य एक मान्यता प्राप्त नियंत्रण ढांचे का समर्थन करता है, इसलिए रिपॉजिटरी कहती है कि कहाँ। सूची का प्रत्येक भाग SOC 2 ट्रस्ट सर्विसेज मापदंड से मैप होता है: नौ-नियम सूची और घटनाएँ मॉनिटर-एंड-रिस्पॉन्ड श्रृंखला (CC7.2 से CC7.4) से, SOAR प्लेबुक घटना प्रतिक्रिया (CC7.4) से, PR-गेटेड Detection-as-Code पाइपलाइन परिवर्तन प्रबंधन (CC8.1) से, और सत्यापन हार्नेस और मुद्रा पहले/बाद नियंत्रण संचालन प्रभावशीलता (CC4.1) से। इसे एक मैपिंग के रूप में तैयार किया गया है, अनुपालन दावे के रूप में नहीं: यह एक टेनेंट है जिसे मैं संचालित करता हूँ, एक ऑडिटेड संगठन नहीं, इसलिए दस्तावेज़ तकनीकी नियंत्रण गतिविधियों को मैप करता है और शासन रैपर के बारे में स्पष्ट है जो एक वास्तविक SOC 2 रिपोर्ट को चाहिए होता है जो एक डिटेक्शन रिपॉजिटरी नहीं ले जाती है। पूर्ण मापदंड-दर-मापदंड तालिका और ऑडिट में यह कैसे पढ़ा जाएगा, यह नोट: docs/11, SOC 2 नियंत्रण मैपिंग।
detections/rules नियम सत्य-स्रोत (Sentinel YAML, CI द्वारा तैनात)
detections/*.md प्रति नियम एक कार्ड: लॉजिक, MITRE, ट्रिगर, साक्ष्य
detections/metrics.yaml प्रति-डिटेक्शन मीट्रिक्स (मात्रा, FP दर, TP, MTTD)
tests/ सिंथेटिक-लॉग यूनिट टेस्ट (Kusto एमुलेटर, फोर्क-चलाने योग्य)
validation/ लाइव मिश्रित-गतिविधि हार्नेस: बेनाइन + अटैक स्ट्रीम, मापा TP/FP
cicd/ + .github Detection-as-Code पाइपलाइन (तैनात, मान्य, प्रतिगमन)
sigma/ विक्रेता-तटस्थ Sigma रूपांतरण (किसी भी SIEM के लिए पोर्टेबल)
kql/ एनालिटिक्स-नियम क्वेरी + हंटिंग लाइब्रेरी
investigations/ एंड-टू-एंड घटना लेखन-अप
simulations/ सटीक परमाणु-संरेखित ट्रिगर चरण
navigator/ ATT&CK कवरेज लेयर (कवर + अंतराल)
posture/ सुरक्षित स्कोर बेसलाइन कलेक्टर + JSON स्नैपशॉट + उपचार स्क्रिप्ट
playbooks/ SOAR प्रतिक्रिया (Logic App + ऑटोमेशन नियम)
docs/ आर्किटेक्चर, पद्धति, cicd, सत्यापन, डेटा-डिक्शनरी, एंडपॉइंट+TVM, डिटेक्शन-रणनीति, ट्यूनिंग केस स्टडी, मुद्रा उपचार, SOC 2 नियंत्रण मैपिंग
screenshots/ दृश्य साक्ष्य
KQL · Microsoft Sentinel अनुसूचित एनालिटिक्स नियम · बहु-चरण सहसंबंध नियम · Entra ID पहचान डिटेक्शन (SigninLogs) · अनुमति-सूची वॉचलिस्ट (_GetWatchlist) · Azure Resource Graph मुद्रा-जैसी-सामग्री (अनुसूचित Action) · Microsoft Defender XDR · Microsoft Defender for Endpoint · Defender Vulnerability Management (TVM) · उन्नत हंटिंग (Device / DeviceTvm टेबल) · Microsoft Secure Score · Defender for Cloud मुद्रा उपचार (CSPM, MCSB) · SOC 2 कॉमन क्राइटेरिया नियंत्रण मैपिंग · Detection-as-Code (GitHub Actions, OIDC) · SOAR (Logic Apps ऑटोमेशन नियम) · Sigma (विक्रेता-तटस्थ) · Atomic Red Team सत्यापन · घटना ट्रायेज और जांच · MITRE ATT&CK मैपिंग · Azure कंट्रोल-प्लेन (एक्टिविटी लॉग) निगरानी।
यह एक व्यक्तिगत पोर्टफोलियो है, लेकिन इसे इस तरह से संरचित किया गया है कि एक डिटेक्शन परिवर्तन एक समीक्षा योग्य पुल रिक्वेस्ट है, पोर्टल क्लिक नहीं। यदि आप इसे फोर्क करते हैं या एक नियम प्रस्तावित करना चाहते हैं, तो CONTRIBUTING.md वर्कफ़्लो को कवर करता है: नियम YAML संपादित करें, KQL मिरर को पुनर्जीवित करें, टेस्ट फिक्स्चर बढ़ाएँ, स्थानीय रूप से यूनिट टेस्ट चलाएँ, और एक PR खोलें जो उसी CI गेट्स द्वारा जाँचा जाता है।
Microsoft प्रमाणित: सुरक्षा संचालन विश्लेषक एसोसिएट (SC-200)।
एक वातावरण जिसे मैं संचालित करता हूँ, किसी भी नियोक्ता या तीसरे पक्ष का उत्पादन टेनेंट नहीं। डिटेक्शन को मेरे अपने संसाधनों के खिलाफ नियंत्रित, स्व-वापस लेने योग्य प्रशासनिक कार्रवाइयों के साथ मान्य किया गया है; कोई उत्पादन प्रणाली और कोई तीसरा पक्ष शामिल नहीं है। सभी स्क्रीनशॉट में टेनेंट और सब्सक्रिप्शन पहचानकर्ता और PII को हटा दिया गया है।
| आईडी | डिटेक्शन | गंभीरता | MITRE टैक्टिक | तकनीक |
|---|
| DET-001 | असफल एक्टिविटी लॉग ऑपरेशनों में वृद्धि | मध्यम | Discovery | T1087 अकाउंट डिस्कवरी |
| DET-002 | नेटवर्क सिक्योरिटी ग्रुप नियम संशोधित | मध्यम | Defense Evasion | T1562 प्रतिरक्षा को कमजोर करना |
| DET-003 | RBAC भूमिका असाइनमेंट परिवर्तन | मध्यम | Privilege Escalation / Persistence | T1098 अकाउंट मैनिपुलेशन |
| DET-004 | बड़े पैमाने पर संसाधन हटाना | उच्च | Impact | T1485 डेटा विनाश |
| DET-005 | गैर-मालिक द्वारा संदिग्ध संसाधन तैनाती | मध्यम | Persistence | T1098 अकाउंट मैनिपुलेशन |
| DET-006 | LSASS क्रेडेंशियल एक्सेस (एंडपॉइंट) | उच्च | Credential Access | T1003.001 LSASS मेमोरी |
| DET-007 | विशेषाधिकार अनुदान उसके बाद तैनाती (सहसंबंध) | उच्च | Privilege Escalation / Persistence | T1098 अकाउंट मैनिपुलेशन |
| DET-008 | बार-बार असफलताओं के बाद सफल साइन-इन (पहचान) | मध्यम | Credential Access / Initial Access | T1110 ब्रूट फोर्स, T1078 मान्य अकाउंट |
| DET-009 | NSG नियम परिवर्तन ने किसी भी स्रोत से इनबाउंड खोल दिया (ARG सामग्री) | उच्च | Defense Evasion | T1562.007 क्लाउड फायरवॉल को अक्षम/संशोधित करना |
| कवर किया गया (तैनात नियम) | ज्ञात अंतराल, एक मुद्दे के रूप में ट्रैक किया गया |
|---|
| T1087 अकाउंट डिस्कवरी (DET-001) | T1530 क्लाउड स्टोरेज से डेटा, डेटा-प्लेन डिटेक्शन |
| T1562.007 क्लाउड फायरवॉल को अक्षम/संशोधित करना (DET-002 / DET-009) | T1496 संसाधन हाईजैकिंग, खर्च/माइनिंग विसंगति |
| T1098 अकाउंट मैनिपुलेशन (DET-003 / DET-005 / DET-007) | T1526 क्लाउड सर्विस डिस्कवरी, ह्यूरिस्टिक को मजबूत करना |
| T1485 डेटा विनाश (DET-004) | |
| T1003.001 LSASS मेमोरी (DET-006) | |
| T1110 ब्रूट फोर्स / T1078 मान्य अकाउंट (DET-008) |