
deadair v0.4.0
आपके SIEM में ब्लाइंड डिटेक्शन नियमों को ढूंढता है
ओपन-सोर्स SIEM डिटेक्शन स्वास्थ्य।
उन सक्षम डिटेक्शनों को खोजें जो अंधे हैं क्योंकि उनका टेलीमेट्री गायब, पुराना, विलंबित, या
स्कीमा-असंगत है।
स्थानीय रूप से चलता है · केवल-पठनीय · कोई एजेंट नहीं · कोई टेलीमेट्री अपलोड नहीं
तकनीकी लेख पढ़ें · Detection Engineering Weekly में फीचर्ड · tl;dr sec #341 में फीचर्ड
जानबूझकर गायब, पुराने, विलंबित, और अप्रयुक्त टेलीमेट्री वाले एक डिस्पोजेबल Elastic लैब का वास्तविक स्कैन। संक्षिप्त रीप्ले के लिए छवि खोलें, या इसे make record-scan-lab के साथ दोबारा बनाएं।
deadair क्यों
एक नियम सक्षम, शेड्यूल्ड, और त्रुटि-मुक्त हो सकता है जब उसे आवश्यक डेटा गायब हो चुका हो। deadair लाइव नियम इन्वेंट्री पढ़ता है, बैकएंड की मूल शब्दार्थ का उपयोग करके प्रत्येक नियम के इनपुट को हल करता है, और उनके पीछे के ठोस स्रोतों की जाँच करता है।
यह पकड़ता है:
- ऐसे नियम जिनके index, alias, या data-stream चयनकर्ता किसी चीज़ में हल नहीं होते;
- मिश्रित-चयनकर्ता नियम जहाँ एक घोषित इनपुट गायब हो गया है जबकि दूसरा अभी भी हल होता है;
- ऐसे नियम जिनके मिलान वाले सभी स्रोत पुराने या खाली हैं;
- Elastic पर, घोषित फ़ील्ड गायब होने वाले नियम;
- Elastic और पात्र Sentinel Scheduled नियमों पर, ingest-lag अंधा विंडो;
- Sentinel पर, ऐसे नियम जिनके ज्ञात स्रोत असंगत Basic या Auxiliary टेबल योजना का उपयोग करते हैं;
- Elastic और OpenSearch पर, स्वस्थ टेलीमेट्री जिसे कोई सक्षम डिटेक्शन नहीं पढ़ता।
deadair Elastic Security, OpenSearch Security Analytics, और Microsoft Sentinel का समर्थन करता है।
त्वरित आरंभ
GitHub Releases से macOS, Linux, या Windows के लिए एक बाइनरी डाउनलोड करें, या Go के साथ इंस्टॉल करें:
go install github.com/alephnull-sh/deadair/cmd/deadair@latest
अपने SIEM के लिए केवल-पठनीय सेटअप प्रिंट करें:
deadair setup elastic # Elastic Security
deadair setup opensearch # OpenSearch Security Analytics
deadair setup sentinel # Microsoft Sentinel
एक सेटअप चलाएं, फिर सत्यापित करें और स्कैन करें:
deadair check # सत्यापित करें कि क्रेडेंशियल स्कैन कर सकता है
deadair scan # लाइव नियमों और टेलीमेट्री का आकलन करें
एग्ज़िट कोड स्थिर हैं: 0 कॉन्फ़िगर किए गए गेट को पास करता है, 1 का अर्थ है गेटेड निष्कर्ष, और 2 का अर्थ है स्कैन विफल।
यह कैसे काम करता है
| चरण | deadair क्या करता है |
|---|---|
| इन्वेंट्री | सक्षम डिटेक्शन और उनके घोषित इनपुट पढ़ता है |
| समाधान | Elastic और OpenSearch पर मूल index समाधान का उपयोग करता है; Sentinel पर, KQL विश्लेषण को टेबल, वॉचलिस्ट, सहेजे गए फ़ंक्शन, ASIM, और मैप किए गए क्रॉस-वर्कस्पेस साक्ष्य के साथ जोड़ता है |
| माप | स्रोत ताज़गी और समय की जाँच करता है, साथ ही स्कीमा और स्टोरेज जहाँ बैकएंड उनका समर्थन करता है |
| रिपोर्ट | प्रत्येक निर्णय के पीछे साक्ष्य के साथ टर्मिनल, JSON, HTML, फ्लीट रोलअप, और Prometheus मेट्रिक्स उत्सर्जित करता है |
Sentinel उसी नियम-से-स्रोत मॉडल का पालन करता है। इसका एडाप्टर शाब्दिक वॉचलिस्ट, सहेजे गए फ़ंक्शन, ASIM पार्सर, मैप किए गए वर्कस्पेस, और सारांश-टेबल वंशावली को भी समझता है। जब Azure पर्याप्त साक्ष्य प्रदान करता है, तो deadair दिखा सकता है कि एक साझा टेबल का एक फ़िल्टर किया गया स्लाइस शांत हो गया है या एक सारांश पाइपलाइन पीछे रह गई है। वे दो जाँचें सलाहकारी हैं; वे गेट को नहीं बदलतीं। उपयोग गाइड साक्ष्य नियमों का वर्णन करता है, और सत्यापन रिकॉर्ड लाइव परीक्षण कवरेज दर्ज करता है।
गायब, पुराने, विलंबित, और असंगत टेलीमेट्री के साथ बीजित एक डिस्पोजेबल Sentinel लैब का लाइव स्कैन। संक्षिप्त रीप्ले के लिए छवि खोलें। केवल-पठनीय और लेखन-अस्वीकृति परीक्षणों के लिए अलग Azure अनुरूपता रिकॉर्ड देखें।
deadair जाँचता है कि क्या किसी डिटेक्शन का टेलीमेट्री मौजूद और स्वस्थ है। यह नियम तर्क को मान्य नहीं करता या यह साबित नहीं करता कि एक सिम्युलेटेड हमला अलर्ट उत्पन्न करेगा। उन कार्यों के लिए स्थिर नियम सत्यापन और एंड-टू-एंड डिटेक्शन परीक्षणों का उपयोग करें।
निष्कर्ष
| निष्कर्ष | अर्थ | पहली जाँच |
|---|---|---|
| कोई मिलान स्रोत नहीं | नियम का कोई भी इनपुट दृश्यमान index, डेटा स्ट्रीम, या Sentinel टेबल में हल नहीं होता | पैटर्न परिवर्तन, लापता एकीकरण, और क्रेडेंशियल दायरा |
| सभी स्रोत पुराने या खाली | हर हल किया गया स्रोत अभी अप्रयोग योग्य है | स्रोत कैडेंस और ingest पथ |
| लापता फ़ील्ड | एक Elastic नियम-घोषित फ़ील्ड एक या अधिक हल किए गए स्रोतों में अनुपस्थित या गैर-खोज योग्य है, प्रत्येक स्रोत मैपिंग पढ़े जाने के बाद | पार्सर, पैकेज, और मैपिंग परिवर्तन |
| lag अंधा विंडो | युग्मित-घटना p95 ingest विलंब नियम के लुकबैक मार्जिन से अधिक है | नियम अंतराल, लुकबैक, टाइमस्टैम्प ओवरराइड, और पाइपलाइन विलंब |
| आंशिक इनपुट कवरेज | पूर्ण अभिव्यक्ति हल होती है, लेकिन इसके भीतर एक सकारात्मक चयनकर्ता खाली हल होता है | माइग्रेशन, फ़ॉलबैक चयनकर्ता, और अपेक्षित विकल्प; सूचनात्मक जब तक नीति इसे गेट नहीं करती |
| स्रोत योजना असंगत | एक Sentinel नियम एक Basic या Auxiliary टेबल पर निर्भर करता है जो एनालिटिक्स-नियम साक्ष्य पथ के लिए पात्र नहीं है | टेबल योजना और नियम प्रकार |
| स्रोत गिरावट | एक स्रोत पुराना, खाली, कम-मात्रा, या स्कीमा-विचलित है | स्रोत इतिहास और अपेक्षित रखरखाव |
| अप्रयुक्त टेलीमेट्री | Elastic या OpenSearch पर, डेटा संग्रहीत किया जा रहा है लेकिन कोई सक्षम स्थानीय डिटेक्शन इसके लिए हल नहीं होता | अक्षम नियम और जानबूझकर संग्रह |
हर निर्णय उस तक सीमित है जो कॉन्फ़िगर किया गया क्रेडेंशियल देख सकता है। JSON रिपोर्ट में कॉन्फ़िगर की गई अभिव्यक्तियाँ, हल किए गए स्रोत, समाधान विधि, मूल्यांकन स्थिति, बैकएंड मेटाडेटा, और क्षमता साक्ष्य शामिल हैं। काम किए गए उदाहरणों और ट्राइएज के लिए उपयोग गाइड देखें।
एक SIEM कनेक्ट करें
Elastic:
export DEADAIR_ES_URL=https://es.example.internal:9200
export DEADAIR_KIBANA_URL=https://kibana.example.internal:5601
export DEADAIR_API_KEY=<read-only-api-key>
deadair check
deadair scan --json-out report.json --html-out report.html
OpenSearch:
export DEADAIR_BACKEND=opensearch
export DEADAIR_OPENSEARCH_URL=https://opensearch.example.internal:9200
export DEADAIR_OPENSEARCH_USERNAME=deadair
export DEADAIR_OPENSEARCH_PASSWORD=<password>
deadair check
deadair scan
Microsoft Sentinel:
az login --tenant <tenant-id>
export DEADAIR_BACKEND=sentinel
export DEADAIR_AZURE_SUBSCRIPTION_ID=<subscription-id>
export DEADAIR_AZURE_RESOURCE_GROUP=<resource-group>
export DEADAIR_SENTINEL_WORKSPACE=<workspace-resource-name>
# वैकल्पिक: शाब्दिक workspace() लक्ष्यों के लिए JSON allowlist।
# export DEADAIR_SENTINEL_REMOTES=/restricted/path/sentinel-remotes.json
deadair check
deadair scan
deadair किसी नियम के मैप किए गए दूरस्थ वर्कस्पेस का आकलन करने से पहले, उस वर्कस्पेस में Sentinel तैनात होना चाहिए। समान-सब्सक्रिप्शन मैपिंग स्रोत उपलब्धता साबित कर सकती हैं। क्रॉस-सब्सक्रिप्शन नियमों को सटीक नियम पहचान से जुड़े रनटाइम साक्ष्य की आवश्यकता होती है। साक्ष्य नियमों, वर्कस्पेस और क्षेत्र सीमाओं, और Microsoft के प्रदर्शन मार्गदर्शन के लिए Sentinel उपयोग विवरण देखें।
Elastic, OpenSearch, या Microsoft Sentinel के लिए प्रलेखित केवल-पठनीय भूमिकाओं का उपयोग करें।
CI, फ्लीट, और निगरानी
# लाइव स्रोत उपलब्धता के विरुद्ध एक उम्मीदवार नियम को गेट करें।
deadair scan --rule new-rule.json
# रिपोर्टों के बीच केवल नए प्रतिगमन पर विफल हों।
deadair diff yesterday.json today.json
# एक प्रक्रिया से कई SIEM इंस्टेंस स्कैन करें।
deadair scan --fleet fleet.json
# कैश किए गए स्कैन परिणामों को Prometheus मेट्रिक्स के रूप में निर्यात करें।
deadair serve --interval 5m
scan --rule एक बैकएंड-मूल उम्मीदवार नियम या डिटेक्टर को असंबंधित बैकलॉग से अलग करता है। diff
उसी कॉलर-धारित कुंजी के साथ बनाई गई रिडैक्टेड रिपोर्टों के साथ काम करता है। फ्लीट कॉन्फ़िगरेशन
गुप्त मानों को संग्रहीत करने के बजाय पर्यावरण चर के माध्यम से रहस्यों को संदर्भित करता है।
आधिकारिक GitHub Action Elastic, OpenSearch, और Sentinel के लिए एकल-इंस्टेंस उम्मीदवार गेट्स को लपेटता है। यह एक जॉब सारांश लिखता है, एक रिडैक्टेड JSON रिपोर्ट अपलोड करता है, और नियम स्थापित किए बिना एक deadair नीति लागू कर सकता है। Sentinel वर्कफ़्लो पहले रनर को Azure में प्रमाणित करते हैं; Action कोई Azure क्रेडेंशियल इनपुट परिभाषित नहीं करता।
अपने स्वयं के वातावरण में परीक्षण करने के लिए कॉन्फ़िगरेशन के लिए CI गेट व्यवहार, फ्लीट और MSSP तैनाती, और Prometheus उदाहरण देखें।
परीक्षण किए गए बैकएंड
| बैकएंड | लाइव सत्यापन |
|---|---|
| Elastic Security | 8.19.19 और 9.4.4 पर विश्वसनीय CI |
| OpenSearch Security Analytics | 2.19.6 और 3.7.0 पर विश्वसनीय CI |
| Microsoft Sentinel | डिस्पोजेबल UK South वर्कस्पेस में रिकॉर्ड किया गया ऑप्ट-इन अनुरूपता; सत्यापन स्थिति देखें |
Sentinel अनुरूपता रन मैनुअल है, शेड्यूल्ड CI नहीं।
सुरक्षा मॉडल
- सभी एडाप्टर कॉल केवल-पठनीय हैं। विश्वसनीय Elastic और OpenSearch परीक्षणों के साथ-साथ अलग Sentinel लैब प्रोब यह सत्यापित करते हैं कि प्रलेखित स्कैन पहचान प्रतिनिधि लेखन नहीं कर सकतीं।
- रिपोर्ट, HTML, स्थिति फ़ाइलें, और फ्लीट आउटपुट POSIX सिस्टम पर
0600लिखे जाते हैं। - क्रेडेंशियल पर्यावरण चर या फ़ाइलों से आ सकते हैं, प्रक्रिया तर्कों में रहस्यों से बचते हुए।
--redactटेनेंट, नियम, स्रोत, पैटर्न, फ़ील्ड, निर्भरता, वंशावली, उत्पत्ति, वर्कस्पेस, वॉचलिस्ट, टेम्पलेट, और पैकेज पहचानकर्ताओं को कुंजीबद्ध HMAC छद्मनामों से बदल देता है। सत्यापित निर्भरता प्रोब अभिव्यक्तियाँ और उनके KQL तर्क कभी क्रमबद्ध नहीं होते। यादृच्छिक बाइट्स से उत्पन्न एक--redact-key-fileभी रिडक्शन सक्षम करता है और अलग-अलग रनों में नाम स्थिर रखता है।- एक्सपोर्टर डिफ़ॉल्ट रूप से लूपबैक से बंधता है।
- deadair में कोई फ़ोन-होम व्यवहार या उपयोग टेलीमेट्री नहीं है।
रिपोर्टों को संवेदनशील SOC कलाकृतियों के रूप में मानें: वे अंधे डिटेक्शन, स्रोत नाम, स्कीमा अंतराल, और अप्रयुक्त संग्रह की पहचान करती हैं।
दस्तावेज़ीकरण
- उपयोग गाइड — पहले स्कैन, रिपोर्ट साक्ष्य, निष्कर्ष, CI गेट्स, स्थिति, और फ्लीट
- सत्यापन स्थिति — परीक्षण किए गए पथ और वर्तमान सीमाएँ
- आर्किटेक्चर — बैकएंड अनुबंध, डेटा मॉडल, सुरक्षा गुण, और सीमाएँ
- सर्वोत्तम अभ्यास — रोलआउट क्रम, अलर्ट संदर्भ, और रूटिंग
- MSSP गाइड — रहस्य, रिडक्शन, शेड्यूलिंग, और टेनेंट विफलता हैंडलिंग
- डिटेक्शन जो चलते हैं लेकिन देख नहीं सकते — समस्या और एक प्रतिलिपि योग्य सिमुलेशन
योगदान
बग रिपोर्ट, सैनिटाइज़ किए गए फिक्स्चर, शुद्धता मामले, दस्तावेज़, और बैकएंड प्रस्ताव स्वागत योग्य हैं। शुरू करें CONTRIBUTING.md के साथ और एडाप्टर कार्य के लिए बैकएंड RFC टेम्पलेट का उपयोग करें।
लाइसेंस
Apache-2.0।

