Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
log-horizon — محلل مصادر سجلات Microsoft Sentinel SIEM | Kitploit
أدوات/GitHubGitHub/lnfernux/log-horizon
أمن البنية التحتية السحابيةتدقيق التكوينأمن السحابةDevSecOpsاستخبارات التهديداتالاستجابة للحوادثتحليل السجلات
GitHublnfernux/log-horizon

log-horizon

محلل مصادر سجلات Microsoft Sentinel SIEM

عرض المستودع
28منذ 2 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

Microsoft Sentinel SIEM محلل مصدر سجل

PowerShell 7+ Module Version


لقد اضطررت للإجابة على "ما الذي نحصل عليه فعليًا من هذه السجلات؟" أو "ما هي السجلات الموصى بها لـ Microsoft Sentinel؟" أكثر مما يمكنني عده. تعتمد الإجابة دائمًا على أشياء كثيرة، ولكن يمكننا أن نكون عامين. لذا فقد بنيت هذا الشيء هنا.

Log Horizon يتصل بمساحة عمل Microsoft Sentinel الخاصة بك (واختياريًا بـ Defender XDR)، ويمر عبر كل جدول سجل تقوم بإدخاله، ويخبرك ما إذا كنت تحصل على قيمة أمنية منه أم تحرق الأموال فقط. يقوم بتصنيف الجداول، وتقييمها مقابل قواعد الكشف الخاصة بك، ويمنحك توصيات ملموسة مع تقديرات التوفير.

هام: هذا نهج عام. إذا كنت تعلم أن مصدر سجل معين مهم لبيئتك، فإن هذا السياق له الأولوية دائمًا على ما تخبرك به هذه الأداة. التصنيفات هي نقطة بداية، وليست حقيقة مطلقة.

هل تريد قراءة المزيد؟ لدي بعض المقالات حول Log Horizon على مدونتي:

  1. إصدار الأداة: Log Horizon
  2. تحديث: Log Horizon v0.5.0
  3. بناء خط أساس عملي للسجلات وكيف يساعدك Log Horizon في ذلك
  4. كيفية استخدام Log Horizon

الميزات

إخلاء مسؤولية

[!CAUTION] إخلاء مسؤولية

تم تطوير هذه الأداة وصيانتها بمساعدة الذكاء الاصطناعي. يرجى توخي الحذر عند استخدام هذا الحل وفهم دائمًا ما تقوم بتشغيله قبل تشغيله في الإنتاج. لا يتحمل المطور أي مسؤولية عن أي ثغرات أو مشكلات.

بتحميلك لهذه الأداة أو تثبيتها أو استخدامها، فإنك تقر بأنك قد قرأت وفهمت ووافقت على هذه الشروط.

المتطلبات الأساسية

ما تحتاجهالإصدار
PowerShell7.0+
وحدات AzAz.Accounts، Az.Resources
وحدات أخرىPwshSpectreConsole 2.6.3+

إذا لم تكن مسجلاً الدخول إلى Azure بالفعل، فستقوم الوحدة بتشغيل Connect-AzAccount لك. وإذا كنت مسجلاً، فستستمر مباشرة.

بدء الاستخدام

بسيط جداً:```powershell

Grab the dependencies

Install-Module -Name Az.Accounts, Az.Resources -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

root@kitploit:~
## الاستخدام

### الأساسيات

ابدأ بالاتصال بـ Azure وتأكد من اختيار الحساب والاشتراك الصحيحين:```powershell
Connect-AzAccount

ثم يمكننا استدعاء الأداة:```powershell Invoke-LogHorizon -SubscriptionId '00000000-0000-0000-0000-000000000000' -ResourceGroup 'rg-sentinel' -WorkspaceName 'my-sentinel-ws'

root@kitploit:~
<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

هل تريد معرفة ما إذا كنت تفتقد جداول متعلقة ببائعين محددين؟ أضف بعض الكلمات المفتاحية. أضف `-IncludeDefenderXDR` إذا كنت تريد تحليل XDR أيضًا.```powershell
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -Keywords 'CrowdStrike','AWS','Okta' -IncludeDefenderXDR

محلل الكشف

تمكين تحليل جودة/ضوضاء القواعد بناءً على الحوادث وقواعد الأتمتة:```powershell Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -IncludeDetectionAnalyzer -DetectionLookbackDays 90

root@kitploit:~
### تصدير تقرير```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/

إدارة فترة الاحتفاظ ونوع الجدول

يمكنك الآن تحديث فترة الاحتفاظ بالجدول ونوع الجدول مباشرة من واجهة TUI التفاعلية:

  • افتح Invoke-LogHorizon بشكل طبيعي، ثم اختر إدارة فترة الاحتفاظ ونوع الجدول من القائمة الرئيسية لتحديثات جماعية لفترة الاحتفاظ أو النوع.
  • افتح Log Tuning / Transforms > تقييم جدول محدد واختر إدارة فترة الاحتفاظ/النوع لهذا الجدول لتغيير جدول واحد.

للاستخدام عبر النصوص البرمجية أو الأتمتة، استخدم الأمر العام المخصص:```powershell

Preview a single-table change

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

root@kitploit:~
### وضع غير تفاعلي / وضع CI

تجاوز واجهة TUI التفاعلية وقم بالتصدير مباشرة إلى ملف — مفيد لخطوط الأنابيب أو التشغيل المجدول:```powershell
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -NonInteractive -Output json -OutputPath ./reports/

إذا قمت بحذف -Output، يتم إرجاع كائن التحليل إلى الأنبوب لتتمكن من تمريره إلى منطقك الخاص.

اقتراحات تقسيم KQL

تتضمن واجهة TUI التفاعلية قائمة اقتراحات تقسيم KQL التي تنشئ استعلامات KQL جاهزة للبوابة للجداول المناسبة للتقسيم. تعرض استعلامات KQL لكل جدول يمكنك لصقها مباشرة في محرر قاعدة التقسيم في Sentinel، مع إسناد المصدر (قاعدة المعرفة، تحليل القاعدة، أو مزيج).

التسعير المخصص

السعر الافتراضي هو 5.59 $/GB (الدفع حسب الاستخدام المبسط في غرب أوروبا). إذا كانت طبقة الالتزام الخاصة بك مختلفة:```powershell Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -PricePerGB 4.61

root@kitploit:~
### جميع المعلمات

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `-SubscriptionId` | string | Yes | - | معرف اشتراك Azure |
| `-ResourceGroup` | string | Yes | - | مجموعة الموارد التي تحتوي على مساحة عمل Sentinel |
| `-WorkspaceName` | string | Yes | - | اسم مساحة عمل Log Analytics |
| `-WorkspaceId` | string | No | - | معرف مساحة العمل (يتم حله تلقائيًا إذا تم حذفه) |
| `-Output` | string | No | - | تنسيق التصدير: `json` أو `markdown` / `md` أو `html` |
| `-OutputPath` | string | No | - | مسار الملف أو المجلد للتصدير (يتم إنشاء اسم ملف بطابع زمني تلقائيًا عند تحديد مجلد) |
| `-Keywords` | string[] | No | - | كلمات مفتاحية لتحليل الفجوات (مثل `'AWS','CrowdStrike'`) |
| `-IncludeDefenderXDR` | switch | No | - | تضمين تحليل الكشف المخصص لـ Defender XDR |
| `-IncludeDetectionAnalyzer` | switch | No | - | تضمين تحليل الكشف المزعج لكل قاعدة باستخدام الحوادث وقواعد الأتمتة |
| `-DetectionLookbackDays` | int | No | 90 | نافذة الاستعلام لتحليل الكشف المستند إلى الحوادث/الأتمتة (1-365 يومًا) |
| `-DaysBack` | int | No | 90 | نافذة الاستعلام لبيانات الاستخدام (1-365 يومًا) |
| `-PricePerGB` | decimal | No | 5.59 | سعر استيعاب Sentinel لكل جيجابايت |
| `-NonInteractive` | switch | No | - | تخطي لوحة TUI والتصدير مباشرة (أو إعادة البيانات إلى خط الأنابيب إذا تم حذف `-Output`) |
| `-CustomClassificationPath` | string | No | - | مسار إلى ملف JSON مخصص لإضافة أو تجاوز التصنيفات |

---

## تحت الغطاء

إذن هناك أربع مراحل.

### 1. جمع البيانات

تتصل الوحدة بـ Azure وتسحب البيانات من واجهات برمجة تطبيقات Log Analytics و Security Insights:

| مصدر البيانات | API | ما يتم الحصول عليه |
|---|---|---|
| استخدام الجداول | جدول `Usage` (KQL) | حجم الاستيعاب لكل جدول عبر نافذة الاستعلام الخاصة بك |
| قواعد التحليل | REST Security Insights | قواعد الكشف النشطة + الجداول التي تستهدفها + علامات الارتباط |
| استعلامات الصيد | REST Security Insights | استعلامات الصيد المحفوظة + الجداول المشار إليها |
| موصلات البيانات | REST Security Insights | جرد الموصلات المثبتة |
| تحسين SOC | REST Security Insights | توصيات SOC المضمنة من Microsoft |
| الاحتفاظ بالجداول | REST Azure Tables | الاحتفاظ والأرشفة والخطة لكل جدول (Analytics/Basic) |
| Defender XDR | REST Security Insights | الكشف المخصص لـ XDR وتكوين البث (اختياري) |
| الحوادث | REST Security Insights | نتائج الحوادث (الحالة/التصنيف) والتوقيت وإشارات ربط القواعد لتصنيف جودة القاعدة |
| قواعد الأتمتة | REST Security Insights | إجراءات إغلاق الحوادث في مستوى القاعدة وشروط مطابقة العنوان لإسناد الإغلاق التلقائي |
| SentinelHealth | Log Analytics KQL | أحداث تشغيل قاعدة الأتمتة مع أرقام الحوادث لإسناد الإغلاق التلقائي بشكل قاطع (اختياري، يتطلب مراقبة الصحة) |

### 2. التصنيف

يتم تصنيف كل جدول من خلال مسارين:

**أولاً**، بحث مباشر في قاعدة المعرفة المكونة من 345 مدخلاً في `Data/log-classifications.json`. يحمل كل مدخل اسم الموصل والتصنيف الأساسي/الثانوي وفئة الأمان وتعيينات مصدر بيانات MITRE ومستوى التسعير الموصى به.

**في حالة عدم وجود تطابق**، يتم تفعيل القواعد الاستكشافية:
- يحتوي الاسم على أنماط أمنية مثل `Alert` أو `Incident` أو `Threat` أو `Signin` أو `Audit` أو `Risk` -> **أساسي**
- يبدو الاسم وكأنه بيانات تتبع بنية تحتية: `Flow` أو `Metric` أو `Diagnostic` أو `Perf` أو `Heartbeat` -> **ثانوي**
- توجد قواعد تحليل نشطة تشير إليه -> **أساسي**
- حجم كبير (أكثر من 10 جيجابايت/شهر) بدون أي اكتشاف عليه -> **ثانوي**
- لا شيء مما سبق -> **غير معروف**

### 3. تسجيل التكلفة والقيمة

يتم تسجيل كل جدول على عدة أبعاد:

- **مستوى التكلفة**: مجاني / منخفض (أقل من 1 جيجابايت) / متوسط (1-10 جيجابايت) / عالي (10-50 جيجابايت) / عالي جدًا (أكبر من 50 جيجابايت)
- **مستوى الكشف**: لا شيء / منخفض (1-2 قاعدة) / متوسط (3-9 قواعد) / عالي (10+ قواعد)
- **التقييم**: قيمة عالية / قيمة جيدة / تغطية مفقودة / مراجعة مطلوبة / مرشح لـ Data Lake / طبقة مجانية
- **نسبة التغطية %**: النسبة المئوية للجداول التي تحتوي على قاعدة تحليل واحدة على الأقل أو استعلام صيد يشير إليها، محسوبة كـ `tablesWithRules / totalTables * 100`. تغطية كل جدول تجمع قواعد التحليل + استعلامات الصيد الموجودة عن طريق تحليل KQL لأسماء الجداول.

ثم تقوم الوحدة بتوليد التوصيات:

| النوع | متى يتم تفعيله | ما يجب فعله |
|---|---|---|
| **Data Lake** | ثانوي + تكلفة عالية + عدد قليل من الاكتشافات | الانتقال إلى طبقة Auxiliary/Data Lake (توفير ~95%) |
| **قيمة منخفضة** | تكلفة عالية + لا توجد اكتشافات | إضافة قواعد أو تصفية أو الانتقال إلى data lake |
| **تحسين XDR** | مُبث عبر XDR + 0 قواعد Sentinel + وجود قواعد XDR | إيقاف البث، واستخدام بوابة XDR الموحدة بدلاً من ذلك |
| **تغطية مفقودة** | أساسي + لا توجد اكتشافات | كتابة قواعد تحليل للحصول على قيمة من البيانات |
| **تصفية وقت الاستيعاب** | أساسي + أكبر من 20 جيجابايت + أقل من أو يساوي 3 اكتشافات | تطبيق تحويل وقت الاستيعاب لتقليل الحجم |
| **مرشح للتقسيم** | أساسي + حجم كبير + اكتشافات + لا يوجد تحويل حالي | تقسيم الجدول — تبقى الصفوف عالية القيمة على Analytics، والباقي يذهب إلى Data Lake |
| **نقص في الاحتفاظ** | احتفاظ الجدول أقل من الحد الأدنى الموصى به | زيادة الاحتفاظ الكلي/الأرشيف لتلبية الإرشادات التنظيمية |

### 4. محلل الكشف (تسجيل الضوضاء)

عند تمرير `-IncludeDetectionAnalyzer`، تجلب الوحدة الحوادث الأخيرة وقواعد الأتمتة، ثم تسجل كل قاعدة كشف نشطة لاحتمال الضوضاء.

**مقاييس كل قاعدة** (محسوبة من بيانات الحوادث):

| المقياس | كيفية حسابه |
|---|---|
| إجمالي الحوادث | عدد الحوادث المرتبطة بالقاعدة |
| نسبة الإغلاق التلقائي | الحوادث المغلقة بواسطة قواعد الأتمتة ÷ إجمالي الحوادث. المصدر الأساسي: جدول SentinelHealth (تطابق قاطع عبر رقم الحادثة). البديل: مطابقة العنوان المراعية للمشغل مقابل شروط قاعدة الأتمتة. |
| نسبة الإيجابيات الكاذبة | الحوادث المصنفة كإيجابية كاذبة ÷ إجمالي الحوادث |

**معادلة درجة الضوضاء**:

يتم تحويل كل مقياس إلى مرتبة مئوية بين جميع القواعد التي تحتوي على حادثة واحدة على الأقل. الدرجة المركبة هي مزيج مرجح:```
Score = (Volume_percentile × 0.35) + (AutoClose_percentile × 0.40) + (FalsePositive_percentile × 0.25)
  • النسبة المئوية للحجم (35%) — عدد الحوادث التي تُنشئها القاعدة مقارنة بالقواعد الأخرى.
  • النسبة المئوية للإغلاق التلقائي (40%) — عدد المرات التي تُغلق فيها الحوادث تلقائيًا بواسطة قواعد الأتمتة (أعلى وزن لأن الإغلاق التلقائي هو أقوى إشارة على التنبيهات منخفضة القيمة).
  • النسبة المئوية للإيجابية الكاذبة (25%) — عدد المرات التي يصنف فيها المحللون النتيجة على أنها إيجابية كاذبة.

حدود الدرجات:

يتم عرض القواعد التي تحصل على درجة ≥ 70 ولديها 5 حوادث على الأقل تلقائيًا كـ توصيات عالية الأولوية في عرض التوصيات.

5. لوحة التحكم التفاعلية

  • لوحة التحكم: إحصائيات عامة، أهم 10 جداول من حيث التكلفة، شريط التغطية، ملخص الامتثال للاحتفاظ، تنبيه استبعاد الارتباط
  • التوصيات: إجراءات ذات أولوية مع تقدير التوفير الشهري — قابلة للتوسيع لإظهار القائمة الكاملة عند وجود أكثر من 10
  • تقييم الاكتشاف: تفصيل تغطية القاعدة والاستعلام لكل جدول، قائمة القواعد المستثناة من الارتباط
  • تحسين SOC: اقتراحات تحسين Microsoft الخاصة
  • تقييم الاحتفاظ: الجداول التي تقل عن الحد الأدنى الموصى به مع الاحتفاظ الحالي مقابل الموصى به، ونوع الخطة، والنقص
  • التحويلات: جرد تحويلات DCR مع تصنيف نوع التحويل
  • اقتراحات KQL المقسمة: اقتراحات KQL مقسمة حسب الجدول جاهزة للصق في البوابة، مع إسناد المصدر (قاعدة المعرفة، تحليل القاعدة، أو مجتمعة)
  • جميع الجداول: القائمة الكاملة مع التصنيف، التكلفة، القواعد، الاحتفاظ (ملون)، والتقييم
  • تحليل XDR: تكامل Defender XDR (عند استخدام -IncludeDefenderXDR)
  • محلل الاكتشاف: ترتيب القواعد المزعجة بناءً على النسب المئوية مع مؤشرات جودة الإغلاق (عند استخدام -IncludeDetectionAnalyzer)
  • التصدير: تفريغ التقرير إلى JSON أو Markdown مباشرة من القائمة

قاعدة بيانات التصنيف

موجودة في Data/log-classifications.json. 345 مدخلاً، 190 موصلاً، 21 فئة.

محتويات كل مدخل

البيانات الأمنية الأولية مقابل الثانوية

الأولية (211 مدخلاً): الجداول التي تبني عليها اكتشافاتك فعليًا. سجلات تسجيل الدخول، التنبيهات الأمنية، استخبارات التهديدات، مسارات التدقيق، نتائج الثغرات، ضربات جدار الحماية، قياس عن بعد EDR.

الثانوية (133 مدخلاً): مواد داعمة. مقاييس الأداء، تشخيصات البنية التحتية، أحجام تدفق الشبكة، لقطات المخزون، خطوط الأساس للتكوين، فحوصات الصحة.

نظرة سريعة على الفئات

التصنيفات المخصصة

يمكنك توفير ملف التصنيف الخاص بك لإضافة مدخلات للجداول غير الموجودة في قاعدة البيانات المضمنة، أو تجاوز المدخلات الموجودة عندما لا تتطابق الإعدادات الافتراضية مع بيئتك. تأخذ المدخلات المخصصة الأولوية على المدخلات المضمنة عندما يظهر نفس tableName في كليهما.```powershell Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' ` -CustomClassificationPath './my-classifications.json'

root@kitploit:~
يستخدم الملف المخصص نفس المخطط مثل `Data/log-classifications.json` — مصفوفة من الكائنات:```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
  }
]

انظر Data/custom-classifications-example.json للحصول على قالب جاهز للاستخدام.

كيف تم بناء التصنيفات

تم إجراء التصنيف الأولي/الثانوي جزئيًا بواسطة المؤلف ثم عن طريق تغذية موصل البيانات وتعريفات الجداول من Microsoft في الذكاء الاصطناعي مع خط أساس تصنيف بشري، باستخدام أفضل ممارسات Microsoft ومعايير الصناعة كمعايير التصنيف. إذا كان هناك شيء غير مناسب لبيئتك، فثق في سياقك الخاص على الأداة - يمكن للذكاء الاصطناعي أن يرتكب أخطاء، والسياق هو الملك.

تم استخلاص معايير التصنيف من المصادر التالية:

ACSC (المديرية الأسترالية للإشارات، مركز الأمن السيبراني الأسترالي)

  • ACSC: أفضل الممارسات لتسجيل الأحداث وكشف التهديدات (أغسطس 2024)
  • ACSC: سجلات الأولوية لاستيعاب SIEM - دليل الممارس (مايو 2025)

CISA (وكالة الأمن السيبراني وأمن البنية التحتية)

  • CISA: إرشادات لتنفيذ M-21-31: تحسين قدرات التحقيق والمعالجة للحكومة الفيدرالية
  • CISA: دليل تنفيذ سجلات السحابة الموسعة من Microsoft (2025)

Microsoft

  • مرجع موصلات بيانات Microsoft Sentinel
  • مرجع جداول وموصلات Microsoft Sentinel
  • مستودع GitHub لـ Azure-Sentinel (قواعد التحليل المجتمعية، تعريفات الموصلات، قوالب الحلول)
  • فوترة Microsoft Sentinel
  • إدارة طبقة البيانات في Microsoft Sentinel

MITRE

  • مصادر بيانات MITRE ATT&CK

NIST (المعهد الوطني للمعايير والتكنولوجيا)

  • NIST SP 800-92: دليل إدارة سجلات أمان الحاسوب

NSA (وكالة الأمن القومي)

  • إرشادات إعادة توجيه الأحداث السيبرانية من NSA

NCSC-UK (المركز الوطني للأمن السيبراني - المملكة المتحدة)

  • سؤال NCSC-UK "ما الذي يجب علينا تسجيله بالضبط؟"

Google Cloud

  • نظرة عامة على سجلات التدقيق في Google Cloud
  • أفضل الممارسات لسجلات التدقيق في Google Cloud

كما تم استخدام مصادر أخرى، إلى جانب "خبرة" المؤلفين إذا أمكن تصنيفها على هذا النحو.

تخطيط المشروع```

LogHorizon.psd1 Module manifest (v0.6.2) LogHorizon.psm1 Module loader Public/ Invoke-LogHorizon.ps1 Entry point, the main orchestrator 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 Invoke-AzRestWithRetry.ps1 REST retry wrapper with exponential backoff for 429/5xx Invoke-Classification.ps1 Static DB + heuristic classification + _SPLT_CL detection Invoke-Analysis.ps1 Cost-value matrix + recommendations + split suggestions Write-Report.ps1 Spectre.Console TUI rendering Export-Report.ps1 JSON / Markdown / static HTML export with shared section renderer Data/ log-classifications.json 345-entry classification knowledge base high-value-fields.json 15-table split KQL knowledge base with curated fields and split hints field-frequency-stats.json Community field frequency stats (generated by Build-FieldKnowledgeBase.ps1) custom-classifications-example.json Example custom classification override file ReportTemplate.html Static HTML report template (pure-CSS tabs, zero JS) Tests/ LogHorizon.Tests.ps1 Pester v5 unit tests

root@kitploit:~
### إنشاء قاعدة المعرفة

يتم إنشاء قاعدتي المعرفة المقسمة KQL -- `high-value-fields.json` و `field-frequency-stats.json` -- دون اتصال بواسطة `Build-FieldKnowledgeBase.ps1`. ويقوم البرنامج النصي بما يلي:

1. يقوم باستنساخ ضحل (shallow-clones) لمستودع GitHub [Azure/Azure-Sentinel](https://github.com/Azure/Azure-Sentinel) (سحب انتقائي (sparse checkout) لـ `Solutions/` و `Detections/` و `Hunting Queries/`)
2. يقوم بتحليل حوالي 3,800 ملف قاعدة بصيغة YAML ويستخرج استعلامات KQL عبر التعبيرات النمطية (regex)
3. يقوم بتشغيل `Get-TablesFromKql` و `Get-FieldsFromKql` على كل استعلام لبناء إحصائيات تردد الحقول لكل جدول
4. يقوم بحساب ثلاث مستويات من الحقول الاحتياطية:
   - **الحقول العامة** -- الحقول التي تظهر في أكثر من 50% من جميع الجداول (مثل `TimeGenerated`)
   - **القيم الافتراضية حسب الفئة** -- الحقول التي تظهر في أكثر من 40% من الجداول ضمن فئة تصنيف معينة
   - **الإحصائيات لكل جدول** -- إحصائيات تردد الحقول الخام للجداول التي تحتوي على >= 3 قواعد مرجعية
5. يقوم بدمج الحقول المستخرجة في الملف المنسق الموجود `high-value-fields.json` (يحتفظ بالإدخالات المنسقة، ويضيف الجداول المكتشفة حديثًا التي تحتوي على >= 3 قواعد و >= 3 حقول ذات معنى)
6. يقوم بإخراج كلا الملفين إلى `Data/`

في وقت التشغيل، يستخدم `Get-SplitKql` تسلسلًا هرميًا احتياطيًا: الإدخال المنسق لقاعدة المعرفة -> تحليل الحقول من القواعد الفعلية/الاستقصاء -> الإحصائيات المجتمعية لكل جدول -> القيم الافتراضية حسب الفئة -> الحقول العامة. تردد الحقول ليس طريقة مثالية، لكن من المفيد معرفتها.

## الاختبارات```powershell
Invoke-Pester ./Tests/LogHorizon.Tests.ps1 -Output Detailed

الترخيص

MIT

سجل الإصدارات

المشكلات المعروفة

تحذير ترميز UTF-8 في PwshSpectreConsole

لتمكين إخراج UTF-8 في الطرفية الخاصة بك، أضف السطر التالي في أعلى ملف $PROFILE الخاص بـ PowerShell وأعد تشغيل الطرفية:```powershell $OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = [System.Text.UTF8Encoding]::new()

root@kitploit:~
الوحدة النمطية تقوم بتعيين هذا تلقائيًا عند الاستيراد، ولكن حسب جلستك قد يظل التحذير يظهر. إنه تجميلي ولا يؤثر على الوظيفة.

## المساهمة

إذا كانت لديك مشكلات أو ترغب في المساهمة، قم بإنشاء طلب سحب (PR).

## هل أعجبتك الأداة؟

</br>
<a href='https://ko-fi.com/B0B61XGLO7' target='_blank'><img height='36' style='border:0px;height:36px;' src="https://assets.kitploit.com/production/public/readmes/13110/85ecfd7542830b8c7e246d37aec7c2b7397da003291ec4c56074631499f4829a.webp" border='0' alt='اشترِ لي قهوة على ko-fi.com' /></a>
</br>
تنزيل الأداة
الميزةالوصف
محرك التصنيفقاعدة معرفة مكونة من 345 مدخلاً تغطي أكثر من 190 موصلاً، و21 فئة، مع إرجاع إرشادي تلقائي للجداول غير المعروفة
تقييم التكلفة مقابل القيمةمصفوفة مستوى التكلفة لكل جدول مقابل مستوى الكشف مع تقييم مشترك (قيمة عالية ← قيمة منخفضة)
التوصياتإجراءات ذات أولوية: مرشحون لـ Data Lake، جداول بدون كشف، هدر بث XDR، تصفية وقت الإدخال، نقص في الاحتفاظ
رسم خرائط الكشفيربط قواعد التحليل، استعلامات الصيد، وكشف XDR بكل جدول لاكتشاف فجوات التغطية
وسوم الارتباطيكتشف وسوم #DONT_CORR# / #INC_CORR# في أوصاف القواعد ويميز القواعد المستبعدة من ارتباط Defender
الامتثال للاحتفاظيقارن الاحتفاظ الفعلي بالحدود الدنيا الموصى بها بناءً على معايير الصناعة وأفضل الممارسات الأمنية
تحسين SOCيسحب توصيات تحسين SOC من Microsoft نفسها عبر واجهة Security Insights API
تحليل فجوات الكلمات المفتاحيةيميز الجداول التي يجب أن تكون قيد الإدخال ولكنها ليست كذلك بناءً على كلمات مفتاحية للبائع/المنتج
اكتشاف التحويلاتيكتشف قواعد جمع البيانات (DCRs) ويصنف تحويلات وقت الإدخال (تصفية، إسقاط، إثراء، تجميع)
كشف الجداول المقسمةيحدد جداول التقسيم _SPLT_CL ويربطها بالجداول الأم في محرك التصنيف
مولد KQL للتقسيميولد KQL جاهزًا للبوابة من قاعدة معرفة منسقة، تحليل القواعد الحية، وإحصائيات تردد الحقول المجتمعية – بتنسيق شرط فقط يُلصق مباشرة في محرر قاعدة التقسيم في Sentinel
محلل الكشفيقيم القواعد التحليلية لاحتمال الضوضاء باستخدام نتائج الحوادث (نسبة الإغلاق التلقائي، نسبة الإيجابيات الكاذبة، ونسب حجم الحوادث المئوية)
مدقق XDRيضيف طبقة استشارية تركز على XDR: فحوصات تغطية البث وإرشادات الاحتفاظ بـ Data Lake لمدة عام للتليمترية المتعلقة بـ XDR
التصنيفات المخصصةوفر JSON الخاص بك لإضافة أو تجاوز قاعدة بيانات التصنيف المدمجة
واجهة TUI تفاعليةلوحة تحكم Spectre.Console مع قوائم، جداول ملونة، تنقلات تفصيلية، وفن ASCII
التصديرتقرير بتنسيق JSON أو Markdown أو HTML ثابت للمشاركة مع الفريق
الدرجةالوسمالمعنى
≥ 70مزعجالقاعدة قد تحتاج إلى ضبط أو تعطيل
≥ 50مراقبةتُظهر القاعدة علامات مبكرة على الإزعاج
< 50سليمالقاعدة ضمن النطاق الطبيعي
N/A—لا توجد حوادث مرتبطة بالقاعدة (لا يمكن حساب درجة)
الحقلما يحمله
tableNameاسم جدول Log Analytics (SecurityEvent, SigninLogs, إلخ.)
connectorأي موصل بيانات ينتج هذا الجدول
classificationprimary (قيمة أمنية) أو secondary (قياس عن بعد داعم)
categoryالفئة الأمنية: الهوية والوصول، أمن الشبكات، إلخ.
descriptionملخص باللغة الإنجليزية المبسطة لما في الجدول
keywordsمصطلحات لمطابقة تحليل الفجوة بالكلمات المفتاحية
mitreSourcesتعيينات مصادر بيانات MITRE ATT&CK
recommendedTieranalytics (الطبقة الساخنة) أو datalake (مرشح مساعد)
recommendedRetentionDaysالحد الأدنى الموصى به للاحتفاظ الكلي بالأيام (إرشادات تنظيمية)
isFreeهل تقوم Microsoft بابتلاع هذا مجانًا
الفئةالعددأمثلة
الهوية والوصول33SigninLogs, OktaSSO, CyberArk_AuditEvents_CL
أمن الشبكات29AZFWNetworkRule, Cloudflare_CL, darktrace_model_alerts_CL
التنبيهات الأمنية26SecurityAlert, SecurityIncident, SentinelOneAlerts_CL
كشف نقطة النهاية22DeviceProcessEvents, DeviceFileEvents, SentinelOne_CL
مستوى التحكم السحابي22AzureActivity, OfficeActivity, GoogleWorkspaceReports
تدفق الشبكة23AzureNetworkAnalytics_CL, CommonSecurityLog, AZFWFatFlow
الأمن السحابي13McasShadowItReporting, PaloAltoPrismaCloudAlertV2_CL
أمن البريد الإلكتروني20EmailEvents, ProofPointTAPMessagesBlockedV2_CL, MimecastSIEM_CL
قياس عن بعد لنقطة النهاية14DeviceInfo, SentinelOneAgents_CL, jamfprotecttelemetryv2_CL
إدارة الثغرات11DeviceTvmSoftwareVulnerabilities, QualysHostDetectionV3_CL
أمن البيانات12PurviewDataSensitivityLogs, VaronisAlerts_CL, MimecastDLP_CL
سجلات التطبيقات22AppServiceHTTPLogs, FunctionAppLogs, DynatraceAttacks_CL
استخبارات التهديدات8ThreatIntelligenceIndicator, CybleVisionAlerts_CL
أمن SAP7ABAPAuditLog, SAPBTPAuditLog_CL, Onapsis_Defend_CL
أمن إنترنت الأشياء/التقنية التشغيلية4RadiflowEvent, DragosAlerts_CL, Phosphorus_CL
منصة البيانات13AzureDiagnostics, SnowflakeLogin_CL, MongoDBAudit_CL
الحاويات وK8s7ContainerLog, KubeEvents, GKEAudit, AWSEKSLogs_CL
صحة المنصة6SentinelHealth, Watchlist, SOCPrimeAuditLogs_CL
تشخيص البنية التحتية7AzureMetrics, GCPComputeEngine, GCPMonitoring
إدارة الوضع7DeviceTvmSecureConfigurationAssessment, CortexXpanseAlerts_CL
إدارة التكوين6ConfigurationData, ESIExchangeOnlineConfig_CL
الوصول إلى التخزين5StorageBlobLogs, StorageFileLogs, AWSS3ServerAccess
الإصدارالتاريخالتغييرات
0.8.02026-05-26تمت إضافة إدارة تفاعلية للاحتفاظ بالجداول مع سير عمل TUI شامل ونقطة دخول تحديث جدول واحد، بالإضافة إلى الأمر العام Set-LogHorizonTableRetention. تمت إضافة محرك تطبيق PATCH لواجهة برمجة تطبيقات الجداول مع التحقق من الصحة، واستقصاء عمليات Azure غير المتزامنة، وآلية احتياطية من خطوتين (PATCH مدمج، ثم خطط فقط واحتفاظ فقط) لتحديثات احتفاظ مرنة. تمت إضافة تغطية Pester مركزة للتحقق من الصحة، وشكل الحمولة، وآلية الاحتياطية، ورسم خرائط الأوامر العامة. كما تم إصلاح حالة حافة/خلل حيث كان المستخدمون يتلقون توصيات بتغيير جداول بحيرة البيانات إلى طبقة بحيرة البيانات إذا كانت لديهم بيانات تحليلات لا تزال في Sentinel
0.7.12026-05-15تمت إضافة الوعي بالخطة من Usage.Plan دون استبدال خطة الجدول المكونة: يتتبع التحليل الآن تاريخ الخطة المرصودة، ويُعلم عن الاستخدام متعدد الخطط والتباينات بين المكونة والمرصودة، ويُظهر بيانات الخطة في لوحة المعلومات، وتفاصيل الجدول، وعرض جميع الجداول، وتقييم الاحتفاظ، والتصديرات. تم إصلاح إسناد الإغلاق التلقائي في Detection Analyzer بحيث تنطبق قاعدة التوقيت فقط عندما لا توجد قواعد أتمتة ممكنة. 203 اختبارات ناجحة
0.7.02026-04-16تم تحديث تقييم الكشف بجدول ملخص مصفوفة القيمة-التكلفة (أساسي/ثانوي × 7 فئات تقييم مع ترميز بالألوان)، وقائمة فرعية للتنقل للجداول الأساسية/الثانوية مع أعمدة التكلفة/طبقة الكشف. تم تحديث Detection Analyzer بأشرطة تغطية الحجم المرجحة بـ غيغابايت (غيغابايت الكشف/الصيد/المشترك كنسبة مئوية من الإجمالي بالإضافة إلى أشرطة عدد الجداول الحالية). تحسينات العرض التكيفي لـ Detection Analyzer (عرض شريط ديناميكي، اقتطاع اسم القاعدة، إخفاء عمود شرطي بناءً على عرض وحدة التحكم). 193 اختبارًا ناجحًا
0.6.32026-04-11تحديث بسيط لـ PSGallery
0.6.22026-04-11قائمة ضبط السجلات / التحويلات: تحليل ضبط البيانات الحية (استخدام حقول كل جدول من القواعد المنشورة / استعلامات الصيد، توليد KQL مرشح/مشروع/مدمج، تقديرات التوفير)، استخراج أعمدة المخطط من واجهة برمجة تطبيقات الجداول، التسلسل الهرمي الاحتياطي لـ Get-SplitKql (إحصائيات المجتمع ← الإعدادات الافتراضية للفئة ← الحقول العالمية)، مقيم جدول شامل مع مصفوفة استخدام الحقول، أقسام تصدير موحدة للمعرفة + الضبط المباشر، نص استخراج Build-FieldKnowledgeBase.ps1 لمجموعة قواعد Azure-Sentinel GitHub. Detection Analyzer: إسناد الإغلاق التلقائي المستند إلى SentinelHealth (أساسي) مع آلية احتياطية لمطابقة القواعد المدركة للمشغل، تحليل غلاف الشرط البولياني، اكتشاف حالة Resolved، مطابقة ذيل GUID لمعرفات موارد ARM. التغطية الآن مبنية على عدد الجداول عبر جميع الجداول (بما في ذلك الطبقة المجانية). تمت إضافة إخلاء مسؤولية التقييم إلى TUI والتصديرات. 174 اختبارًا
0.6.12026-04-10إصلاح الأخطاء: ترشيح $kqlKeywords أصبح الآن مشتركًا على مستوى الملف (كان غير معرّف في Get-TablesFromKql)، تمت إضافة [CmdletBinding()] إلى جميع الدوال المساعدة، تم تبسيط التحقق الموحد لـ Defender، تمت إزالة معلمة الاختبار الوهمية -RuleCount. المتانة: ترقيم صفحات Get-HuntingQueries، غلاف إعادة المحاولة Invoke-AzRestWithRetry مع تراجع أسي لـ 429/5xx، التحقق من صحة PricePerGB، إضافة Write-Verbose في الدوال الرئيسية. التوثيق: شارة الإصدار، عدد قواعد البيانات، المتطلبات الأساسية متوافقة مع البيان
0.6.02026-04-10كشف ديناميكي لتدفق XDR مع 21 جدولاً معروفًا لـ XDR (كان مُقسى 18)، حالة XDR لكل جدول (NotStreaming/Analytics/Basic/Auxiliary)، التعرف على Auxiliary كطبقة بحيرة بيانات، جداول XDR غير المُدفقة تظهر كتوصيات معلوماتية/منخفضة مع NotStreamedCount، يعرض محلل الاحتفاظ جداول XDR غير المُدفقة كـ "XDR فقط (30 يومًا)"، توزيع الطبقة العامة (تحليلات/أساسية/بحيرة بيانات + غير مُدفقة)، تسميات Auxiliary → "بحيرة بيانات" في Export-Report، قاعدة بيانات التصنيف محدثة إلى 345 إدخالاً (+DeviceNetworkInfo, DeviceInfo→ثانوي/بحيرة بيانات، DeviceImageLoadEvents و IdentityQueryEvents←طبقة بحيرة بيانات)، 15 اختبارًا جديدًا لـ Pester (121 إجماليًا)
0.5.02026-04-03تصدير HTML ثابت مع علامات تبويب CSS خالصة (بدون JavaScript، بدون CDN، مكتفٍ ذاتيًا بالكامل)، مُقدّم أقسام MD/HTML موحد، التقاط بيانات JSON كاملة (dataTransforms، correlationExcluded/Included، streamingTables)، مفتاح -NonInteractive لاستخدام CI/خط الأنابيب، اسم مستعار للتنسيق md، أسماء ملفات تلقائية بطابع زمني، عرض KQL كامل في تحويلات DCR (بدون اقتطاع)، معالجة KQL متعددة الأسطر في جداول markdown، إصلاح تلف المرجع الخلفي $-regex في استبدال رمز HTML، إعادة تسمية المساعدات الداخلية لتجنب تعارضات الأسماء المستعارة في PowerShell (h→hEnc, md→mdEsc)، 33 اختبارًا جديدًا لـ Pester (106 إجماليًا)
0.4.12026-04-03إصلاحات الأمان والاستقرار - تمت إضافة تنظيف ذاكرة الرمز المميز، التحقق من صحة مسار الإخراج وحماية XSS، حدود ترقيم صفحات REST API، إصلاح إخفاء خطأ محمل الوحدة، وحل تحذيرات PSScriptAnalyzer
0.4.02026-04-02اكتشاف التحويلات (قائمة DCR + تصنيف نوع التحويل)، كشف الجداول المنقسمة (_SPLT_CL)، مساعد KQL المقسم مع قاعدة معرفة مكونة من 15 جدولاً (high-value-fields.json) + آلية احتياطية لتحليل القواعد، إخراج KQL شرطي فقط جاهز للبوابة، قائمة توصيات قابلة للتوسيع، قائمة TUI لاقتراحات KQL المقسمة
0.3.02026-04-02تحليل الامتثال للاحتفاظ بالسجلات (CISA M-21-31، NIST SP 800-92، NCSC-UK، ASD ACSC، NSA)، كشف علامات الارتباط (#DONT_CORR#/#INC_CORR#)، عرض تقييم الاحتفاظ في القائمة، عمود الاحتفاظ في جميع الجداول، recommendedRetentionDays في مخطط التصنيف
0.2.22026-04-02جدول تحسين SOC يخفي عمود التفاصيل على وحدات التحكم الضيقة
0.2.12026-04-02دعم التصنيف المخصص (-CustomClassificationPath)، توصيات تحسين SOC مُثراة مع اقتراحات API / تنقل تفصيلي، عرض افتراضي للنشطة فقط، قمع تحذير ترميز UTF-8
0.2.0-الإصدار العام الأولي مع محرك تصنيف، تسجيل قيمة-تكلفة، TUI Spectre.Console، تصدير إلى JSON/Markdown
0.1.0-الإصدار الداخلي للتطوير