
يكشف عن حقن العمليات والتلاعب بالذاكرة المستخدمة من قبل البرامج الضارة. يجد مناطق 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 تستخدم تضمينات غنية بنفس المعلومات بتنسيق نظيف.