
يكشف عن حقن العمليات والتلاعب بالذاكرة المستخدمة من قبل البرامج الضارة. يجد مناطق RWX، أنماط shellcode، ربط API، اختطاف الخيوط، وتجويف العمليات. مبني بلغة Rust للسرعة. يشمل واجهات CLI و TUI.
Ghost هي أداة كشف حقن العمليات مكتوبة بلغة Rust. تراقب العمليات الجارية وتحاول اصطياد الأمور المشبوهة مثل حقن الكود، التلاعب بالذاكرة، والحيل الأخرى التي تستخدمها البرامج الضارة للاختباء.
الفكرة الرئيسية بسيطة: مسح العمليات والبحث عن أنماط ذاكرة غريبة، دوال معلقة، شيل كود، وعلامات أخرى على أن شيئاً ما قد تم العبث به. تعمل على ويندوز، لينكس، وmacOS (رغم أن دعم ويندوز هو الأكثر اكتمالاً حالياً).
بعض الأشياء التي يمكنها اكتشافها:
كما تقوم بتعيين السلوكيات المكتشفة إلى إطار عمل MITRE ATT&CK، وهو مفيد إذا كنت توثق التهديدات أو تكتب تقارير.



ستحتاج إلى تثبيت Rust (الإصدار 1.70 أو أحدث). ثم:
cargo build --release
على ويندوز، ستحتاج أيضاً إلى أدوات بناء MSVC. لينكس يحتاج أدوات تطوير أساسية (gcc، إلخ). macOS يحتاج أدوات سطر أوامر Xcode.
هناك واجهتان: أداة سطر أوامر وواجهة طرفية تفاعلية.
CLI:
# مسح جميع العمليات
cargo run --bin ghost-cli --release
# استهداف عملية واحدة
cargo run --bin ghost-cli --release -- --pid 1234
# إخراج النتائج بصيغة JSON
cargo run --bin ghost-cli --release -- --format json
# استخدام ملف إعدادات
cargo run --bin ghost-cli --release -- --config ghost.toml
# وضع المراقبة المستمرة
cargo run --bin ghost-cli --release -- --watch
# مراقبة بفاصل زمني مخصص (10 ثوانٍ)
cargo run --bin ghost-cli --release -- --watch --interval 10
TUI:
cargo run --bin ghost-tui --release
TUI توفر لك لوحة تحكم بإحصائيات حية، وسجل اكتشافات، ويمكنك التنقل فيها باستخدام اختصارات لوحة المفاتيح (Tab للتبديل بين المشاهدات، Q للخروج).
Ghost تدعم إكمال التبويب لـ Bash وZsh وFish وPowerShell وElvish.
# توليد إكمالات لصدفتك
ghost completions bash > /etc/bash_completion.d/ghost
ghost completions zsh > ~/.zfunc/_ghost
ghost completions fish > ~/.config/fish/completions/ghost.fish
# أو استخدام سكريبت التثبيت
./completions/install.sh
راجع completions/README.md للحصول على تعليمات تثبيت مفصلة.
تدعم Ghost ميزات اختيارية يمكن تفعيلها أثناء البناء:
# فحص قواعد YARA (يتطلب libyara)
cargo build --features yara-scanning
# تكامل التعلم الآلي العصبي (يتطلب Python ونماذج مدربة)
cargo build --features neural-ml
# كشف eBPF (لينكس فقط، حالياً تطبيق مبدئي)
cargo build --features ebpf-detection
ملاحظة: تتطلب ميزات التعلم الآلي نماذج مدربة لتعمل. راجع ghost_ml/README.md للحصول على تعليمات التدريب.
يمكنك تعديل السلوك عبر ملف إعدادات TOML. اطلع على examples/ghost.toml كنقطة بداية. يمكنك تفعيل/تعطيل طرق كشف محددة، تعيين عتبات الثقة، تخطي عمليات النظام، والتحكم في تكرار المسح.
مثال على جزء من ملف الإعدادات:
shellcode_detection = true
hollowing_detection = true
hook_detection = true
confidence_threshold = 0.3
skip_system_processes = true
scan_interval_ms = 2000
افتراضياً، تحد Ghost الإخراج إلى 10 مؤشرات لكل اكتشاف وتزيل تكرار النتائج المتشابهة. للمسح الكبير، يمكنك تقليل الإخراج أكثر:
خيارات سطر الأوامر:
# وضع الملخص - إخراج إحصائيات بدلاً من التفاصيل الكاملة
ghost-cli --summary
# تحديد عدد المؤشرات لكل اكتشاف
ghost-cli --max-indicators 5
# الإبلاغ عن الاكتشافات الخبيثة فقط
ghost-cli --min-threat-level malicious
# الدمج للحصول على أقل إخراج
ghost-cli --summary --quiet
ملف الإعدادات:
[output]
verbosity = "minimal" # minimal, normal, أو verbose
max_indicators_per_detection = 5
min_threat_level = "suspicious"
deduplicate_indicators = true
summary_mode = true
هذا مفيد عند مسح العديد من العمليات أو تشغيل المراقبة المستمرة حيث قد تصبح ملفات الإخراج كبيرة جداً.
وضع المراقبة يتيح لك مراقبة نظامك باستمرار دون الحاجة لتشغيل المسح يدوياً. مفيد لاصطياد محاولات الحقن عند حدوثها.
# بدء المراقبة (افتراضي: فاصل زمني 5 ثوانٍ)
ghost-cli --watch
# فاصل زمني مخصص
ghost-cli --watch --interval 10
# مراقبة عملية معينة
ghost-cli --watch --pid 1234
# وضع هادئ - تنبيهات فقط عند الاكتشافات الجديدة
ghost-cli --watch --quiet
عند التشغيل في وضع المراقبة، تقوم Ghost بما يلي:
مثال على الإخراج:
[14:32:15] Scan #1: clean (142 processes, 89ms)
[14:32:20] Scan #2: 2 NEW detections! (2 total, 142 processes, 91ms)
[MALICIOUS] suspicious.exe (PID: 4521) - 87% confidence
[SUSPICIOUS] helper.dll (PID: 2201) - 54% confidence
[14:32:25] Scan #3: 2 known threats (142 processes, 88ms)
وضع الأساس يلتقط لقطة للحالة الحالية لنظامك. يمكن للمسوحات اللاحقة المقارنة بهذا الأساس لاكتشاف التغييرات - مفيد للعثور على تهديدات جديدة دون التدقيق في المشكلات المعروفة.
# حفظ الحالة الحالية كأساس
ghost-cli --save-baseline baseline.json
# لاحقاً: المقارنة مع الأساس
ghost-cli --baseline baseline.json
# الدمج مع وضع المراقبة
ghost-cli --watch --baseline baseline.json
عند المقارنة مع الأساس، تبلغ Ghost عن:
مثال على الإخراج:
3 changes from baseline:
New threats (1):
injector.exe (PID: 8821) - Malicious
Escalated threats (1):
helper.dll (PID: 2201): Suspicious -> Malicious
New indicators (1):
svchost.exe (PID: 1024):
- RWX memory region detected
- Shellcode pattern match
رمز الخروج هو 1 إذا تم اكتشاف تغييرات، و0 إذا كان النظام نظيفاً.
يمكن لـ Ghost إرسال تنبيهات في الوقت الفعلي إلى Slack وDiscord وأي نقطة نهاية HTTP عند اكتشاف تهديدات. مثالية لتكامل SOC أو لتلقي الإشعارات على هاتفك.
# Webhook لـ Slack
ghost-cli --watch --webhook "https://hooks.slack.com/services/XXX/YYY/ZZZ"
# Webhook لـ Discord
ghost-cli --watch --webhook "https://discord.com/api/webhooks/123/abc"
# HTTP POST عام (حمولة JSON)
ghost-cli --watch --webhook "https://your-siem.example.com/api/alerts"
# تجاوز النوع المكتشف تلقائياً
ghost-cli --webhook "https://custom.url" --webhook-type slack
تكتشف Ghost نوع webhook تلقائياً من الرابط:
hooks.slack.com → تنسيق Slack مع مرفقاتdiscord.com/api/webhooks → تنسيق Discord مع تضميناتتنبيهات Slack تتضمن مرفقات ملونة بمستوى التهديد، درجة الثقة، وأهم المؤشرات:
🚨 Ghost detected suspicious activity on *prod-server-01*
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚨 suspicious.exe (PID: 4521)
• RWX memory region detected at 0x7ff...
• Shellcode pattern: NOP sled
Threat Level: Malicious | Confidence: 87%
تنبيهات Discord تستخدم تضمينات غنية بنفس المعلومات بتنسيق نظيف.
Webhooks العامة ترسل حمولة JSON:
{
"event": "ghost.detection",
"timestamp": "2024-12-06T14:32:15Z",
"hostname": "prod-server-01",
"process_name": "suspicious.exe",
"pid": 4521,
"threat_level": "Malicious",
"confidence": 0.87,
"indicators": ["RWX memory region detected", "..."]
}
عندما تجد Ghost شيئاً مشبوهاً، فإنها تعين مستوى تهديد: نظيف، منخفض، متوسط، مرتفع، أو حرج. يعتمد ذلك على عدد المؤشرات التي تم العثور عليها ومدى خطورتها.
الثقة العالية لا تعني دائماً وجود برامج ضارة - بعض البرامج الشرعية تفعل أشياء غريبة بالذاكرة أيضاً. استخدم حكمك وحقق أكثر إذا لزم الأمر.
ويندوز: وظيفي بالكامل. تعداد العمليات، قراءة الذاكرة، اكتشاف الخطاطيف، اكتشاف تجويف العملية، التحقق من PE، وتحليل الخيوط كلها تعمل.
لينكس: الميزات الأساسية تعمل. تعداد العمليات عبر procfs (/proc)، قراءة الذاكرة، اكتشاف LD_PRELOAD، وكشف الحقن عبر ptrace يعملون. دعم eBPF يتطلب علامة الميزة ebpf-detection وهو حالياً تطبيق مبدئي.
macOS: دعم جزئي. تعداد العمليات، تعداد مناطق الذاكرة، قراءة الذاكرة، وتعداد الخيوط يعملون باستخدام واجهات برمجة تطبيقات mach VM. كشف الخطاطيف يتضمن كشف DYLD_INSERT_LIBRARIES وإطار عمل كشف الخطاطيف المضمنة.
صُممت لتكون سريعة بما يكفي للمراقبة المستمرة. المسح الكامل للنظام (200 عملية) يستغرق عادة أقل من 5 ثوانٍ. تعداد الذاكرة لكل عملية حوالي 50-100ms. محرك الكشف نفسه يضيف حوالي 5-10ms لكل تحليل.
تتضمن الأداة تكامل قواعد YARA. القواعد مخزنة في مجلد rules/ وتغطي عائلات البرامج الضارة الشائعة مثل Metasploit وCobalt Strike وأنماط الشيل كود العامة وتقنيات التهرب. يمكنك إضافة قواعدك الخاصة - فقط ضع ملفات .yar في ذلك المجلد.
هذه أداة على مستوى المستخدم ولها القيود التالية:
هناك المزيد من التفاصيل في مجلد docs/:
DETECTION_METHODS.md - يشرح كيفية عمل كل تقنية كشفMITRE_ATTACK_COVERAGE.md - يسرد تقنيات ATT&CK المغطاةPERFORMANCE_GUIDE.md - نصائح لضبط الأداءاطلع أيضاً على CONTRIBUTING.md إذا كنت ترغب في المساهمة، وSECURITY.md لسياسة الأمان.
MIT. راجع ملف LICENSE.
هذه الأداة مخصصة للبحث الأمني، اختبار أنظمتك الخاصة، واصطياد التهديدات الفعلية. لا تستخدمها على أنظمة لا تملكها أو ليس لديك إذن باختبارها. كن مسؤولاً.
أيضاً، إذا كنت تحقق في حادثة حقيقية، تذكر أن البرامج الضارة يمكنها اكتشاف أنها تُحلل وقد تتصرف بشكل مختلف أو تغلق نفسها. تحاول Ghost أن تكون متخفية لكن لا يوجد ضمان أن البرامج الضارة المتقدمة لن تلاحظها.