
log-horizon v0.9.0
Microsoft Sentinel SIEM लॉग स्रोत विश्लेषक
Microsoft Sentinel SIEM लॉग स्रोत विश्लेषक
मुझे "इन लॉग्स से हमें वास्तव में क्या मिल रहा है?" या "Microsoft Sentinel के लिए अनुशंसित लॉग क्या हैं?" जैसे सवालों का जवाब देना पड़ा है, इससे अधिक बार जितना मैं गिन सकता हूँ। जवाब हमेशा कई चीज़ों पर निर्भर करता है, लेकिन हम सामान्य हो सकते हैं। इसलिए मैंने यह चीज़ यहीं बनाई।
Log Horizon आपके Microsoft Sentinel वर्कस्पेस (और वैकल्पिक रूप से Defender XDR) से जुड़ता है, आपके द्वारा इन्जेस्ट किए जा रहे हर लॉग टेबल से गुजरता है, और आपको बताता है कि क्या आपको इससे सुरक्षा मूल्य मिल रहा है या सिर्फ पैसा बर्बाद हो रहा है। यह टेबल्स को वर्गीकृत करता है, आपके डिटेक्शन नियमों के खिलाफ उन्हें स्कोर करता है, और बचत अनुमानों के साथ ठोस सिफारिशें देता है।
महत्वपूर्ण: यह एक सामान्य दृष्टिकोण है। यदि आप जानते हैं कि एक लॉग स्रोत आपके वातावरण के लिए महत्वपूर्ण है, तो वह संदर्भ हमेशा इस टूल के बताए गए से पहले आता है। वर्गीकरण एक शुरुआती बिंदु हैं, अंतिम सत्य नहीं।
और पढ़ना चाहते हैं? मेरे पास Log Horizon के बारे में कुछ पोस्ट मेरे ब्लॉग पर हैं:
- टूल रिलीज़: Log Horizon
- अपडेट: Log Horizon v0.5.0
- एक व्यावहारिक लॉग बेसलाइन बनाना और Log Horizon इसमें आपकी कैसे मदद करता है
- Log Horizon का उपयोग कैसे करें
विशेषताएँ
| विशेषता | विवरण |
|---|---|
| वर्गीकरण इंजन | 481-प्रविष्टि ज्ञान आधार जिसमें 240+ कनेक्टर, 22 श्रेणियाँ, जीवनचक्र स्थिति (अप्रचलित/विरासत साथ ही प्रतिस्थापन टेबल्स) और अज्ञात टेबल्स के लिए स्वचालित ह्यूरिस्टिक फॉलबैक शामिल हैं |
| लागत-मूल्य स्कोरिंग | प्रति-टेबल लागत स्तर बनाम डिटेक्शन स्तर मैट्रिक्स जिसमें संयुक्त मूल्यांकन (उच्च मूल्य से निम्न मूल्य तक), प्रति देखे गए प्लान (Analytics, Basic, Data Lake) मूल्य निर्धारित |
| सिफारिशें | 13 प्राथमिकता वाले कार्य प्रकार: डेटा लेक या Basic उम्मीदवार, शून्य-डिटेक्शन टेबल्स, XDR स्ट्रीमिंग अपशिष्ट, इन्जेस्ट-समय फ़िल्टरिंग, विभाजन उम्मीदवार, प्लान उपयोग, अप्रचलित स्रोत, अवधारण कमियाँ, XDR चेकर और डिटेक्शन विश्लेषक निष्कर्ष, प्रत्येक के साथ बचत अनुमान |
| डिटेक्शन मैपिंग | कवरेज अंतराल का पता लगाने के लिए प्रत्येक टेबल पर एनालिटिक्स नियमों, शिकार क्वेरीज़ और XDR डिटेक्शन को मैप करता है |
| सहसंबंध टैग | नियम विवरणों में #DONT_CORR# / #INC_CORR# टैग का पता लगाता है और Defender सहसंबंध से बाहर किए गए नियमों को चिह्नित करता है |
| अवधारण अनुपालन | उद्योग मानकों और सुरक्षा सर्वोत्तम प्रथाओं के आधार पर अनुशंसित न्यूनतम के खिलाफ वास्तविक अवधारण की तुलना करता है |
| SOC अनुकूलन | Security Insights API से Microsoft के अपने SOC सुधार अनुशंसाओं को खींचता है |
| कीवर्ड अंतराल विश्लेषण | विक्रेता/उत्पाद कीवर्ड के आधार पर उन टेबल्स को चिह्नित करता है जिन्हें आपको इन्जेस्ट करना चाहिए लेकिन नहीं कर रहे हैं |
| ट्रांसफ़ॉर्म खोज | वर्कस्पेस को लक्षित करने वाले डेटा संग्रह नियमों (DCRs) की खोज करता है (गंतव्य पर फ़िल्टर की गई सदस्यता सूची, वर्कस्पेस ट्रांसफ़ॉर्मेशन DCR, और वर्कस्पेस एसोसिएशन), इनलाइन और बहु-चरण ट्रांसफ़ॉर्म को पार्स करता है, और हर ऑपरेशन को लेबल करता है (फ़िल्टर, प्रोजेक्शन, कॉलम हटाना, संवर्धन, एकत्रीकरण) |
| विभाजित टेबल पहचान | _SPLT_CL विभाजित टेबल्स की पहचान करता है और उन्हें वर्गीकरण इंजन में मूल टेबल्स से जोड़ता है |
| विभाजित KQL जनरेटर | एक क्यूरेटेड ज्ञान आधार, लाइव नियम विश्लेषण और समुदाय फ़ील्ड आवृत्ति आँकड़ों से पोर्टल-तैयार विभाजित KQL उत्पन्न करता है -- केवल-स्थिति प्रारूप जो सीधे Sentinel विभाजन नियम संपादक में चिपक जाता है। फ़ील्ड सूचियाँ टेबल के लाइव स्कीमा के साथ प्रतिच्छेदित होती हैं; जो कुछ भी मौजूद नहीं है उसे हटाए गए के रूप में रिपोर्ट किया जाता है |
| डिटेक्शन विश्लेषक | घटना परिणामों (स्वतः-बंद अनुपात, झूठी सकारात्मक अनुपात और घटना मात्रा प्रतिशतक) का उपयोग करके संभावित शोर के लिए एनालिटिक नियमों को स्कोर करता है |
| XDR चेकर | XDR-केंद्रित सलाहकार परत जोड़ता है: स्ट्रीमिंग कवरेज जाँच और XDR-संबंधित टेलीमेट्री के लिए एक-वर्ष डेटा लेक अवधारण मार्गदर्शन |
| कस्टम वर्गीकरण | अंतर्निहित वर्गीकरण डेटाबेस को जोड़ने या ओवरराइड करने के लिए अपना स्वयं का JSON प्रदान करें |
| संग्रह कैश | एकत्रित वर्कस्पेस डेटा स्थानीय रूप से कैश किया जाता है (डिफ़ॉल्ट 60 मिनट) ताकि पुनः-रन और पुनः-निर्यात सेकंडों में हों; -NoCache के साथ ऑप्ट आउट करें |
| संप्रभु क्लाउड | ARM, Log Analytics और Graph एंडपॉइंट साइन-इन किए गए Azure वातावरण (सार्वजनिक, US Government, China) का पालन करते हैं |
| इंटरैक्टिव TUI | Spectre.Console डैशबोर्ड जिसमें मेनू, रंग-कोडित टेबल्स, ड्रिल-डाउन, अवधारण विज़ार्ड और ASCII कला शामिल हैं |
| निर्यात | टीम के साथ साझा करने के लिए JSON, Markdown या स्थिर HTML रिपोर्ट |
अस्वीकरण
[!CAUTION] अस्वीकरण
यह टूल AI की मदद से विकसित और अनुरक्षित किया गया है। कृपया इस समाधान का उपयोग करते समय सावधानी बरतें और इसे प्रोडक्शन में चलाने से पहले हमेशा समझें कि आप क्या चला रहे हैं। डेवलपर किसी भी कमजोरी या समस्या के लिए कोई दायित्व नहीं मानता है।
इस टूल को डाउनलोड करके, स्थापित करके या उपयोग करके, आप स्वीकार करते हैं कि आपने इन शर्तों को पढ़ा, समझा और उनसे सहमत हैं।
पूर्वापेक्षाएँ
| आपको क्या चाहिए | संस्करण |
|---|---|
| PowerShell | 7.0+ |
| Az मॉड्यूल | Az.Accounts |
| अन्य मॉड्यूल | PwshSpectreConsole 2.6.3+ |
| वैकल्पिक | Microsoft.Graph.Authentication (साइन-इन उपयोगकर्ता के रूप में -IncludeDefenderXDR के लिए) |
एंडपॉइंट वर्तमान Connect-AzAccount सत्र के Azure वातावरण का पालन करते हैं, इसलिए Azure Government और Azure China वर्कस्पेस अतिरिक्त पैरामीटर के बिना काम करते हैं। जब कोई वातावरण उपलब्ध नहीं होता है तो सार्वजनिक क्लाउड मान उपयोग किए जाते हैं।
यदि आप पहले से Azure में लॉग इन नहीं हैं, तो मॉड्यूल आपके लिए Connect-AzAccount शुरू कर देगा। यदि आप हैं, तो यह बस जारी रहेगा।
अनुमतियाँ: वर्कस्पेस पर Log Analytics Reader और Microsoft Sentinel Reader विश्लेषण को कवर करते हैं। ट्रांसफ़ॉर्म खोज को सदस्यता या संसाधन समूह पर Microsoft.Insights/dataCollectionRules/read (Monitoring Reader) की भी आवश्यकता होती है; इसके बिना रन जारी रहता है और लापता अनुमति का नाम बताते हुए एक चेतावनी प्रिंट करता है। -IncludeDefenderXDR CustomDetection.Read.All के साथ Microsoft Graph का उपयोग करता है, जो साइन-इन उपयोगकर्ता के लिए वैकल्पिक Microsoft.Graph.Authentication मॉड्यूल का अर्थ है।
आरंभ करना
काफी सीधा:```powershell
Grab the dependencies
Install-Module -Name Az.Accounts -Scope CurrentUser Install-Module -Name PwshSpectreConsole -Scope CurrentUser
Clone and import
git clone https://github.com/lnfernux/log-horizon Import-Module ./log-horizon/LogHorizon.psd1
## उपयोग
### मूल बातें
Azure से कनेक्ट करके शुरू करें और सुनिश्चित करें कि आपने सही खाता और सब्सक्रिप्शन चुना है:```powershell
Connect-AzAccount
फिर हम टूल को इनवोक कर सकते हैं:```powershell Invoke-LogHorizon -SubscriptionId '00000000-0000-0000-0000-000000000000' -ResourceGroup 'rg-sentinel' -WorkspaceName 'my-sentinel-ws'
<img width="860" height="842" alt="{F4FFA929-B24F-490C-BD3D-F75E214BCD93}" src="https://assets.kitploit.com/production/public/readmes/13110/ff9d1da85043d02a216df72913ecf63520310b8d820b1bd1278b8e4aca718494.png" />
अन्य आउटपुट में गहराई से जाने के लिए एक मेनू भी है:
<img width="395" height="223" alt="{83CE9E6E-F373-49CD-BE05-182DB69F36BE}" src="https://assets.kitploit.com/production/public/readmes/13110/0606a575b10640bd13ebb87b930f74b2438167b5578cb843b412b4fcf273fc26.png" />
### कीवर्ड गैप + Defender XDR
क्या आप जानना चाहते हैं कि क्या आप विशिष्ट विक्रेताओं से संबंधित टेबल मिस कर रहे हैं? कुछ कीवर्ड डालें। यदि आप XDR विश्लेषण भी चाहते हैं तो `-IncludeDefenderXDR` जोड़ें।```powershell
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -Keywords 'CrowdStrike','AWS','Okta' -IncludeDefenderXDR
डिटेक्शन एनालाइज़र
घटनाओं और ऑटोमेशन नियमों के आधार पर नियम गुणवत्ता/शोर विश्लेषण सक्षम करें:```powershell Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -IncludeDetectionAnalyzer -DetectionLookbackDays 90
### एक रिपोर्ट निर्यात करें```powershell
# JSON
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -Output json -OutputPath ./report.json
# Markdown
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -Output markdown -OutputPath ./report.md
# Static HTML (self-contained, no JS, works offline)
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -Output html -OutputPath ./report.html
# Auto-generate timestamped filename by pointing at a directory
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -Output html -OutputPath ./reports/
तालिका अवधारण (retention) और प्रकार प्रबंधित करें
अब आप इंटरैक्टिव TUI से सीधे तालिका अवधारण और तालिका प्रकार को अपडेट कर सकते हैं:
Invoke-LogHorizonको सामान्य रूप से खोलें, फिर बल्क अवधारण या प्रकार अपडेट के लिए मुख्य मेनू से Manage table retention and type चुनें।- Log Tuning / Transforms > Evaluate specific table खोलें और एकल-तालिका परिवर्तन के लिए Manage retention/type for this table चुनें।
स्क्रिप्टिंग या स्वचालन के लिए, समर्पित सार्वजनिक कमांड का उपयोग करें:```powershell
Preview a single-table change (prints a Table / Plan / Interactive / Total / Status / Reason table, applies nothing)
Set-LogHorizonTableRetention -SubscriptionId '...' -ResourceGroupName 'rg' -WorkspaceName 'ws' ` -TableName 'SigninLogs' -TotalRetentionInDays 365 -WhatIf
Switch tables to Basic and set total retention
Set-LogHorizonTableRetention -SubscriptionId '...' -ResourceGroupName 'rg' -WorkspaceName 'ws' ` -TableName 'AzureDiagnostics','VMConnection' -TargetPlan Basic -TotalRetentionInDays 730
Use -1 for inherit/default semantics
RetentionInDays = inherit workspace default
TotalRetentionInDays = remove long-term retention
Set-LogHorizonTableRetention -SubscriptionId '...' -ResourceGroupName 'rg' -WorkspaceName 'ws' ` -TableName 'SigninLogs' -RetentionInDays -1 -TotalRetentionInDays -1
### गैर-इंटरैक्टिव / CI मोड
इंटरैक्टिव TUI को छोड़ें और सीधे फ़ाइल में निर्यात करें, जो पाइपलाइनों या निर्धारित रनों के लिए उपयोगी है:```powershell
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -NonInteractive -Output json -OutputPath ./reports/
यदि आप -Output छोड़ देते हैं, तो विश्लेषण ऑब्जेक्ट पाइपलाइन में वापस कर दिया जाता है ताकि आप इसे अपने स्वयं के लॉजिक में पाइप कर सकें।
संग्रह कैश
डेटा संग्रह चरण (उपयोग, नियम, घटनाएँ, टेबल, DCRs) डिफ़ॉल्ट रूप से कैश किया जाता है, ताकि उसी वर्कस्पेस के विरुद्ध दोबारा चलाने पर—उदाहरण के लिए दूसरा प्रारूप निर्यात करने या TUI को फिर से खोलने के लिए—सेकंड लगें, मिनट नहीं। कैश $env:LOCALAPPDATA\LogHorizon\cache के अंतर्गत रहता है (-CachePath से ओवरराइड करें), प्रत्येक सदस्यता, संसाधन समूह, वर्कस्पेस, -DaysBack, -DetectionLookbackDays, -IncludeDefenderXDR, -IncludeDetectionAnalyzer, तीन मूल्य पैरामीटर और मॉड्यूल संस्करण के संयोजन के लिए एक फ़ाइल। -CacheMaxAgeMinutes (डिफ़ॉल्ट 60) से पुरानी प्रविष्टियाँ अनदेखी की जाती हैं, और हर सेव पर समाप्त प्रविष्टियाँ हटा दी जाती हैं ताकि फ़ोल्डर में अन्य पैरामीटर सेट या पुराने संस्करणों की फ़ाइलें जमा न हों। टोकन कभी भी कैश में नहीं लिखे जाते; प्रत्येक आह्वान पर प्रमाणीकरण चलता है ताकि प्रतिधारण विज़ार्ड के पास हमेशा लाइव क्रेडेंशियल हों।
कैश फ़ाइल प्लेनटेक्स्ट Clixml है। -IncludeDetectionAnalyzer के साथ इसमें आपके वर्कस्पेस से घटना शीर्षक, संख्याएँ, स्थिति और वर्गीकरण शामिल होते हैं; घटना स्वामी, नियम लेखक और असाइन किए गए स्वामी की पहचान एकत्र नहीं की जाती। साझा मशीनों पर -NoCache का उपयोग करें या -CachePath को उस स्थान पर इंगित करें जहाँ आपको आवश्यक एक्सेस नियंत्रण हो।```powershell
Force a fresh collection and refresh the cache
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -RefreshCache
Never read or write the cache
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -NoCache
Accept cached data for up to a day
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -CacheMaxAgeMinutes 1440
### लॉग ट्यूनिंग और स्प्लिट KQL
इंटरैक्टिव TUI में एक **लॉग ट्यूनिंग / ट्रांसफॉर्म्स** मेनू शामिल है, जिसमें लाइव ट्यूनिंग सुझाव (आपके तैनात नियमों और हंटिंग क्वेरी से फ़ील्ड उपयोग), नॉलेज-बेस स्प्लिट KQL, और प्रति-टेबल मूल्यांकनकर्ता शामिल हैं। हर KQL ब्लॉक केवल कंडीशन-आधारित है और सीधे Sentinel स्प्लिट रूल एडिटर में पेस्ट हो जाता है, जिसमें स्रोत एट्रिब्यूशन (नॉलेज बेस, रूल विश्लेषण, या संयुक्त) शामिल होता है।
### कस्टम मूल्य निर्धारण
डिफ़ॉल्ट मूल्य वेस्ट यूरोप सिंपलिफाइड PAYG USD में हैं: 5.59 $/GB एनालिटिक्स, 1.15 $/GB बेसिक, 0.20 $/GB डेटा लेक (0.07 इन्जेशन + 0.13 प्रोसेसिंग)। प्रत्येक टेबल का मूल्य `Usage` टेबल में देखी गई योजना के अनुसार निर्धारित होता है, और मुफ़्त स्थिति `Usage.IsBillable` से आती है। वॉल्यूम बिलिंग GB (1000 MB) का उपयोग करते हैं। यदि आपका कमिटमेंट टियर अलग है:```powershell
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -PricePerGB 4.61 -BasicPricePerGB 1.15 -LakePricePerGB 0.20
सभी पैरामीटर
| पैरामीटर | प्रकार | आवश्यक | डिफ़ॉल्ट | विवरण |
|---|---|---|---|---|
-SubscriptionId | string | हाँ | - | Azure सब्सक्रिप्शन ID |
-ResourceGroup | string | हाँ | - | Sentinel वर्कस्पेस वाला संसाधन समूह |
-WorkspaceName | string | हाँ | - | Log Analytics वर्कस्पेस का नाम |
-WorkspaceId | string | नहीं | - | वर्कस्पेस ID (छोड़े जाने पर स्वतः हल हो जाता है) |
-Output | string | नहीं | - | निर्यात प्रारूप: json, markdown / md, या html (उपनाम -o) |
-OutputPath | string | नहीं | - | निर्यात के लिए फ़ाइल या निर्देशिका पथ। मौजूदा निर्देशिका या पिछला विभाजक टाइमस्टैम्प वाला फ़ाइल नाम प्राप्त करता है; बिना एक्सटेंशन वाला फ़ाइल नाम प्रारूप का एक्सटेंशन प्राप्त करता है; लापता निर्देशिकाएँ बनाई जाती हैं |
-Keywords | string[] | नहीं | - | अंतर विश्लेषण के लिए कीवर्ड (जैसे 'AWS','CrowdStrike', उपनाम -kw) |
-IncludeDefenderXDR | switch | नहीं | - | Defender XDR कस्टम डिटेक्शन विश्लेषण शामिल करें |
-IncludeDetectionAnalyzer | switch | नहीं | - | इंसिडेंट और ऑटोमेशन नियमों का उपयोग करके प्रति-नियम शोरगुल डिटेक्शन विश्लेषण शामिल करें |
-DetectionLookbackDays | int | नहीं | 90 | इंसिडेंट/ऑटोमेशन-आधारित डिटेक्शन विश्लेषण के लिए क्वेरी विंडो (1-365 दिन) |
-DaysBack | int | नहीं | 90 | उपयोग डेटा के लिए क्वेरी विंडो (1-365 दिन) |
-PricePerGB | decimal | नहीं | 5.59 | Sentinel Analytics टियर इन्जेशन मूल्य प्रति GB (उपनाम -ppgb) |
-BasicPricePerGB | decimal | नहीं | 1.15 | Basic Logs मूल्य प्रति GB |
-LakePricePerGB | decimal | नहीं | 0.20 | Auxiliary / Data Lake टियर मूल्य प्रति GB (इन्जेशन + प्रोसेसिंग) |
-NonInteractive | switch | नहीं | - | TUI डैशबोर्ड छोड़ें और सीधे निर्यात करें (या यदि -Output छोड़ा गया है तो डेटा पाइपलाइन में लौटाएँ) |
-CustomClassificationPath | string | नहीं | - | वर्गीकरण जोड़ने या ओवरराइड करने के लिए कस्टम JSON फ़ाइल का पथ (उपनाम -clf) |
-NoCache | switch | नहीं | - | संग्रह कैश न पढ़ें और न लिखें |
-RefreshCache | switch | नहीं | - | ताज़ा डेटा एकत्र करें और कैश प्रविष्टि ओवरराइट करें |
-CacheMaxAgeMinutes | int | नहीं | 60 | पुनः उपयोग करने के लिए कैश प्रविष्टि की अधिकतम आयु (1-10080) |
-CachePath | string | नहीं | $env:LOCALAPPDATA\LogHorizon\cache | कैश फ़ाइलों के लिए निर्देशिका |
अंदर की कार्यप्रणाली
तो चार चरण हैं।
1. डेटा संग्रह
मॉड्यूल Azure से जुड़ता है और Log Analytics, Security Insights, Azure Monitor और Microsoft Graph APIs से डेटा खींचता है। हर कॉल एक रीट्राई रैपर (429, 5xx और ट्रांसपोर्ट त्रुटियाँ) से गुजरती है और, जब तक -NoCache सेट न हो, एकत्रित डेटा अगली रन के लिए स्थानीय रूप से कैश किया जाता है।
| डेटा स्रोत | API | हम क्या लेते हैं |
|---|---|---|
| तालिका उपयोग | Usage तालिका (KQL) | आपकी क्वेरी विंडो पर प्रति तालिका इन्जेशन मात्रा, योजना और बिल योग्य फ़्लैग |
| Analytics नियम | Security Insights REST | सक्रिय डिटेक्शन नियम + वे किन तालिकाओं को हिट करते हैं + सहसंबंध टैग, साथ ही गैर-KQL नियम प्रकारों के लिए अंतर्निहित तालिका उपभोक्ता |
| Hunting क्वेरी | Log Analytics सहेजी गई खोज REST | सहेजी गई hunting क्वेरी + संदर्भित तालिकाएँ |
| डेटा कनेक्टर | Security Insights REST | स्थापित कनेक्टर इन्वेंटरी |
| SOC अनुकूलन | Security Insights REST (पूर्वावलोकन) | Microsoft के अंतर्निहित SOC अनुशंसाएँ |
| तालिका अवधारण | Log Analytics Tables REST | प्रति-तालिका अवधारण, संग्रह, योजना (Analytics/Basic/Auxiliary), विरासत-डिफ़ॉल्ट फ़्लैग और स्कीमा कॉलम |
| डेटा संग्रह नियम | Azure Monitor REST | वर्कस्पेस को लक्षित करने वाले DCR (सब्सक्रिप्शन सूची, वर्कस्पेस ट्रांसफ़ॉर्मेशन DCR, संबद्धताएँ) और उनके ट्रांसफ़ॉर्म |
| Defender XDR | Microsoft Graph | XDR कस्टम डिटेक्शन नियम (वैकल्पिक; प्रत्यायोजित CustomDetection.Read.All या Az Graph टोकन) |
| इंसिडेंट | Security Insights REST | इंसिडेंट परिणाम (स्थिति/वर्गीकरण), समय, और नियम-गुणवत्ता स्कोरिंग के लिए नियम-लिंकिंग संकेत |
| ऑटोमेशन नियम | Security Insights REST | नियम-स्तरीय बंद-इंसिडेंट क्रियाएँ और स्वतः-बंद आरोपण के लिए शीर्षक मिलान शर्तें |
| SentinelHealth | Log Analytics KQL | निश्चित स्वतः-बंद आरोपण के लिए इंसिडेंट संख्याओं के साथ ऑटोमेशन नियम रन इवेंट (वैकल्पिक, स्वास्थ्य निगरानी की आवश्यकता है) |
2. वर्गीकरण
हर तालिका दो पासों के माध्यम से वर्गीकृत होती है:
पहले, Data/log-classifications.json में 481-प्रविष्टि ज्ञान आधार के विरुद्ध एक सीधा लुकअप। प्रत्येक प्रविष्टि में कनेक्टर नाम, प्राथमिक/द्वितीयक वर्गीकरण, सुरक्षा श्रेणी, MITRE डेटा स्रोत मैपिंग, अनुशंसित मूल्य निर्धारण टियर और अवधारण, और वैकल्पिक जीवनचक्र फ़्लैग (प्रतिस्थापन तालिकाओं के साथ अप्रचलित/विरासत, XDR स्ट्रीम क्षमता, प्लेटफ़ॉर्म) होते हैं।
यदि कोई मेल नहीं है, तो अनुमानी नियम इस क्रम में लागू होते हैं:
- नाम में सुरक्षा टोकन होता है जैसे
Alert,Incident,Threat,Signin,Logon,Audit,Risk,Detection(PascalCase शब्द शुरुआत में मिलान) -> प्राथमिक - नाम इन्फ्रा टेलीमेट्री जैसा दिखता है:
Flow,Metric,Diagnostic,Perf,Heartbeat,Health,Inventory,Usage-> द्वितीयक - सक्रिय analytics नियम इसकी ओर इशारा करते हैं -> प्राथमिक
- Microsoft उपसर्ग वाली अंतर्निहित तालिका (
AAD,Microsoft,Azure,Defender,Purview,Entra,Sentinel,Office,Intune,Windows...) -> प्राथमिक, समीक्षा और डेटाबेस में जोड़ने के लिए चिह्नित - सामान्य
*Log/*Logsनाम -> द्वितीयक - उच्च मात्रा (>10 GB/माह) जिस पर कुछ भी डिटेक्ट नहीं कर रहा -> द्वितीयक
- उपरोक्त में से कोई नहीं -> अज्ञात
3. लागत-मूल्य स्कोरिंग
प्रत्येक तालिका को कुछ आयामों पर स्कोर किया जाता है:
- लागत टियर: मुफ़्त / कम (<1 GB) / मध्यम (1-10 GB) / उच्च (10-50 GB) / बहुत उच्च (>50 GB)
- डिटेक्शन टियर: कोई नहीं / कम (1-2 नियम) / मध्यम (3-9 नियम) / उच्च (10+ नियम)
- आकलन: उच्च मूल्य / अच्छा मूल्य / लापता कवरेज / अनुकूलित करें / कम मूल्य / कम उपयोग / मुफ़्त टियर / प्लेटफ़ॉर्म
- कवरेज %: कम से कम एक analytics नियम या hunting क्वेरी द्वारा संदर्भित तालिकाओं का प्रतिशत,
tablesWithRules / totalTables * 100के रूप में गणना। प्रति-तालिका कवरेज तालिका नामों के लिए KQL पार्स करके पाए गए analytics नियम + hunting क्वेरी का योग करता है। - अंतर्निहित कवरेज: जिन नियम प्रकारों में KQL नहीं होता वे फिर भी तालिकाओं का उपभोग करते हैं।
Data/implicit-consumers.jsonउन्हें मैप करता है (Threat Intelligence मिलान ->ThreatIntelIndicators/ThreatIntelObjects, Fusion ->SecurityAlert/Anomalies, UEBA ->BehaviorAnalytics/UserPeerAnalytics/IdentityInfo, Microsoft इंसिडेंट निर्माण ->SecurityAlert)। उन प्रकारों के सक्षम नियम प्रभावी कवरेज की ओर गिने जाते हैं, और प्रत्येक तालिकाkql,xdr,implicit,platformयाnoneकाCoverageSourceरिपोर्ट करती है। Sentinel अपने लिए लिखने वाली प्लेटफ़ॉर्म तालिकाएँ (SecurityIncident,SentinelHealth,Watchlist,Usage...) कभी भी लापता कवरेज के रूप में चिह्नित नहीं होतीं औरPlatformआकलन प्राप्त करती हैं। - केवल सक्षम analytics नियम और सक्षम Defender कस्टम डिटेक्शन कवरेज की ओर गिने जाते हैं।
फिर मॉड्यूल अनुशंसाएँ उत्पन्न करता है (13 प्रकार):
| प्रकार | कब सक्रिय होता है | क्या करना है |
|---|---|---|
| Data Lake | द्वितीयक + उच्च लागत + कुछ डिटेक्शन, और तालिका Auxiliary योजना का समर्थन करती है (जब केवल Basic समर्थित हो तो Basic योजना सुझाव पर वापस आती है) | Auxiliary/Data Lake टियर पर ले जाएँ; बचत वर्तमान लागत घटाकर लेक (या Basic) दर पर समान मात्रा है |
| Low Value | उच्च लागत + शून्य डिटेक्शन | नियम जोड़ें, फ़िल्टर करें, या डेटा लेक पर ले जाएँ |
| XDR Optimise | XDR-स्ट्रीम + 0 Sentinel नियम + XDR नियम मौजूद | स्ट्रीमिंग बंद करें, इसके बजाय एकीकृत XDR पोर्टल का उपयोग करें |
| Missing Coverage | प्राथमिक + शून्य डिटेक्शन (प्लेटफ़ॉर्म तालिकाएँ नहीं) | डेटा से मूल्य पाने के लिए analytics नियम लिखें |
| Ingest-time Filter | प्राथमिक + >20 GB + <=3 डिटेक्शन | मात्रा कम करने के लिए इन्जेशन-समय ट्रांसफ़ॉर्मेशन लागू करें |
| Split Candidate | प्राथमिक + उच्च मात्रा + डिटेक्शन + कोई मौजूदा ट्रांसफ़ॉर्म नहीं | तालिका को विभाजित करें ताकि उच्च-मूल्य पंक्तियाँ Analytics पर रहें और बाकी Data Lake पर जाएँ |
| Plan Usage | उपयोग पंक्तियाँ एक से अधिक योजना दिखाती हैं, या कॉन्फ़िगर की गई योजना उपयोग से देखी गई योजना से भिन्न होती है | समीक्षा करें कि क्या योजना संक्रमण अपेक्षित था |
| Deprecated Source | डेटाबेस में अप्रचलित या विरासत चिह्नित तालिका अभी भी इन्जेस्ट कर रही है | डिटेक्शन को प्रतिस्थापन तालिकाओं पर माइग्रेट करें, फिर पुराने कनेक्टर को हटाएँ। सूचनात्मक: कोई बचत दावा नहीं किया जाता क्योंकि इन्जेशन गायब होने के बजाय स्थानांतरित होता है |
| Retention Shortfall | वर्कस्पेस या तालिका अवधारण 90-दिन की आधार रेखा से नीचे | नियामक मार्गदर्शन को पूरा करने के लिए कुल/संग्रह अवधारण बढ़ाएँ |
| Retention Improvement | भुगतान वाली, गैर-प्लेटफ़ॉर्म तालिका 90 दिन पूरा करती है लेकिन श्रेणी अनुशंसा से नीचे बैठती है | लंबी कुल अवधारण पर विचार करें |
| Interactive Below Baseline | Analytics तालिका जिसमें इंटरैक्टिव (हॉट) अवधारण 90 दिनों से कम है | इंटरैक्टिव अवधारण को Sentinel द्वारा शामिल 90 दिनों तक बढ़ाएँ, जब तक कि छोटी हॉट विंडो जानबूझकर न हो |
| XDR Checker | ज्ञात Defender XDR तालिका स्ट्रीम नहीं हुई, बिना कवरेज के स्ट्रीम हुई, Data Lake पर अग्रेषित नहीं हुई, या एक-वर्षीय सलाह से नीचे | XDR टेलीमेट्री के लिए स्ट्रीमिंग और अवधारण की समीक्षा करें |
| Detection Analyzer | नियम स्कोर >= 70 जिसमें कम से कम 5 इंसिडेंट हों (-IncludeDetectionAnalyzer के साथ) | शोरगुल वाले नियम को ट्यून करें या अक्षम करें |
अनुशंसाएँ एक बार क्रमबद्ध होती हैं, उच्च > मध्यम > निम्न और फिर अनुमानित बचत द्वारा, और हर आउटपुट (JSON, Markdown, HTML, TUI) उस क्रम को बनाए रखता है।
4. Detection Analyzer (शोरगुल स्कोरिंग)
जब आप -IncludeDetectionAnalyzer पास करते हैं, तो मॉड्यूल हाल के इंसिडेंट और ऑटोमेशन नियम लाता है, फिर संभावित शोरगुल के लिए हर सक्षम analytics नियम को स्कोर करता है।
प्रति-नियम मेट्रिक्स (इंसिडेंट डेटा से गणना):
| मेट्रिक | इसकी गणना कैसे होती है |
|---|---|
| कुल इंसिडेंट | नियम से जुड़े इंसिडेंट की गिनती |
| AutoClose अनुपात | ऑटोमेशन नियमों द्वारा बंद किए गए इंसिडेंट ÷ कुल इंसिडेंट। प्राथमिक स्रोत: SentinelHealth तालिका (इंसिडेंट संख्या पर मिलान, सक्षम बंद-इंसिडेंट या प्लेबुक नियमों द्वारा ऑटोमेशन नियम रन)। फ़ॉलबैक: ऑटोमेशन नियम शर्त मिलान (analytic नियम id, शीर्षक और गंभीरता शर्तें, Sentinel की तरह ANDed)। जिन नियमों की शर्तें केवल स्थिति/रणनीति/इकाइयाँ हैं उन्हें हर इंसिडेंट पर लागू माना जाता है। |
| FalsePositive अनुपात | कुल इंसिडेंट ÷ गलत सकारात्मक के रूप में वर्गीकृत इंसिडेंट |
शोरगुल स्कोर सूत्र:
प्रत्येक मेट्रिक को कम से कम एक इंसिडेंट वाले सभी नियमों में प्रतिशतक रैंक में परिवर्तित किया जाता है। समग्र स्कोर एक भारित मिश्रण है:``` Score = (Volume_percentile × 0.35) + (AutoClose_percentile × 0.40) + (FalsePositive_percentile × 0.25)
- **वॉल्यूम प्रतिशतक (35%)**: एक नियम अन्य नियमों की तुलना में कितनी घटनाएँ उत्पन्न करता है।
- **AutoClose प्रतिशतक (40%)**: कितनी बार घटनाएँ स्वचालन नियमों द्वारा स्वतः बंद होती हैं (सबसे अधिक भार क्योंकि स्वचालित समापन कम-मूल्य वाले अलर्ट का सबसे मजबूत संकेत है)।
- **FalsePositive प्रतिशतक (25%)**: कितनी बार विश्लेषक परिणाम को गलत सकारात्मक के रूप में वर्गीकृत करते हैं।
**स्कोर सीमाएँ**:
| स्कोर | लेबल | अर्थ |
|---|---|---|
| ≥ 70 | शोरगुल वाला | नियम को संभवतः ट्यूनिंग या अक्षम करने की आवश्यकता है |
| ≥ 50 | निगरानी | नियम शोरगुल के शुरुआती संकेत दिखाता है |
| < 50 | स्वस्थ | नियम सामान्य सीमा के भीतर है |
| N/A | - | नियम से कोई संबंधित घटना नहीं है, या 3 से कम नियमों में घटनाएँ हैं इसलिए रैंक करने के लिए कुछ नहीं है |
घटनाओं को विश्लेषणात्मक नियम आईडी द्वारा बकेट किया जाता है (नियम नाम, फिर शीर्षक पर वापस आते हुए), इसलिए एक ही प्रदर्शन नाम साझा करने वाले दो नियमों को अलग-अलग स्कोर किया जाता है।
स्कोर ≥ 70 और कम से कम 5 घटनाओं वाले नियम स्वचालित रूप से **उच्च-प्राथमिकता अनुशंसाओं** के रूप में अनुशंसाएँ दृश्य में सामने आते हैं।
### 5. इंटरैक्टिव डैशबोर्ड
मुख्य मेनू ये दृश्य प्रदान करता है:
- **डैशबोर्ड**: अवलोकन आँकड़े, शीर्ष 10 सबसे महंगी तालिकाएँ (अप्रचलित और विरासत स्रोत एक बैज रखते हैं), कवरेज बार, प्रतिधारण अनुपालन सारांश, सहसंबंध बहिष्करण कॉलआउट
- **अनुशंसाएँ देखें**: अनुमानित मासिक बचत के साथ प्राथमिकता वाली क्रियाएँ, 10 से अधिक होने पर पूरी सूची दिखाने के लिए विस्तार योग्य
- **पहचान मूल्यांकन देखें**: लागत-मूल्य मैट्रिक्स सारांश, प्रति-तालिका नियम और शिकार क्वेरी कवरेज, प्राथमिक/द्वितीयक ड्रिल-डाउन, सहसंबंध-बहिष्कृत नियम सूची
- **पहचान विश्लेषक देखें**: समापन गुणवत्ता संकेतकों के साथ प्रतिशतक-आधारित शोरगुल नियम रैंकिंग (जब आपने `-IncludeDetectionAnalyzer` का उपयोग किया), खोज योग्य नियम ब्राउज़र
- **SOC अनुकूलन देखें**: ड्रिल-डाउन के साथ Microsoft के स्वयं के सुधार सुझाव
- **प्रतिधारण मूल्यांकन देखें**: न्यूनतम अनुशंसित से नीचे की तालिकाएँ वर्तमान बनाम अनुशंसित प्रतिधारण, योजना प्रकार और कमी के साथ, साथ ही XDR सलाहकार पंक्तियाँ
- **डेटा ट्रांसफ़ॉर्म देखें**: ट्रांसफ़ॉर्म प्रकार वर्गीकरण और प्रति तालिका पूर्ण KQL के साथ DCR ट्रांसफ़ॉर्म इन्वेंट्री
- **लॉग ट्यूनिंग / ट्रांसफ़ॉर्म**: लाइव ट्यूनिंग सुझाव, ज्ञान-आधार विभाजित KQL, और एकल-तालिका प्रतिधारण/प्रकार परिवर्तन के साथ प्रति-तालिका मूल्यांकनकर्ता
- **सभी तालिकाएँ देखें**: वर्गीकरण, योजनाएँ, लागत, नियम, प्रतिधारण (रंग-कोडित) और मूल्यांकन के साथ पूरी सूची; विवरण पैनल के लिए एक तालिका चुनें (कवरेज स्रोत, योजना समर्थन, प्रतिधारण, स्थिति, इसकी अनुशंसाएँ)
- **तालिका प्रतिधारण और प्रकार प्रबंधित करें**: पूर्वावलोकन और लागू करने के साथ बल्क प्रतिधारण और योजना विज़ार्ड
- **शब्दकोश**: उपकरण द्वारा उपयोग किया जाने वाला हर शब्द (वर्गीकरण, लागत और पहचान स्तर, मूल्यांकन, कवरेज स्रोत, 13 अनुशंसा प्रकार, पहचान विश्लेषक मेट्रिक्स और स्कोर लेबल, तालिका योजनाएँ, जीवनचक्र स्थिति, XDR स्थितियाँ, ट्रांसफ़ॉर्म प्रकार) इस README के समान परिभाषाओं के साथ, `Data/dictionary.json` से परोसा गया
- **रिपोर्ट निर्यात करें**: एक प्रारूप चुनें, फिर एक पथ (टाइमस्टैम्प वाली फ़ाइल के लिए निर्देशिका, या एक फ़ाइल नाम; Enter वर्तमान निर्देशिका रखता है) और मेनू से सीधे JSON, Markdown या HTML लिखें
- **XDR विश्लेषण** डैशबोर्ड पर दिखाई देता है जब आपने `-IncludeDefenderXDR` का उपयोग किया
---
## वर्गीकरण डेटाबेस
`Data/log-classifications.json` पर स्थित। **481 प्रविष्टियाँ**, **243 कनेक्टर**, **22 श्रेणियाँ**।
### प्रत्येक प्रविष्टि में क्या है
| फ़ील्ड | इसमें क्या होता है |
|---|---|
| `tableName` | लॉग एनालिटिक्स तालिका नाम (`SecurityEvent`, `SigninLogs`, आदि) |
| `connector` | कौन सा डेटा कनेक्टर इस तालिका का उत्पादन करता है |
| `classification` | `primary` (सुरक्षा मूल्य) या `secondary` (सहायक टेलीमेट्री) |
| `category` | सुरक्षा श्रेणी: पहचान और पहुँच, नेटवर्क सुरक्षा, आदि। |
| `description` | तालिका में क्या है इसका सरल-अंग्रेज़ी सारांश |
| `keywords` | कीवर्ड अंतर विश्लेषण मिलान के लिए शब्द |
| `mitreSources` | MITRE ATT&CK डेटा स्रोत मैपिंग |
| `recommendedTier` | `analytics` (हॉट टियर) या `datalake` (सहायक उम्मीदवार) |
| `recommendedRetentionDays` | दिनों में न्यूनतम अनुशंसित कुल प्रतिधारण (नियामक मार्गदर्शन) |
| `isFree` | क्या Microsoft इसे मुफ्त में इन्जेस्ट करता है (रनटाइम पहले `Usage.IsBillable` का उपयोग करता है) |
| `status` | वैकल्पिक। `deprecated` (कनेक्टर सेवानिवृत्त या इन्जेस्ट बंद) या `legacy` (दस्तावेजित उत्तराधिकारी के साथ पुराना संग्रह पथ) |
| `replacedBy` | वैकल्पिक। माइग्रेट करने के लिए तालिका नाम; जब भी `status` सेट होता है तब मौजूद (खाली हो सकता है) |
| `xdrStreamable` | वैकल्पिक, केवल Defender तालिकाएँ। `true` उन 21 तालिकाओं के लिए जिन्हें Defender XDR कनेक्टर स्ट्रीम करता है; `false` केवल-पोर्टल और TVM तालिकाओं के लिए |
| `platform` | वैकल्पिक। `true` उन तालिकाओं के लिए जिन्हें Sentinel स्वयं उपभोग करता है (`SecurityIncident`, `Usage`, `Watchlist`, ...) जिन्हें कभी विश्लेषण नियमों की आवश्यकता नहीं होती |
`status` वाली तालिकाएँ TUI और रिपोर्टों में एक बैज दिखाती हैं, और जो भी अभी भी इन्जेस्ट करती हैं वे प्रतिस्थापन का नाम देते हुए एक `DeprecatedSource` अनुशंसा उठाती हैं। `xdrStreamable: false` वाली तालिकाओं को XDR चेकर द्वारा कभी भी XDR स्ट्रीमिंग उम्मीदवार के रूप में नहीं माना जाता।
### प्राथमिक बनाम द्वितीयक सुरक्षा डेटा
**प्राथमिक** (278 प्रविष्टियाँ): वे तालिकाएँ जिन पर आप वास्तव में पहचान बना रहे हैं। साइन-इन लॉग, सुरक्षा अलर्ट, खतरा खुफिया, ऑडिट ट्रेल्स, भेद्यता निष्कर्ष, फ़ायरवॉल हिट, EDR टेलीमेट्री।
**द्वितीयक** (203 प्रविष्टियाँ): सहायक सामग्री। प्रदर्शन मेट्रिक्स, बुनियादी ढाँचा निदान, नेटवर्क प्रवाह मात्राएँ, इन्वेंट्री स्नैपशॉट, कॉन्फ़िगरेशन बेसलाइन, स्वास्थ्य जाँच।
### एक नज़र में श्रेणियाँ
| श्रेणी | गिनती | उदाहरण |
|---|---|---|
| पहचान और पहुँच | 51 | `SigninLogs`, `MicrosoftServicePrincipalSignInLogs`, `OktaSSO` |
| नेटवर्क सुरक्षा | 49 | `AZFWNetworkRule`, `NSPAccessLogs`, `DarktraceModelAlerts_CL` |
| क्लाउड नियंत्रण तल | 37 | `AzureActivity`, `AZKVAuditLogs`, `GoogleWorkspaceReports` |
| नेटवर्क प्रवाह | 36 | `NTANetAnalytics`, `CommonSecurityLog`, `AZFWFatFlow` |
| एंडपॉइंट पहचान | 33 | `DeviceProcessEvents`, `CrowdStrikeAuditEvents`, `SentinelOneAlertsV2_CL` |
| एप्लिकेशन लॉग | 32 | `AppServiceHTTPLogs`, `AppServiceAuditLogs`, `DynatraceAttacksV2_CL` |
| ईमेल सुरक्षा | 29 | `EmailEvents`, `CampaignInfo`, `Ttp_Url_CL` |
| सुरक्षा अलर्ट | 29 | `SecurityAlert`, `SentinelBehaviorInfo`, `DisruptionAndResponseEvents` |
| भेद्यता प्रबंधन | 23 | `DeviceTvmSoftwareVulnerabilities`, `Rapid7InsightVMCloudVulnerabilities` |
| क्लाउड सुरक्षा | 20 | `EnrichedMicrosoft365AuditLogs`, `OAuthAppInfo`, `PowerAppsActivity` |
| एंडपॉइंट टेलीमेट्री | 18 | `DeviceInfo`, `Windows365NetworkLogs`, `SentinelOneAgents_CL` |
| मुद्रा प्रबंधन | 17 | `ExposureGraphNodes`, `SecurityNestedRecommendation`, `ZTSMetadata` |
| डेटा सुरक्षा | 16 | `PurviewDataSensitivityLogs`, `DataSecurityEvents`, `PowerPlatformDlpActivity` |
| डेटा प्लेटफ़ॉर्म | 16 | `SQLSecurityAuditEvents`, `CDBControlPlaneRequests`, `SnowflakeLogin_CL` |
| प्लेटफ़ॉर्म स्वास्थ्य | 14 | `SentinelHealth`, `Usage`, `SecurityCaseEvent` |
| कंटेनर और K8s | 13 | `AKSAudit`, `CloudProcessEvents`, `GKEAudit` |
| बुनियादी ढाँचा निदान | 13 | `AzureMetrics`, `AGWPerformanceLogs`, `ContainerAppSystemLogs` |
| खतरा खुफिया | 10 | `ThreatIntelIndicators`, `ThreatIntelObjects`, `CybleVisionAlerts_CL` |
| कॉन्फ़िगरेशन प्रबंधन | 8 | `ConfigurationData`, `AVNMRuleCollectionChange` |
| SAP सुरक्षा | 7 | `ABAPAuditLog`, `SAPBTPAuditLog_CL`, `Onapsis_Defend_CL` |
| स्टोरेज पहुँच | 6 | `StorageBlobLogs`, `CloudStorageAggregatedEvents`, `AWSS3ServerAccess` |
| IoT/OT सुरक्षा | 4 | `RadiflowEvent`, `DragosAlerts_CL`, `Phosphorus_CL` |
### तालिका योजना समर्थन
`Data/basic-plan-tables.json` और `Data/auxiliary-plan-tables.json` उन अंतर्निहित तालिकाओं को सूचीबद्ध करते हैं जिन्हें [Azure Monitor तालिका सुविधा मैट्रिक्स](https://learn.microsoft.com/en-us/azure/azure-monitor/reference/tables-features) बेसिक और सहायक (डेटा लेक) योजनाओं का समर्थन करने के रूप में चिह्नित करता है। प्रतिधारण विज़ार्ड योजना स्विच को मान्य करने के लिए बेसिक सूची का उपयोग करता है, और `DataLake` अनुशंसा केवल उन तालिकाओं के लिए लेक टियर का प्रस्ताव करती है जो इसका समर्थन करती हैं, जहाँ यह सबसे कम समर्थित टियर है वहाँ बेसिक योजना सुझाव पर वापस आते हुए। DCR-आधारित कस्टम तालिकाएँ दोनों योजनाओं का समर्थन करती हैं; क्लासिक कस्टम तालिकाएँ किसी का भी समर्थन नहीं करतीं। दोनों फ़ाइलें प्रत्येक रिलीज़ के लिए उस मैट्रिक्स से पुनर्जीवित की जाती हैं।
### कस्टम वर्गीकरण
आप अपनी स्वयं की वर्गीकरण फ़ाइल प्रदान कर सकते हैं ताकि अंतर्निहित डेटाबेस में नहीं होने वाली तालिकाओं के लिए प्रविष्टियाँ **जोड़ी** जा सकें, या जब डिफ़ॉल्ट आपके वातावरण से मेल नहीं खाते तो मौजूदा प्रविष्टियों को **ओवरराइड** किया जा सके। जब समान `tableName` दोनों में दिखाई देता है तो कस्टम प्रविष्टियाँ अंतर्निहित प्रविष्टियों पर प्राथमिकता लेती हैं।```powershell
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' `
-CustomClassificationPath './my-classifications.json'
The custom file uses the same schema as Data/log-classifications.json, an array of objects:```json
[
{
"tableName": "MyCustomApp_CL",
"connector": "Custom Logs (DCR)",
"classification": "primary",
"category": "Application Logs",
"description": "Security-relevant audit events from an internal application",
"keywords": ["custom", "internal", "audit"],
"mitreSources": [],
"recommendedTier": "analytics",
"isFree": false
},
{
"tableName": "AzureMetrics",
"connector": "Azure Monitor",
"classification": "primary",
"category": "Infrastructure Diag",
"description": "Override: promoted to primary because we detect on Azure resource metrics in this environment",
"keywords": ["metrics", "azure", "infrastructure", "monitoring"],
"mitreSources": [],
"recommendedTier": "analytics",
"isFree": false
}
]
See `Data/custom-classifications-example.json` एक तैयार-उपयोग टेम्पलेट के लिए।
### वर्गीकरण कैसे बनाए गए
प्राथमिक/द्वितीयक ग्रेडिंग आंशिक रूप से लेखक द्वारा की गई थी और फिर Microsoft के डेटा कनेक्टर और टेबल परिभाषाओं को मानव ग्रेडिंग बेसलाइन के साथ AI में फीड करके, Microsoft की सर्वोत्तम प्रथाओं और उद्योग मानकों को वर्गीकरण मानदंड के रूप में उपयोग करते हुए की गई थी। यदि आपके वातावरण के लिए कुछ गलत लगता है, तो टूल पर अपने स्वयं के संदर्भ पर भरोसा करें - AI गलतियाँ कर सकता है, और संदर्भ ही सर्वोपरि है।
वर्गीकरण मानदंड निम्नलिखित स्रोतों से लिए गए थे:
**ACSC (ऑस्ट्रेलियाई सिग्नल्स निदेशालय, ऑस्ट्रेलियाई साइबर सुरक्षा केंद्र)**
- [ACSC: इवेंट लॉगिंग और खतरे का पता लगाने के लिए सर्वोत्तम प्रथाएँ (अगस्त 2024)](https://www.cyber.gov.au/sites/default/files/2024-08/best-practices-for-event-logging-and-threat-detection.pdf)
- [ACSC: SIEM अंतर्ग्रहण के लिए प्राथमिकता लॉग - व्यवसायी मार्गदर्शन (मई 2025)](https://www.cyber.gov.au/business-government/detecting-responding-to-threats/event-logging/implementing-siem-soar-platforms/priority-logs-for-siem-ingestion-practitioner-guidance)
**CISA (साइबर सुरक्षा और बुनियादी ढांचा सुरक्षा एजेंसी)**
- [CISA: M-21-31 लागू करने के लिए मार्गदर्शन: संघीय सरकार की जांच और सुधार क्षमताओं में सुधार](https://www.cisa.gov/sites/default/files/2023-02/TLP%20CLEAR%20-%20Guidance%20for%20Implementing%20M-21-31_Improving%20the%20Federal%20Governments%20Investigative%20and%20Remediation%20Capabilities_.pdf)
- [CISA: Microsoft विस्तारित क्लाउड लॉग कार्यान्वयन प्लेबुक (2025)](https://www.cisa.gov/sites/default/files/2025-01/microsoft-expanded-cloud-logs-implementation-playbook-508c.pdf)
**Microsoft**
- [Microsoft Sentinel डेटा कनेक्टर संदर्भ](https://learn.microsoft.com/en-us/azure/sentinel/data-connectors-reference)
- [Microsoft Sentinel टेबल और कनेक्टर संदर्भ](https://learn.microsoft.com/en-us/azure/sentinel/sentinel-tables-connectors-reference)
- [Azure-Sentinel GitHub रिपॉजिटरी](https://github.com/Azure/Azure-Sentinel) (सामुदायिक विश्लेषण नियम, कनेक्टर परिभाषाएँ, समाधान टेम्पलेट)
- [Microsoft Sentinel बिलिंग](https://learn.microsoft.com/azure/sentinel/billing)
- [Microsoft Sentinel डेटा टियर प्रबंधन](https://learn.microsoft.com/azure/sentinel/manage-data-overview)
**MITRE**
- [MITRE ATT&CK डेटा स्रोत](https://attack.mitre.org/datasources/)
**NIST (मानक और प्रौद्योगिकी का राष्ट्रीय संस्थान)**
- [NIST SP 800-92: कंप्यूटर सुरक्षा लॉग प्रबंधन के लिए मार्गदर्शिका](https://csrc.nist.gov/pubs/sp/800/92/final)
**NSA (राष्ट्रीय सुरक्षा एजेंसी)**
- NSA साइबर इवेंट फॉरवर्डिंग मार्गदर्शन
**NCSC-UK (राष्ट्रीय साइबर सुरक्षा केंद्र - यूनाइटेड किंगडम)**
- NCSC-UK की "हमें वास्तव में क्या लॉग करना चाहिए?"
**Google Cloud**
- [Google Cloud ऑडिट लॉग अवलोकन](https://docs.cloud.google.com/logging/docs/audit)
- [Google Cloud ऑडिट लॉग सर्वोत्तम प्रथाएँ](https://docs.cloud.google.com/logging/docs/audit/best-practices)
अन्य स्रोतों का भी उपयोग किया गया, साथ ही लेखक की "विशेषज्ञता" का भी, यदि आप इसे ऐसा वर्गीकृत कर सकते हैं।
---
## परियोजना लेआउट```
LogHorizon.psd1 Module manifest (v0.9.0)
LogHorizon.psm1 Module loader
Public/
Invoke-LogHorizon.ps1 Entry point, the main orchestrator
Set-LogHorizonTableRetention.ps1 Scriptable table retention and plan changes
Private/
Connect-Sentinel.ps1 Azure auth + workspace resolution
Get-TableUsage.ps1 KQL query for ingestion volumes
Get-AnalyticsRules.ps1 Analytics rules + table/field extraction + correlation tags
Get-HuntingQueries.ps1 Hunting queries + table extraction
Get-DataConnectors.ps1 Data connector inventory
Get-DataTransforms.ps1 DCR transform discovery, split KQL generation
Get-DefenderXDR.ps1 Defender XDR analysis (optional)
Get-Incidents.ps1 Incident fetch + SentinelHealth auto-close attribution
Get-AutomationRules.ps1 Automation rule inventory + close-logic attribution
Get-SocOptimization.ps1 SOC improvement recommendations
Get-TableRetention.ps1 Per-table retention, archive, and plan type
Get-CollectionCache.ps1 Collection cache (key, path, read, write)
Get-LogHorizonEndpoint.ps1 ARM / Log Analytics / Graph endpoints for the signed-in Azure environment
Get-LogHorizonDictionary.ps1 Loads the term dictionary shown by the Dictionary menu
Invoke-AzRestWithRetry.ps1 REST wrapper: retry on 429/5xx/transport errors, async operation polling
Invoke-Classification.ps1 Static DB + heuristic classification + _SPLT_CL detection + custom file validation
Invoke-Analysis.ps1 Cost-value matrix + recommendations + Detection Analyzer + XDR Checker + split suggestions
Set-TableRetention.ps1 Retention change set, preview, Tables API apply engine, plan support lookups
Write-Report.ps1 Spectre.Console TUI rendering
Export-Report.ps1 JSON / Markdown / static HTML export with shared section renderer
Data/
log-classifications.json 481-entry classification knowledge base
basic-plan-tables.json Built-in tables that support the Basic plan (from the Azure Monitor feature matrix)
auxiliary-plan-tables.json Built-in tables that support the Auxiliary / Data Lake plan
implicit-consumers.json Non-KQL rule kinds to tables, plus platform tables
dictionary.json Term definitions for the Dictionary menu (kept 1:1 with this README, enforced by tests)
high-value-fields.json Split KQL knowledge base: 165 tables with curated fields and split hints
field-frequency-stats.json Community field frequency stats mined from the Azure-Sentinel rule corpus
custom-classifications-example.json Example custom classification override file
ReportTemplate.html Static HTML report template (pure-CSS tabs, zero JS, CSP meta)
Tests/
LogHorizon.Tests.ps1 437 Pester v5 unit tests
ज्ञानकोष कैसे तैयार किए जाते हैं
विभाजित KQL ज्ञानकोष, high-value-fields.json और field-frequency-stats.json, सार्वजनिक Azure/Azure-Sentinel रिपॉजिटरी (Solutions/, Detections/, Hunting Queries/, लगभग 3,800 YAML नियम फ़ाइलें) से ऑफ़लाइन बनाए जाते हैं। प्रत्येक क्वेरी को उसी Get-TablesFromKql और Get-FieldsFromKql के माध्यम से चलाया जाता है जिसका उपयोग मॉड्यूल रनटाइम पर प्रति-तालिका फ़ील्ड आवृत्ति गणना बनाने के लिए करता है, जिससे फ़ॉलबैक फ़ील्ड के तीन स्तर प्राप्त होते हैं:
- यूनिवर्सल फ़ील्ड: सभी तालिकाओं में 50% से अधिक में दिखाई देने वाले फ़ील्ड (उदाहरण के लिए
TimeGenerated) - श्रेणी डिफ़ॉल्ट: किसी वर्गीकरण श्रेणी के भीतर 40% से अधिक तालिकाओं में दिखाई देने वाले फ़ील्ड
- प्रति-तालिका आँकड़े: कम से कम 3 संदर्भित नियमों वाली तालिकाओं के लिए कच्ची फ़ील्ड आवृत्ति गणना
खनन किए गए फ़ील्ड को क्यूरेटेड high-value-fields.json में विलय कर दिया जाता है (क्यूरेटेड प्रविष्टियाँ रखी जाती हैं, कम से कम 3 नियमों और 3 सार्थक फ़ील्ड वाली नई खोजी गई तालिकाएँ जोड़ी जाती हैं)।
रनटाइम पर, Get-SplitKql एक फ़ॉलबैक पदानुक्रम का उपयोग करता है: क्यूरेटेड KB प्रविष्टि -> लाइव नियम/हंटिंग फ़ील्ड विश्लेषण -> सामुदायिक प्रति-तालिका आँकड़े -> श्रेणी डिफ़ॉल्ट -> यूनिवर्सल फ़ील्ड। फ़ील्ड की आवृत्ति एक आदर्श तरीका नहीं है, लेकिन यह जानना उपयोगी है।
परीक्षण
437 Pester v5 परीक्षण, किसी Azure कनेक्टिविटी की आवश्यकता नहीं है। उन्हें VS Code एकीकृत टर्मिनल के बजाय एक सादे PowerShell सत्र से चलाएँ:```powershell Invoke-Pester ./Tests/LogHorizon.Tests.ps1 -Output Detailed
## लाइसेंस
GPL-3.0। देखें [LICENSE](https://github.com/lnfernux/log-horizon/blob/main/LICENSE)।
## संस्करण इतिहास
| संस्करण | दिनांक | परिवर्तन |
|---|---|---|
| 0.9.0 | 2026-09-06 | पूर्ण कोड और डेटा समीक्षा से सुधार रिलीज़। शुद्धता: `Usage.Plan` और `Usage.IsBillable` से प्लान-जागरूक मूल्य निर्धारण, Basic और Data Lake दरों तथा बिलिंग GB (1000 MB) के साथ, Detection Analyzer स्वतः-बंद विशेषता केवल सक्षम close/playbook नियमों (`triggeringLogic.isEnabled`) तक सीमित, `2025-09-01` के साथ `$top=1000` के माध्यम से घटनाएँ, गैर-KQL नियम प्रकारों और प्लेटफ़ॉर्म तालिकाओं के लिए अंतर्निहित कवरेज (`implicit-consumers.json`), इंटरैक्टिव-अवधारण बेसलाइन जाँच, एकल अनुशंसा क्रम। ट्रांसफ़ॉर्म: सदस्यता स्तर पर DCR खोज, गंतव्य कार्यक्षेत्र पर फ़िल्टर की गई, साथ ही कार्यक्षेत्र ट्रांसफ़ॉर्मेशन DCR और संबद्धताएँ, दृश्य स्थिति और अनुमति अनुपलब्ध होने पर चेतावनी के साथ; कार्यक्षेत्र और बहु-चरण ट्रांसफ़ॉर्म पार्सिंग; लाइव तालिका स्कीमा के साथ प्रतिच्छेदित विभाजित KQL। मज़बूती: कैश डिफ़ॉल्ट रूप से चालू (`-NoCache`, `-RefreshCache`, `-CacheMaxAgeMinutes`, `-CachePath`), स्पिनर से पहले प्रमाणीकरण और बाद में चेतावनियाँ मुद्रित, एस्केप किया गया TUI और Markdown आउटपुट, निर्यात पथ समाधान जो निर्देशिकाएँ बनाता है और लिखा गया पथ लौटाता है, HTML में CSP मेटा, परिवहन त्रुटियों और Location-शैली async पूर्णता पर REST पुनर्प्रयास, REST पर कार्यक्षेत्र समाधान (`Az.Resources` हटाया गया), कस्टम वर्गीकरण सत्यापन, Microsoft प्रथम-पक्ष फ़ॉलबैक के साथ PascalCase-जागरूक अनुमान, regex टाइमआउट। एंडपॉइंट साइन-इन किए गए Azure वातावरण (Government, China) का पालन करते हैं और API संस्करण SecurityInsights `2025-09-01`, OperationalInsights `2025-07-01`, अनुशंसाएँ `2025-10-01-preview` पर स्थानांतरित। डेटा: वर्गीकरण डेटाबेस 345 -> 481 प्रविष्टियाँ `status`/`replacedBy`/`xdrStreamable`/`platform` कुंजियों के साथ, 80+ प्रथम-पक्ष और 35 उत्तराधिकारी तालिकाएँ, कनेक्टर लेबल सुधार, `isFree` सुधार; Azure Monitor तालिका सुविधा मैट्रिक्स से पुनर्जीवित `basic-plan-tables.json` और नया `auxiliary-plan-tables.json`; `DeprecatedSource` अनुशंसा, Basic फ़ॉलबैक के साथ प्लान-जागरूक Data Lake अनुशंसा, XDR Checker स्ट्रीमेबिलिटी का सम्मान करता है, TUI और निर्यात में जीवनचक्र बैज। समीक्षा पास: कैश कुंजी मूल्य निर्धारण और मॉड्यूल संस्करण को कवर करती है, कस्टम वर्गीकरण बूलियन और स्तर कास्ट के बजाय पार्स किए जाते हैं, गंभीरता-जागरूक स्वतः-बंद विशेषता, विभाजित KQL विधेय लाइव स्कीमा के विरुद्ध जाँचे जाते हैं, XDR फ़ेच स्थिति मौन `$null` के बजाय सतह पर दिखाई जाती है, बिना एक्सटेंशन वाले आउटपुट पथ फ़ाइलें हैं, घटना स्वामी पहचान अब एकत्र नहीं की जाती। TUI में शब्दकोश मेनू जिसमें टूल द्वारा उपयोग किया जाने वाला हर शब्द है, `Data/dictionary.json` द्वारा समर्थित और परीक्षणों द्वारा कोड से जुड़ा। स्वचालन नियम और Defender कस्टम डिटेक्शन ऑब्जेक्ट उपभोग किए गए फ़ील्ड पर प्रक्षेपित होते हैं, इसलिए लेखक पहचान (createdBy, lastModifiedBy, निर्धारित स्वामी) कभी भी कैश या निर्यात तक नहीं पहुँचती। GPL-3.0 लाइसेंस। 437 परीक्षण |
| 0.8.0 | 2026-05-26 | इंटरैक्टिव तालिका अवधारण प्रबंधन जोड़ा गया, नए बल्क TUI फ़्लो और एकल-तालिका अद्यतन प्रवेश बिंदु के साथ, साथ ही सार्वजनिक `Set-LogHorizonTableRetention` कमांड। सत्यापन, Azure async-ऑपरेशन पोलिंग और दो-चरण फ़ॉलबैक (संयुक्त PATCH, फिर केवल-प्लान और केवल-अवधारण) के साथ Tables API PATCH अनुप्रयोग इंजन जोड़ा गया, लचीले अवधारण अद्यतनों के लिए। सत्यापन, पेलोड आकार, फ़ॉलबैक और सार्वजनिक कमांड मैपिंग के लिए केंद्रित Pester कवरेज जोड़ा गया। एक एज-केस/बग भी ठीक करता है जहाँ उपयोगकर्ताओं को data lake तालिकाओं को data lake स्तर में बदलने की अनुशंसाएँ मिलती थीं यदि उनके पास Sentinel में विश्लेषण डेटा था |
| 0.7.1 | 2026-05-15 | कॉन्फ़िगर की गई तालिका योजना को प्रतिस्थापित किए बिना `Usage.Plan` से प्लान-जागरूकता जोड़ी गई: विश्लेषण अब देखे गए प्लान इतिहास को ट्रैक करता है, बहु-प्लान उपयोग और कॉन्फ़िगर-बनाम-देखा गया बेमेल को ध्वजांकित करता है, और डैशबोर्ड, तालिका ड्रिल-डाउन, View All Tables, अवधारण मूल्यांकन और निर्यात में प्लान डेटा सतह पर लाता है। Detection Analyzer स्वतः-बंद विशेषता ठीक की गई ताकि समय अनुमान केवल तभी लागू हो जब कोई सक्षम स्वचालन नियम मौजूद न हों। 203 परीक्षण पास |
| 0.7.0 | 2026-04-16 | Detection Assessment को लागत-मूल्य मैट्रिक्स सारांश तालिका (Primary/Secondary x7 मूल्यांकन श्रेणियाँ रंग कोडिंग के साथ), प्राथमिक/द्वितीयक तालिकाओं के लिए ड्रिल-डाउन सबमेनू लागत/डिटेक्शन स्तर कॉलम के साथ अद्यतन किया गया। Detection Analyzer को GB-भारित वॉल्यूम कवरेज बार (डिटेक्शन/हंटिंग/संयुक्त GB कुल इंजेशन के प्रतिशत के रूप में मौजूदा तालिका-गणना बार के साथ) के साथ अद्यतन किया गया। Detection Analyzer के लिए अनुकूली प्रदर्शन सुधार (गतिशील बार चौड़ाई, नियम नाम ट्रंकेशन, कंसोल चौड़ाई के आधार पर सशर्त कॉलम छिपाना)। 193 परीक्षण पास |
| 0.6.3 | 2026-04-11 | PSGallery के लिए मामूली अद्यतन |
| 0.6.2 | 2026-04-11 | Log Tuning / Transforms मेनू: लाइव डेटा ट्यूनिंग विश्लेषण (तैनात नियमों/हंटिंग क्वेरी से प्रति-तालिका फ़ील्ड उपयोग, फ़िल्टर/प्रोजेक्ट/संयुक्त KQL जनरेशन, बचत अनुमान), Tables API से स्कीमा कॉलम निष्कर्षण, `Get-SplitKql` फ़ॉलबैक पदानुक्रम (समुदाय आँकड़े → श्रेणी डिफ़ॉल्ट → सार्वभौमिक फ़ील्ड), फ़ील्ड उपयोग मैट्रिक्स के साथ व्यापक तालिका मूल्यांकनकर्ता, एकीकृत KB + लाइव ट्यूनिंग निर्यात अनुभाग, Azure-Sentinel GitHub नियम कॉर्पस के लिए `Build-FieldKnowledgeBase.ps1` खनन स्क्रिप्ट। Detection Analyzer: SentinelHealth-आधारित स्वतः-बंद विशेषता (प्राथमिक) ऑपरेटर-जागरूक नियम-मिलान फ़ॉलबैक के साथ, Boolean शर्त रैपर पार्सिंग, Resolved स्थिति पहचान, ARM संसाधन ID के लिए GUID-पूंछ मिलान। कवरेज अब सभी तालिकाओं (मुफ़्त स्तर सहित) में तालिका-गणना-आधारित है। TUI और निर्यात में स्कोरिंग अस्वीकरण जोड़ा गया। 174 परीक्षण |
| 0.6.1 | 2026-04-10 | बग फिक्स: `$kqlKeywords` फ़िल्टरिंग अब फ़ाइल स्कोप पर साझा (पहले `Get-TablesFromKql` में अपरिभाषित था), सभी सहायक फ़ंक्शनों में `[CmdletBinding()]` जोड़ा गया, Defender एकीकृत जाँच सरलीकृत, भूत `-RuleCount` परीक्षण पैरामीटर हटाया गया। मज़बूती: `Get-HuntingQueries` पेजिनेशन, 429/5xx के लिए एक्सपोनेंशियल बैकऑफ़ के साथ `Invoke-AzRestWithRetry` पुनर्प्रयास रैपर, `PricePerGB` सत्यापन, प्रमुख फ़ंक्शनों में `Write-Verbose`। दस्तावेज़: संस्करण बैज, DB गणना, मेनिफ़ेस्ट के साथ संरेखित पूर्वापेक्षाएँ |
| 0.6.0 | 2026-04-10 | 21 `KnownXDRTables` के साथ गतिशील XDR स्ट्रीमिंग डिटेक्शन (पहले हार्डकोडेड 18 थे), प्रति-तालिका `XDRState` (`NotStreaming`/`Analytics`/`Basic`/`Auxiliary`), Auxiliary को data lake स्तर के रूप में मान्यता, स्ट्रीम न की गई XDR तालिकाएँ `NotStreamedCount` के साथ Information/Low अनुशंसाओं के रूप में सतह पर, अवधारण विश्लेषक स्ट्रीम न की गई XDR तालिकाओं को "XDR only (30d)" के रूप में दिखाता है, अवलोकन स्तर विभाजन (analytics/basic/data lake + स्ट्रीम नहीं), Export-Report Auxiliary→"data lake" लेबल, वर्गीकरण DB 345 प्रविष्टियों पर अद्यतन (+`DeviceNetworkInfo`, `DeviceInfo`→secondary/datalake, `DeviceImageLoadEvents` और `IdentityQueryEvents`→datalake स्तर), 15 नए Pester परीक्षण (कुल 121) |
| 0.5.0 | 2026-04-03 | शुद्ध-CSS टैब के साथ स्थिर HTML निर्यात (शून्य JS, कोई CDN नहीं, पूरी तरह से स्व-निहित), एकीकृत MD/HTML अनुभाग रेंडरर, पूर्ण JSON डेटा कैप्चर (dataTransforms, correlationExcluded/Included, streamingTables), CI/पाइपलाइन उपयोग के लिए `-NonInteractive` स्विच, `md` प्रारूप उपनाम, datetime-स्टैम्प्ड स्वचालित फ़ाइलनाम, DCR ट्रांसफ़ॉर्म में पूर्ण KQL प्रदर्शन (कोई ट्रंकेशन नहीं), मार्कडाउन तालिकाओं में मल्टीलाइन KQL हैंडलिंग, HTML टोकन प्रतिस्थापन में regex `$`-बैकरेफ़रेंस भ्रष्टाचार ठीक किया, PowerShell उपनाम संघर्षों से बचने के लिए आंतरिक सहायकों का नाम बदला (`h`→`hEnc`, `md`→`mdEsc`), 33 नए Pester परीक्षण (कुल 106) |
| 0.4.1 | 2026-04-03 | सुरक्षा और स्थिरता फिक्स - टोकन मेमोरी सैनिटाइज़ेशन, आउटपुट पथ सत्यापन और XSS सुरक्षा, REST API पेजिनेशन सीमाएँ, मॉड्यूल लोडर त्रुटि मास्किंग ठीक की गई, और PSScriptAnalyzer चेतावनियाँ हल की गईं |
| 0.4.0 | 2026-04-02 | ट्रांसफ़ॉर्म खोज (DCR सूची + ट्रांसफ़ॉर्म प्रकार वर्गीकरण), विभाजित तालिका पहचान (`_SPLT_CL`), 15-तालिका ज्ञान आधार (`high-value-fields.json`) + नियम-विश्लेषण फ़ॉलबैक के साथ विभाजित KQL सहायक, पोर्टल-तैयार केवल-शर्त KQL आउटपुट, विस्तार योग्य अनुशंसा सूची, विभाजित KQL सुझाव TUI मेनू |
| 0.3.0 | 2026-04-02 | लॉग अवधारण अनुपालन विश्लेषण (CISA M-21-31, NIST SP 800-92, NCSC-UK, ASD ACSC, NSA), सहसंबंध टैग पहचान (`#DONT_CORR#`/`#INC_CORR#`), अवधारण मूल्यांकन मेनू दृश्य, All Tables में अवधारण कॉलम, वर्गीकरण स्कीमा में `recommendedRetentionDays` |
| 0.2.2 | 2026-04-02 | SOC अनुकूलन तालिका संकीर्ण कंसोल पर Detail कॉलम छिपाती है |
| 0.2.1 | 2026-04-02 | कस्टम वर्गीकरण समर्थन (`-CustomClassificationPath`), API सुझावों/ड्रिल-डाउन के साथ समृद्ध SOC अनुकूलन अनुशंसाएँ, केवल-सक्रिय डिफ़ॉल्ट दृश्य, UTF-8 एन्कोडिंग चेतावनी दमन |
| 0.2.0 | - | वर्गीकरण इंजन, लागत-मूल्य स्कोरिंग, Spectre.Console TUI, JSON/Markdown निर्यात के साथ प्रारंभिक सार्वजनिक रिलीज़ |
| 0.1.0 | - | विकास के लिए आंतरिक संस्करण |
## ज्ञात समस्याएँ
### PwshSpectreConsole UTF-8 एन्कोडिंग चेतावनी
अपने टर्मिनल में UTF-8 आउटपुट सक्षम करने के लिए, अपनी PowerShell `$PROFILE` फ़ाइल के शीर्ष पर निम्न पंक्ति जोड़ें और टर्मिनल को पुनः आरंभ करें:```powershell
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
मॉड्यूल इसे आयात पर स्वचालित रूप से सेट करता है, लेकिन आपके सत्र के आधार पर चेतावनी फिर भी दिखाई दे सकती है। यह केवल दृश्यात्मक है और कार्यक्षमता को प्रभावित नहीं करता है।
योगदान
यदि आपको समस्याएँ हैं या योगदान देना चाहते हैं, तो एक PR बनाएँ।