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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Nimbus Vestige — محرك إعادة بناء الأدلة الجنائية للاستجابة لحوادث السحابة والهوية. | Kitploit
أدوات/GitLabGitLab/dobybaxter127/nimbus-vestige
الاستطلاعالتحاليل الرقمية الجنائيةاختبار الاختراقأمن السحابةاستخبارات التهديداتإدارة الهوية والوصول (IAM)التعلم والتعليمالاستجابة للحوادثتحليل السجلات
GitLabdobybaxter127/nimbus-vestige

Nimbus Vestige

محرك إعادة بناء الأدلة الجنائية للاستجابة لحوادث السحابة والهوية.

24منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

محرك نيمبوس فيستيج (NV)

محرك إعادة بناء جنائي للاستجابة لحوادث السحابة والهوية.

بالنظر إلى بيانات القياس المجزأة للسحابة وSaaS والهوية — سجلات مستوى التحكم، وأحداث تسجيل الدخول، ونشاط الرموز والموافقات — يعيد NV بناء كيفية تحرك الاختراق على الأرجح عبر الحسابات والخدمات، ويُعدّد المسارات الأخرى الأكثر احتمالاً التي كان يمكن أن يسلكها، ويُبلّغ عن كل خطوة بثقة مُعايَرة وقابلة للتفسير. إنه يرفض الادعاء بما لا تدعمه الأدلة.

الكشف يخبرك أن شيئاً ما حدث. نيمبوس فيستيج يخبرك كيف — وماذا أيضاً.


لماذا يوجد هذا

الاختراقات الحديثة لا "تقتحم". بل تسجّل الدخول. الهوية هي الآن وسيلة الهجوم الأساسية، المتورطة في الغالبية العظمى من تحقيقات الاستجابة لحوادث السحابة، ومعظم الاختراقات تمتد عبر أسطح متعددة — الهوية بالإضافة إلى السحابة وSaaS ونقطة النهاية. البيانات القياسية التي تسجلها مجزأة وغير متسقة، مما يفرض بالفعل على المستجيبين إعادة بناء القصة يدوياً من بيانات غير مكتملة.

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

الأهم من ذلك، يفعل NV هذا مع الصدق كمنتج. العدو المُعلن للسوق هو الثقة الصندوقية السوداء — أداة تزعم نتيجة دون إظهار عملها. كل رقم ينتجه NV قابل للتتبع إلى الدليل المحدد الذي كسبه، وكل ما لا يمكنه دعمه يُحجب بدلاً من تخمينه.


ما هو — وما ليس هو

NV ليس كاشفاً، أو ماسحاً، أو مدققاً، أو مشغّل هجمات. تلك الأدوات تخبرك أن شيئاً ما حدث وتقيسه. يعمل NV بالعكس — إعادة بناء استدلالية للآلية من الأنماط، عبر منظومة هوية مجزأة.

  • ليس كاشفاً — لا يُطلق تنبيهات على النشاط؛ بل يشرح كيف يتناسب النشاط معاً.
  • ليس SIEM — يدخل من خلال مدخل ضيق (إعادة بناء السردية بعد الحادث)، وليس كمنصة سجلات.
  • ليس محرك قواعد — عندما لا يطابق أي شيء نمطاً معروفاً، فإنه لا يزال يعيد البناء، متدهوراً بأناقة بدلاً من أن يصاب بالعمى.

لماذا هو صالح على المدى الطويل

  1. الفريق الأزرق يتجدد؛ الفريق الأحمر يتحول إلى سلعة. الأدوات الهجومية تجد مجموعة محدودة وقابلة للترقيع من الثغرات وتنطوي في خطوط أنابيب CI/CD الآمنة الآلية. إعادة بناء كيف حدث الاختراق لا تُحسم أبداً — المهاجمون يواصلون الابتكار، لذا فإن الحاجة دائمة وتتجدد ذاتياً.

  2. المحرك مستقل عن الركيزة. المنطق الأساسي — إعادة بناء الآلية من الأنماط، بثقة مُعايَرة وسكة توقف — مُلتزم به السحابة/الهوية أولاً، لكنه يُنقل إلى الشبكة ونقطة النهاية وOT لاحقاً. يمكن أن يتغير الهدف دون إعادة كتابة الأطروحة.

  3. إعادة البناء تتيح التحصين. بمجرد أن تعرف كيف دخلوا — وأي أبواب أخرى كانت مفتوحة — تبني الدفاعات. المسارات غير المسلوكة لكن المعقولة هي قائمة أعمال تحصين، غالباً ما تساوي أكثر من إعادة البناء نفسها، لأن معظم الاختراقات تستغل تعرضاً قابلاً للوقاية، وليس حِرفية جديدة.

  4. يتدهور بأناقة على الاختراق الجديد — الحادث نفسه الأكثر أهمية. محرك التوقيعات/القواعد يصاب بالعمى على ثغرة يوم الصفر؛ النواة الاستدلالية لـNV لا تزال تنتج مساراً أرجح، مُعلَماً بصدق كأقل ثقة.

  5. الصدق خندق. الثقة المُعايَرة المبنية على الحالات مع البدائل المرتبة هي بالضبط ما يقول السوق إنه يريده وما لا يستطيع المنافسون أصحاب الصندوق الأسود تقديمه هيكلياً دون إعادة تصميم.


البنية

سجلات المزود الخام → رسم بياني مُطبَّع للأحداث/الكيانات → محرك إعادة البناء → JSON → واجهة المستخدم الرسومية.``` O365 / Entra audit logs nv_extract_identity_events.py AWS CloudTrail (IAM/STS/S3) nv_extract_cloudtrail_events.py (ingest + normalize) ▼ normalized identity events (JSONL) ← one event model, any substrate │ nv/graph.py (typed per-actor timelines) ▼ reconstruction engine ├─ nv/patterns.py known layer: ATT&CK identity pattern library ├─ nv/providers.py provider packs: per-substrate op→ATT&CK vocab (Entra + AWS) ├─ nv/validation.py Phase 3: provenance + integrity gate on every pattern ├─ nv/feeds.py live ATT&CK STIX / TAXII / Sigma clients + scheduler ├─ nv/confidence.py evidence-corroboration scorer (calibratable weights) ├─ nv/calibration.py fit + measure confidence against labeled ground truth ├─ nv/reconstruct.py most-likely chain + ranked competing paths + trust floor └─ nv/scope.py authorized-scope gate (refuses unauthorized tenants/accounts) │ run_nv.py ▼ reconstruction.json ──► nv_gui.html (embedding canvas + two-column view + trust slider)

root@kitploit:~
الواجهة الرسومية هي **طبقة عرض خالصة** — تعرض مخرجات المحرك وتتيح للمحلل تحريك
حد الثقة. لا تحتوي على أي منطق إعادة بناء خاص بها.

---

## نموذج الثقة (مصداقية المنتج بأكمله)

تحمل كل خطوة ثقة في النطاق [0, 1]، تُبنى عبر **تأكيد الأدلة**:```
confidence = per-technique base rate
           + bonus for each independent corroborating signal
                 (source IP, device, successful outcome, temporal adjacency, broad-consent flags)
           − penalty for missing signals (e.g. no source IP to corroborate origin)
  • تم التحقق منه — الثقة ≥ 0.70 و إشارتان مستقلتان أو أكثر متطابقتان.
  • نمط فقط — فوق حد الثقة لكن بدعم ضعيف أو مفرد.
  • محجوب — تحت حد الثقة؛ يُعرض باهتًا، ولا يُخمَّن بصمت أو يُخفى أبدًا.

تدمج درجات المسارات روابطها عبر الوسط الهندسي، لذا فإن الرابط الضعيف الواحد يسحب المسار بصدق إلى الأسفل بدلًا من أن يُلغى بالتوسط.

كل وزن أعلاه — المعدلات الأساسية لكل تقنية، والمكافآت لكل إشارة، وعقوبات النقص — يعيش في جدول PARAMS واحد في nv/confidence.py. تلك هي افتراضات NV الأولية للإصدار v1، وهي قابلة للمعايرة: يمكن لـ nv/calibration.py إعادة ملاءمتها مقابل الحقيقة الأساسية المُعلَّمة وسيحمّل المحرك النتيجة، مع التراجع إلى افتراضات v1 الأولية عند عدم توفير معايرة (انظر أدناه).

حد الثقة

قاعدة الحجب، مدمجة في عقد إخراج المحرك — وليس فقط في الواجهة. تحت الحد، تُحجب الخطوة. تحريك الحد هو مقايضة الصدق مقابل التغطية المتجسدة: لأعلى للثقة الصارمة/العالية، ولأسفل للتسامحية/عالية التغطية. الحد الافتراضي هو قرار تحريري حول مكان وقوف NV قبل أن يلمسه المحلل.


معايرة الثقة مقابل الحقيقة الأساسية

أوزان v1 قابلة للدفاع عنها، لكنها افتراضات أولية. يضبطها nv/calibration.py مقابل الحقيقة الأساسية المُعلَّمة — أحداث نعرف أيها كان جزءًا من الاختراق وأيها كان حميدًا — والأهم من ذلك، يقيس ما إذا كان الضبط ساعد فعلًا، لذا لا يُعتمد المعايرة إلا إذا خفضت خطأ المعايرة بدلًا من مجرد تحريك الأرقام.

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

  • المعدلات الأساسية لكل عملية — معدل الإصابة التجريبي لتلك العملية، منكمشًا بايزيًا نحو افتراض v1 الأولي حتى لا تُفرط العينات الصغيرة في الملاءمة؛ و
  • مكافآت كل إشارة والعقوبتان — عبر نزول إحداثي مقيد يقلل درجة براير مع سحب L2 للعودة نحو قيم v1.

عتبات التحقق/الحجب هي سياسة، وليست معايرة، وتُترك دون تغيير.

يُبلغ عن درجة براير، وخسارة اللوغاريتم، وECE، وAUC، وجدول موثوقية، و مسح لحد الثقة (استدعاء الخطوات الحقيقية مقابل معدل الإيجابيات الكاذبة الحميدة عند كل حد)، قبل وبعد — بحيث تكون مقايضة الصدق مقابل التغطية واضحة بدلًا من رقم واحد.```bash

calibrate against a real, labeled BadZure / MAAD-AF run

python3 calibrate.py --labeled run_labeled.jsonl --origin live
--run-label "badzure-2026-07 tenant-x" --out calibration.json

demonstrate on the bundled documented-shape proxy corpus

python3 calibrate.py --out calibration.json

run the engine on calibrated weights (opt-in; v1 priors are the default)

python3 run_nv.py events.jsonl out.json --authorize t.onmicrosoft.com
--calibration calibration.json

root@kitploit:~
**مصدر الحقيقة الأساسي.** المدخلات الصادقة هي بيانات تيليمترية من تشغيل BadZure / MAAD-AF في
مستأجر حقيقي، مُصنَّفة من خلال دمج سجل التدقيق الموحد مع سجل نشاط أداة الهجوم نفسها
(كل حدث تسببت فيه الأداة موجود على السلسلة؛ وكل شيء آخر حميد — انظر
`LABELED_SCHEMA` في `nv/calibration.py`). حتى تُوجّهها إلى تشغيل حقيقي،
يوفر `eval/calibration_cases.py` مجموعة **وكيلة** ذات شكل موثّق، وكل
قطعة أثرية مُلاءَمة منها تُختم بـ `source="proxy"` في مصدرها بحيث لا يمكن
الخلط بين الملاءمة الوكيلة وملاءمة حية أبدًا. `calibration.proxy.json` هو تلك القطعة الأثرية الوكيلة المرفقة.

على مجموعة الوكيل المرفقة، الملاءمة تحسّن واضح — Brier 0.398 → 0.045، ECE
0.576 → 0.081، AUC 0.81 → 0.91، ومعدل الإيجابيات الكاذبة الحميدة عند حد 0.60
ينهار من 0.69 إلى 0.00 (كانت الاحتمالات المسبقة v1 واثقة بشكل مفرط على النشاط الحميد).
الوكيل متحفظ عمدًا؛ تشغيل مستأجر حي هو ما يُنتج أوزانًا يجب
نشرها فعليًا.

## سلامة الثقة (المرحلة 3)

ضابطان من الدرجة الأولى يحميان إعادة البناء من المدخلات السيئة:

- **بوابة النطاق المصرّح به** (`nv/scope.py`) — ترفض NV العمل على أي نطاق غير موجود في
  القائمة المصرّح بها. شغّل مع `--authorize <tenant-domain>` لكل نطاق يُسمح لك
  بالتحقيق فيه.

- **التحقق من مصدر الأنماط** (`nv/validation.py`) — لا يدخل أي نمط إلى المكتبة
  دون اجتياز: (1) قائمة السماح للمصادر الموثوقة، (2) فحص المجموع الاختباري / العبث بالمحتوى،
  (3) سلامة بنية المخطط، (4) معرّف تقنية صالح بنمط ATT&CK. كل نمط
  مقبول يحتفظ بسجل تدقيق؛ ويُسجَّل المرفوضون مع سبب. يتم إيقاف
  التغذية المسمومة أو المشوّهة عند المنبع قبل أن تتمكن من تصنيع إعادة بناء خاطئة.
  هذا هو نفس التشكك الذي يطبّقه المحرك على الأدلة، منقولًا إلى الأنماط
  نفسها.

---

## إبقاء المعرفة محدّثة (البقاء في صدارة تطور المهاجمين)

محرك إعادة البناء محدث فقط بقدر مكتبة أنماطه بالإضافة إلى قدرته على
التعامل مع ما لم ترَه المكتبة من قبل. تعالج NV التقادم على **جبهتين مستقلتين**،
بالتصميم:

### 1. الطبقة المعروفة تبقى حديثة عبر خط أنابيب تحديث مُتحقَّق منه

المكتبة ليست مشفّرة — `nv/patterns.py` يحمّل كل نمط (بما في ذلك
المجموعة المدمجة) عبر `nv/validation.py`، لذا تدخل التغذية الخارجية عبر نفس المسار
الموثوق. عملاء الشبكة المباشرون الذين يسحبون هذه التغذية وفق جدول زمني مُنفَّذون في
`nv/feeds.py` ويُدارون بواسطة `update_feeds.py`. المصادر، في طبقات الثقة:

- **MITRE ATT&CK (STIX)** — التصنيف التقني الموثوق. يقرأ الموصل
  فهرس ATT&CK STIX، ويسحب أحدث إصدار للمؤسسات، ويحدّث
  اسم التقنية الموثوق والتكتيك لكل عملية يستدل عليها NV —
  مع إسقاط أي تقنية ألغتها ATT&CK أو أهملتها منذ ذلك الحين. تحتفظ NV
  بملكية ربط العملية→التقنية والاحتمال المسبق للمعدل الأساسي؛ وتمتلك ATT&CK
  التصنيف.
- **CTI المُدقَّق عبر TAXII 2.1** — عميل كامل للاكتشاف → جذر API → مجموعة → كائنات.
  يسحب كائنات نمط الهجوم STIX من مجموعة CTI مُدقَّقة ويحدّث
  التقنيات التي تتعقبها NV. مرجّح أدنى من ATT&CK.
- **مجموعة قواعد Sigma المجتمعية** — تُسحب كأرشيف git؛ كل قاعدة سحابية/هوية
  تسمّي عملية O365/Entra وتحمل وسم `attack.tXXXX` تصبح
  مرشحًا للعملية→التقنية، مع معدل أساسي مشتق من مستوى `level` الخاص
  بالقاعدة نفسها ثم يُخفَّض بواسطة وزن المصدر المجتمعي. القواعد التي لا تُطابَق
  تُتخطى مع سبب، ولا تُخمَّن أبدًا.

عند تصادم العمليات، يُرتَّب الاتحاد بترتيب تصاعدي للثقة قبل الالتزام، لذا
يفوز ربط ATT&CK الموثوق دائمًا على الربط المجتمعي؛ المحتوى من الطبقة الأدنى
ما زال يُقبل ويُسجَّل في التدقيق كتأكيد. `update_library(candidates)`
يعيد استيعاب المجموعة الكاملة عبر التحقق ويعيد بناء المكتبة ذريًا، لذا
لا يمكن لتغذية مسمومة أن تترك المكتبة محدّثة جزئيًا أبدًا.

**قائمتا سماح، وليس واحدة.** التحقق يقيّم بالفعل على وسم المصدر؛ الموصلات
تضيف قائمة سماح *للمضيف* على طبقة الشبكة، لذا يمكن للموصل الجلب فقط من مضيف
موثوق عبر TLS — المكافئ النقلي لقائمة سماح المصدر، وحارس ضد
عنوان تغذية مختطف أو مكتوب خطأ. كل جلب يسجّل sha256 للحمولة الخام وعنوان URL والوقت
كمصدر، لذا يمكن لإعادة سحب لاحقة اكتشاف التغيير عند المنبع.

**لماذا طبقة التحقق أكثر أهمية مع نمو التغذية:** كلما أتمتت التحديثات أكثر،
كلما أصبح خط أنابيب التحديث التلقائي خطر ثقة متنكرًا — تغذية خاطئة أو
مسمومة تحقن أنماطًا خاطئة وتصنّع إعادة بناء خاطئة. تعامل NV
الاستيعاب كعدائي: قائمة سماح، ومجموع اختباري، ومخطط، وسجل تدقيق على كل نمط،
كل تحديث.

### 2. الطبقة الاستدلالية تغطي ما لم تسمّه أي تغذية بعد

التغذية تتخلف دائمًا عن أحدث حِرف. النواة الاستدلالية هي التحوط: عندما
تطابق عملية ملاحظة **لا** نمطًا في المكتبة، لا تسقطها NV — بل تعيد بناء
المسار الأكثر احتمالًا من المبادئ الأولى وتعلّمه `no known match` بثقة
مخفّضة. هذا مُتحقَّق منه في مجموعة التقييم (`eval/ground_truth_cases.py`)، حيث
تُلتقط خطوة سرقة رمز الهوية المُدارة غير المعروفة عمدًا، وتُسلسَل بشكل صحيح،
وتُخفَّض بأمانة تحت حد الثقة.

معًا يعني هذا أن NV لا تصبح قديمة تمامًا أبدًا: الطبقة المعروفة تتعقب الحدود
المنشورة عبر خط أنابيب مقاوم للتسميم، والطبقة الاستدلالية تُبقي الأداة
من العمى على الاختراق الذي لم تلحق به الحدود بعد.

### الإيقاع المقترح للتحديث

`nv/feeds.py` يحمل إيقاعًا لكل تغذية و`update_feeds.py` يسحب فقط ما هو
مستحق، لذا يمكن إسقاطه مباشرة في cron أو مؤقّت systemd:

- ATT&CK STIX — 90 يومًا (إصدارات رسمية قليلة سنويًا).
- CTI/TAXII — 7 أيام (كما تنشر التغذية)، دائمًا عبر التحقق.
- Sigma — 30 يومًا.```bash
# run whatever is due, keeping state under ./.nv_feeds  (cron-friendly)
python3 update_feeds.py

# force all feeds now but only report what would change
python3 update_feeds.py --force --dry-run

# run fully offline against captured fixtures (no network)
python3 update_feeds.py --offline eval/fixtures --force

بعد أي تغيير على المكتبة، أعد تشغيل eval/run_eval.py للتأكد من أن أشكال الهجمات المعروفة ما تزال تُعاد بناؤها، وeval/validation_cases.py للتأكد من أن البوابة ما تزال ترفض المدخلات غير الصالحة، وeval/feeds_offline_test.py للتأكد من أن مسار التغذية سليم من البداية إلى النهاية.


ملاحظة حول البيانات التجريبية

إعادة البناء المعروضة في nv_gui.html مبنية من مجموعة بيانات بحثية عامة — مجموعة سجل تدقيق Office 365 الموحد من invictus-ir — وليست من مستأجر مباشر لأي شركة. وهي موجودة حتى يمكن عرض المحرك واختباره داخليًا من البداية إلى النهاية دون تعاون أي طرف. لاستخدام NV فعليًا، تقوم المؤسسة بربط بيانات التدقيق الخاصة بها من Entra/M365، كما هو موضح أدناه. لا تتضمن أي بيانات ملكية أو بيانات عملاء في أي مكان ضمن هذا المشروع.

ربط بياناتك الخاصة

يعمل NV أينما شئت تشغيله؛ ولا يتعين على سجلاتك مغادرة بيئتك أبدًا. أربع خطوات:

1 — تصدير سجلات التدقيق الخاصة بك. يقرأ NV سجل التدقيق الموحد لـ Microsoft 365. احصل عليه من Microsoft Purview (بحث التدقيق ← تصدير CSV)، أو أمر Search-UnifiedAuditLog في Exchange Online PowerShell، أو نقطتي نهاية Microsoft Graph auditLogs / signIns، أو تصدير من Sentinel/SIEM لـ OfficeActivity وSigninLogs.

2 — تطبيعها إلى نموذج الأحداث الذي يستند إليه NV في الاستدلال:```bash python3 nv_extract_identity_events.py your_audit_export.csv your_events.jsonl

root@kitploit:~
هذا يحافظ على عمليات تسجيل الدخول، ومنح الموافقة، وتغييرات الخدمة الأساسية والأدوار، والوصول إلى علب البريد
— بما في ذلك عمليات الهوية التي لم تسمِّها NV مطلقًا، لذا تظل تصل إلى
الطبقة الاستدلالية — ويتجاهل الباقي. يقرأ ملف CSV يحمل عمود `AuditData` القياسي،
أو JSON/JSONL حيث يكون كل سجل كائن `AuditData` (بالصيغة التي
تأتي بها مجموعة أبحاث invictus-ir).

**3 — إعادة البناء، مقيدة بالنطاق.** يرفض المحرك العمل على مستأجر لم
تصرّح له صراحةً:```bash
python3 run_nv.py your_events.jsonl reconstruction.json \
    --authorize yourtenant.onmicrosoft.com

4 — العرض. افتح nv_gui.html وانقر على ⤒ load reconstruction.json لتوجيهه إلى الملف الذي أنتجه المحرك للتو — تعرض الشاشة نفسها بعد ذلك الحادثة الخاصة بك، والكيانات الخاصة بك، ونطاقات الثقة الخاصة بك. كل نقطة على لوحة التضمين تعيد تشغيل إعادة البناء لهذا الكيان عند النقر.

تحليل AWS CloudTrail بدلاً من ذلك

المحرك مستقل عن الركيزة — فقط مفردات العمليات خاصة بالمزود (nv/providers.py). مسار AWS هو نفس الخطوات الثلاث ضد CloudTrail:```bash python3 nv_extract_cloudtrail_events.py cloudtrail.json aws_events.jsonl python3 run_nv.py aws_events.jsonl reconstruction.json --authorize aws:123456789012

root@kitploit:~
يُبقي الإدخال أحداث IAM/STS/تسجيل الدخول (بما في ذلك عمليات IAM الجديدة، بحيث تصل إلى
الطبقة الاستدلالية) بالإضافة إلى قراءات كائنات S3، ويقيّد النطاق على **حساب** AWS بدلاً من
نطاق مستأجر. ويُطبَّق نفس النواة الاستدلالية ونموذج الثقة وحد الثقة دون تغيير.

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

## هيكل المشروع```
run_nv.py                        reconstruction engine entrypoint (scope-gated)
nv_extract_identity_events.py    ingest: M365/Entra unified audit log -> event model
nv_extract_cloudtrail_events.py  ingest: AWS CloudTrail -> event model      [iteration 3]
update_feeds.py     pull + validate threat-intel feeds on a cadence   [iteration 1]
calibrate.py        fit confidence weights from labeled ground truth  [iteration 2]
nv/                 the engine package
  graph.py  patterns.py  validation.py  confidence.py  reconstruct.py  scope.py
  providers.py      per-substrate op->ATT&CK vocabulary packs (Entra + AWS) [iteration 3]
  feeds.py          ATT&CK STIX / TAXII 2.1 / Sigma clients + scheduler [iteration 1]
  calibration.py    metrics + parameter fit                            [iteration 2]
eval/               evals + offline fixtures (no network, no tenant)
nv_gui.html         pure view layer (loads engine reconstruction.json)
calibration.proxy.json   bundled proxy calibration artifact           [iteration 2]

قم بتشغيل كل شيء من جذر المشروع بحيث تكون الحزمة nv قابلة للاستيراد.

تشغيله```bash

1. normalize raw O365/Entra audit logs into the event model

python3 nv_extract_identity_events.py auditrecords.csv nv_identity_events.jsonl

2. reconstruct (scope-gated; add --calibration calibration.json to use fitted weights)

python3 run_nv.py nv_identity_events.jsonl reconstruction.json
--trust-floor 0.6 --authorize your-tenant.onmicrosoft.com

3. view — open nv_gui.html (renders reconstruction.json)

root@kitploit:~
حافظ على مكتبة الأنماط محدّثة واضبط مستوى الثقة:```bash
python3 update_feeds.py                       # pull + validate feeds that are due
python3 calibrate.py --labeled run.jsonl --origin live --out calibration.json

التقييمات```bash

python3 eval/run_eval.py # attack shapes reconstruct correctly python3 eval/validation_cases.py # poisoned patterns are rejected python3 eval/feeds_offline_test.py # feed connectors + scheduler (offline) python3 eval/providers_aws_test.py # AWS chain reconstructs through the same engine python3 calibrate.py # calibration harness on the bundled proxy corpus

root@kitploit:~
---

## الحالة

**يعمل من البداية إلى النهاية على بيانات حقيقية** (مجموعة بيانات invictus-ir O365)، عبر الخطة الكاملة:

| المرحلة | العنصر | الحالة |
|---|---|---|
| 1 | نموذج الأحداث/الكيانات المُطبَّع | مكتمل |
| 1 | الاستيعاب + التطبيع (نقطة الارتكاز Entra/M365) | مكتمل |
| 2 | الطبقة المعروفة (مكتبة أنماط ATT&CK) | مكتمل |
| 2 | نموذج الثقة القائم على تأكيد الأدلة | مكتمل |
| 2 | الحد الأدنى للثقة في عقد المخرجات | مكتمل |
| 2 | النواة الاستدلالية (الطبقة غير المعروفة) | مكتمل، مُثبت بالتقييم |
| 2 | فرضيات متنافسة مرتبة | مكتمل |
| 3 | طبقة التحقق من مصادر الأنماط | مكتمل |
| 3 | التحكم في النطاق المصرح به | مكتمل |
| 3 | موصلات التغذية المباشرة (ATT&CK STIX / TAXII / Sigma) + المجدول | مكتمل |
| 4 | شاشة بعمودين على مخرجات المحرك الحقيقية | مكتمل |
| 4 | لوحة التضمين / التشابه | مكتمل |
| 4 | إعادة البناء لكل كيان مدفوعة باللوحة (إعادة النقر تعيد تشغيل السلسلة) | مكتمل |
| 4 | الواجهة الرسومية تحمّل `reconstruction.json` الخاص بالمحرك (وجّهها إلى ملفك) | مكتمل |
| 4 | البنية التحتية متعددة المزودين (AWS CloudTrail، مُثبتة بالتقييم) | مكتمل |
| 5 | الجماليات / التصميم | مكتمل |
| 5 | أداة معايرة الثقة + التكامل مع المحرك | مكتمل |

### فجوات معروفة وصريحة (التكرارات القادمة)

- **أرقام المعايرة على مستأجر حي.** أداة المعايرة *مكتملة* والواجهة مُثبتة، لكن
  ملف `calibration.proxy.json` المُرفق مُجهز على بيانات وكيلة ذات شكل موثق.
  تتطلب الأوزان القابلة للنشر تشغيل الأداة على تشغيل حقيقي
  لـ BadZure / MAAD-AF — وهي خطوة تشغيلية للمتبني.
- **نمو المفردات المدفوع بالتغذية.** تقوم الموصلات بتحديث العمليات التي يفكر فيها
  NV بالفعل؛ السماح لتغذية *بإدخال* عملية جديدة (وربطها في
  تصنيف الأولي/المحوري/التجميعي) هو عمل مستقبلي.
- **عمق المزود الثاني.** AWS مُدرج كإثبات لاستقلالية البنية التحتية (الحزمة +
  الاستيعاب + التقييم)، لكن فقط IAM/STS/S3. توسيع حزمة AWS، وإضافة موصلات تغذية
  خاصة بالمزود، وبنية تحتية ثالثة (GCP، Okta) هي الخطوات التالية.

---


## الترخيص

Nimbus Vestige **متاح المصدر** بموجب **ترخيص PolyForm غير التجاري
1.0.0** (انظر [LICENSE](https://gitlab.com/dobybaxter127/nimbus-vestige/-/blob/main/LICENSE)). الأداة بأكملها — محرك إعادة البناء، وكل من
عمليتي استيعاب المزودين، والواجهة الرسومية، وأداة التقييم — مجانية للفحص والتشغيل
والاستخدام لأي غرض **غير تجاري**: المشاريع الشخصية، والبحث، والتعليم،
والمنظمات غير الربحية، والتقييم. اقرأ كل سطر قبل أن تقرر.

**الاستخدام التجاري يتطلب ترخيصًا مدفوعًا** — استخدامها في منتج أو خدمة تبيعها
أو تستضيفها، داخل أنظمة الإنتاج أو الأنظمة الداخلية لشركة ربحية، أو في
مهام الاستجابة للحوادث أو المهام الاستشارية المدفوعة. انظر
[COMMERCIAL-LICENSE.md](https://gitlab.com/dobybaxter127/nimbus-vestige/-/blob/main/COMMERCIAL-LICENSE.md).

---

### المؤلف

Doby Baxter 2026
تنزيل الأداة