العودة إلى التحديثات
New releaseSep 21, 2026

APT-Hunter V4.0

APT-Hunter هي أداة بحث عن التهديدات لسجلات أحداث Windows صُممت بعقلية الفريق الأرجواني لتوفير كشف تحركات APT المخفية في بحر سجلات أحداث Windows لتقليل الوقت اللازم لكشف النشاط المشبوه.

مشاركة

APT-Hunter

APT-Hunter

اصطياد التهديدات في سجلات أحداث Windows، مبني بعقلية الفريق البنفسجي.

Release Downloads Stars Contributors Python 3.8+ License

APT-Hunter هي أداة لاصطياد التهديدات في سجلات أحداث Windows. تستخدم قواعد كشف محددة مسبقًا وإحصاءات السجلات لإظهار نشاط APT المخفي في كميات كبيرة من الأحداث، مما يقلل الوقت اللازم لكشف السلوك المشبوه. وهي فعّالة بشكل خاص في تقييمات الاختراق.

تُكتب النتائج كخط زمني يمكن تحليله مباشرة في Excel وTimeline Explorer وTimesketch والأدوات المشابهة، أو استكشافه في لوحة التحكم على الويب المدمجة مع فرز اختياري بواسطة LLM محلي.

جدول المحتويات

الميزات

  • الكشف القائم على القواعد عبر Security وSystem وSysmon وPowerShell وDefender وWinRM وScheduled Tasks وTerminal Services وغيرها؛ يُكتشف نوع السجل تلقائيًا.
  • محرك المعالجة المتعددة لتحليل سريع لمجموعات السجلات الكبيرة.
  • الاصطياد بواسطة سلسلة نصية أو تعبير نمطي أو ملف تعبيرات نمطية، بالإضافة إلى دعم قواعد Sigma.
  • اصطياد سجلات تدقيق Office 365.
  • مخرجات الخط الزمني بصيغة Excel وCSV (جاهزة لـ Timesketch) وتقارير مخصصة لتسجيل الدخول وتنفيذ العمليات والوصول إلى الكائنات.
  • لوحة تحكم على الويب مع التصفية والرسوم البيانية وخط زمني للحوادث وتصدير تقرير الاستجابة للحوادث (Markdown / .docx).
  • تحليل LLM المحلي عبر أي خادم متوافق مع OpenAI (Ollama، LM Studio، llama.cpp). لا شيء يغادر جهازك.
  • الفرز الوكيلي الذي يجمع آلاف التنبيهات في قائمة قصيرة قابلة للمراجعة من النتائج.

التثبيت

نزّل الملفات التنفيذية المُجمّعة من صفحة الإصدارات، أو شغّلها من المصدر (Python 3.8+):

git clone https://github.com/ahmedkhlief/APT-Hunter.git
cd APT-Hunter
python3 -m pip install -r requirements.txt

البدء السريع

python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport

يقبل -p مجلدًا أو ملفًا واحدًا. أضف -web لفتح لوحة التحكم عند انتهاء التحليل.

APT-Hunter Help

APT-Hunter analysing with all reports

APT-Hunter command-line output

APT-Hunter Excel output

APT-Hunter CSV output with Timesketch

خيارات سطر الأوامر

شغّل python3 APT-Hunter.py -h للحصول على القائمة الكاملة. الخيارات الرئيسية:

الخيارالوصف
-p, --pathملف السجل أو المجلد المراد تحليله
-o, --outاسم / مجلد المخرجات
-start, -endتقييد الخط الزمني (بصيغة ISO)
-tzالمنطقة الزمنية (local أو مثل Asia/Dubai)
-coresأنوية المعالج المراد استخدامها (الافتراضي: نصف المتاح)
-hunt, -huntfile, -eidالاصطياد بواسطة سلسلة نصية/تعبير نمطي، أو ملف تعبيرات نمطية، أو معرّف الحدث
-sigma, -rulesالاصطياد بقواعد Sigma المحوّلة إلى JSON
-o365hunt, -o365rules, -o365rawاصطياد سجلات تدقيق Office 365
-procexec, -logon, -objaccess, -allreportتقارير إضافية
-web, -webview, -webhost, -webportتشغيل لوحة التحكم على الويب
-llm, -llm-provider, -llm-url, -llm-model, -llm-key, -llm-severity, -llm-batch, -llm-contextتحليل LLM المحلي

أمثلة

تحليل مجلد من ملفات EVTX (تُكتشف أنواع السجلات تلقائيًا):

python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport

التركيز على إطار زمني:

python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport -start 2022-04-03 -end 2022-04-05T20:56

الاصطياد بسلسلة نصية، أو تعبير نمطي، أو ملف من التعبيرات النمطية:

python3 APT-Hunter.py -hunt "psexec" -p /opt/wineventlogs/ -o Project2
python3 APT-Hunter.py -huntfile "(psexec|psexesvc)" -p /opt/wineventlogs/ -o Project2
python3 APT-Hunter.py -huntfile huntfile.txt -p /opt/wineventlogs/ -o Project2

الاصطياد بقواعد Sigma:

python3 APT-Hunter.py -sigma -rules rules.json -p /opt/wineventlogs/ -o Project2

جلب أحدث قواعد Sigma المحوّلة لـ APT-Hunter (يكتب rules.json):

./Get_Latest_Sigma_Rules.sh

لوحة التحكم على الويب

تصفّح تقريرًا مُنشأً في المتصفح: التصفية والرسوم البيانية وخط زمني للحوادث وتصدير تقرير الاستجابة للحوادث.

python3 run_webapp.py <Output>/<Output>_Report.xlsx     # or pass the output directory
python3 APT-Hunter.py -p <logs> -o <Output> -web         # analyse, then open the dashboard
python3 APT-Hunter.py -webview <Output>                  # open an existing report

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

يرتبط الخادم بـ 0.0.0.0:5000 افتراضيًا. استخدم --host / --port (أو -webhost / -webport) لتغيير ذلك، على سبيل المثال --host 127.0.0.1 لإبقائه محليًا. تُحفظ النتائج المراجَعة والخط الزمني عند إعادة بناء ذاكرة التخزين المؤقت للتقرير.

Main dashboard

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

Incident timeline plot

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

Incident timeline event details

الخط الزمني الزمني: تتوسّع سلسلة الهجوم إلى أحداثها الفرعية، وتُظهر لوحة التفاصيل السرد وتقنيات MITRE والنتيجة.

مخطط الخط الزمني للحوادث قابل للتكبير، لذا تبقى دفعات الأحداث المتباعدة بدقائق أو ثوانٍ قابلة للقراءة: اسحب عبر المخطط للتكبير في فترة، وShift+اسحب للتحريك، وCtrl/Cmd+عجلة للتكبير حول المؤشر، أو استخدم شريط النظرة العامة أسفله. لا تتداخل التسميات أبدًا؛ تُخفى التسميات التي لا تتسع، وتمرير المؤشر فوق نقطة يسرد كل حدث متراكم عليها.

تحليل LLM المحلي

قيّم الأحداث المكتشفة من حيث الخبث باستخدام نموذج محلي، من سطر الأوامر:

python3 APT-Hunter.py -p <logs> -o <Output> -llm -llm-provider ollama -llm-model llama3 -llm-severity High

أو لكل حدث من لوحة التحكم (تحقق، اشرح، اربط). اضبط المزوّد (Ollama / LM Studio / llama.cpp) والنموذج وعنوان URL والمهلة في صفحة الإعدادات بلوحة التحكم. أي خادم محلي متوافق مع OpenAI يعمل؛ لا تُرسل أي بيانات إلى خدمة سحابية.

الفرز الوكيلي

يحوّل الفرز الوكيلي في الشريط الجانبي للوحة التحكم آلاف التنبيهات إلى قائمة قصيرة من النتائج:

  1. التجميع. تُجمّع التنبيهات في النطاق الذي تختاره (الحد الأدنى للخطورة، وأجهزة الحاسوب، والإطار الزمني) حسب القاعدة والمضيف ومعرّف الحدث وشكل الرسالة. عادةً ما يتقلص تقرير يحتوي على نحو 13.5 ألف تنبيه إلى بضع عشرات من المجموعات.
  2. حكم المرور الأول. يحكم LLM على كل مجموعة مرة واحدة بالضبط. هذا المرور رخيص وشامل، مما يضمن عدم تخطي أي شيء.
  3. التحقيق. يعمل وكيل على الخيوط الناجية باستخدام أدوات: يبحث في التنبيهات، ويقرأ سجل الأحداث الخام وراء تنبيه، ويتنقل في الخط الزمني حول لحظة معينة، ويربط ما يجده في سلاسل هجوم. يمكنه فقط اقتراح النتائج؛ ولا يكتب أبدًا في الخط الزمني بنفسه.
  4. المراجعة. تظهر النتائج في قائمة انتظار مع النتيجة والحكم وتقنية MITRE والأدلة وأثر تحقيق الوكيل. القبول يضيف نتيجة إلى الخط الزمني للحوادث (وتقرير الاستجابة للحوادث / تصدير .docx)؛ الرفض يتجاهلها. اضبط عتبة الإضافة التلقائية في الإعدادات (أو لكل تشغيل) لقبول النتائج عالية التقييم تلقائيًا.

تحتاج مرحلة التحقيق إلى LLM يدعم استدعاء الأدوات. إذا لم يدعمه نموذجك، يتراجع APT-Hunter إلى خط أنابيب ثابت للتحويل/الربط. التغطية متطابقة في كلتا الحالتين، لأن الوكيل يضيف عمقًا فقط فوق المرور الأول. تُحدَّد جولات الأدوات وحد زمني فعلي في الإعدادات.

Agentic Triage runs

الفرز الوكيلي: يُظهر سجل التشغيل النطاق وأعداد التنبيهات والمجموعات والنتائج واستدعاءات LLM لكل تشغيل. هنا تقلّصت 91 تنبيهًا حرجًا على مضيف واحد إلى 32 مجموعة وسلسلة هجوم واحدة عالية التقييم.

Agentic investigation trace

تفاصيل النتيجة: السرد وتقنيات MITRE والأدلة وأثر التحقيق الكامل (كل حدث مقروء ونافذة زمنية وبحث تنبيهات أجراه الوكيل)، بحيث يمكن تدقيق كل استنتاج.

ملاحظة: مخرجات LLM أداة مساعدة للفرز، وليست حكمًا نهائيًا. راجع النتائج قبل الاعتماد عليها. قد تحتاج نماذج الاستدلال إلى رفع مهلة الطلب أعلى بكثير من الافتراضي البالغ 200 ثانية.

نماذج المخرجات

النموذجالوصف
Sample_TimeSketch.csvخط زمني يمكنك رفعه إلى Timesketch لرؤية الصورة الكاملة لهجوم
Sample_Report.xlsxكل حدث مكتشف عبر جميع سجلات Windows المقدَّمة
Sample_Logon_Events.csvجميع أحداث تسجيل الدخول مع الحقول المحللة (التاريخ، المستخدم، عنوان IP المصدر، عملية تسجيل الدخول، محطة العمل، نوع تسجيل الدخول، الجهاز، السجل الأصلي)
Sample_Process_Execution_Events.csvجميع عمليات تنفيذ العمليات الملتقطة من سجلات الأحداث
Sample_Object_Access_Events.csvالوصول إلى الكائنات الملتقط من الحدث 4663
Sample_Collected-SIDS.csvالمستخدمون ومعرّفات SID الخاصة بهم، للمساعدة في التحقيقات
EventID_Frequency_Analysis.xlsتحليل تكرار معرّف الحدث

المؤلف

Twitter: @ahmed_khlief · LinkedIn: Ahmed Khlief

الترخيص

موزّع تحت GNU GPL v3. راجع LICENSE.

شكر وتقدير

شكرًا لـ Joe Maccry على مساهمته الرائعة في حالات استخدام Sysmon (أضاف Joe أكثر من 100 حالة استخدام)

الفئات