
مختبر SOC باستخدام Wazuh وSuricata يكشف الثغرات الحقيقية (CVE-2011-2523) وهجمات القوة العمياء، مع قواعد كشف مخصصة تغطي الفجوات في توقيعات IDS الافتراضية.
مختبر مركز عمليات أمنية (SOC) مخصص يُبنى لكشف تقنيات الهجوم الحقيقية ضد هدف ضعيف مُتعمَّد، باستخدام Wazuh كـ SIEM و Suricata كمستشعر IDS قائم على الشبكة. صُمم لإظهار مهارات هندسة الكشف - ليس مجرد نشر أدوات.
عمل SOC الحديث ليس مجرد "تثبيت SIEM ومشاهدة لوحة البيانات". إنه فهم لماذا توجد فجوة في الكشف، ومعرفة كيفية سدها. يحاكي هذا المختبر بيئة صغيرة واقعية: صندوق مهاجم، هدف قديم/ضعيف لا يدعم التسجيل الأصلي، ومكدس SIEM يجب أن يعمل حول هذا القيد باستخدام رؤية طبقة الشبكة بدلاً من عوامل المضيف.
قرار معماري رئيسي: الهدف (Metasploitable 2) يعمل على نظام تشغيل قديم جدًا بحيث لا يدعم وكيل Wazuh حديث أو حتى موصل syslog مع اتصال بالإنترنت. بدلاً من معالجة هذا كعائق، يتحول المشروع إلى الكشف الكامل القائم على الشبكة عبر Suricata - وهو نمط واقعي للأصول القديمة أو إنترنت الأشياء (IoT) أو الأصول التشغيلية (OT) التي لا يمكن تزويدها بأدوات مباشرة.
┌─────────────┐ attacks ┌──────────────────────┐
│ Kali VM │ ────────────────────────▶│ Metasploitable 2 │
│ (attacker + │ │ (unmonitored victim, │
│ Suricata │ │ no agent, no │
│ sensor + │ │ internet access) │
│ Wazuh agent│ └──────────────────────┘
└──────┬──────┘
│ eve.json (Suricata alerts/events)
│ forwarded via Wazuh agent
▼
┌─────────────────────┐
│ Wazuh Manager │
│ (Amazon Linux 2023)│
│ Indexer + Dashboard│
└─────────────────────┘
جميع الأجهزة الافتراضية الثلاثة تعمل على VirtualBox، متصلة بشبكة NAT على 192.168.0.0/24.

| المكون | الدور | نظام التشغيل |
|---|---|---|
| Wazuh Manager | SIEM: مفهرس، لوحة بيانات، محرك قواعد | Amazon Linux 2023 |
| Kali Linux | مهاجم + مستشعر شبكة Suricata + وكيل Wazuh | Kali (Debian-based) |
| Metasploitable 2 | هدف ضعيف، غير مراقب | Ubuntu 8.04 (legacy) |
يحتاج Suricata إلى رؤية لحركة المرور بين المهاجم والهدف. يوجد خياران: جهاز افتراضي مخصص للمستشعر مع واجهة مختلطة/منعكسة، أو تشغيل المستشعر على أحد المضيفين الموجودين بالفعل في مسار حركة المرور. نظرًا لأن مدير Wazuh (Amazon Linux 2023) لا يدعم EPEL وجعل تثبيت Suricata غير عملي، ولا يمكن للهدف تشغيل أي وكيل على الإطلاق، يعمل Suricata مباشرة على صندوق Kali. هذا يعني أنه يرى 100% من حركة المرور الهجومية على واجهته الخاصة دون الحاجة إلى وضع مختلط أو منفذ انعكاس (span port)، ويُرسل أحداثه إلى المدير عبر وكيل Wazuh المسجل بالفعل على Kali.
الهجوم:
nmap -sV -A 192.168.0.138

الكشف: مجموعة قواعد Emerging Threats الخاصة بـ Suricata أشارت إلى توقيعات متعددة متعلقة بالفحص وشذوذ البروتوكول في الوقت الفعلي عندما لمس الفحص كل منفذ مفتوح، بما في ذلك حركة مرور على خدمة UnrealIRCd المكشوفة في Metasploitable (ET CHAT IRC USER command).
النتيجة: 132+ حدث IDS تم إنشاؤه وتصنيفه بشكل صحيح ضمن مجموعات قواعد ids, suricata في عرض مطاردة التهديدات في Wazuh في غضون ثوانٍ من اكتمال الفحص.

الهجوم:
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 > set RHOSTS 192.168.0.138
msf6 > set LHOST 192.168.0.200
msf6 > run

يحتوي vsftpd 2.3.4 في Metasploitable على باب خلفي يتم تشغيله بواسطة سلسلة تسجيل دخول FTP مشوهة، مما يؤدي إلى تشغيل قشرة جذر (root shell) على منفذ TCP 6200. نزل الاستغلال بشكل نظيف وأعاد جلسة Meterpreter كـ root.
الكشف: توقيع GPL ATTACK_RESPONSE id check returned root (SID 2100498) الخاص بـ Suricata أطلق بعد 11 ثانية من تشغيل القشرة، مطابقًا السلسلة النصية uid=0(root) في إخراج أوامر القشرة أثناء عبورها عبر السلك على المنفذ 6200.
"signature": "GPL ATTACK_RESPONSE id check returned root",
"signature_id": 2100498,
"src_ip": "192.168.0.138",
"src_port": 6200,
"dest_ip": "192.168.0.200",
"direction": "to_client"

لماذا هذا مهم: هذا تأكيد على طبقة الشبكة لاختراق جذر ناجح على أصل لا يحتوي على أي تسجيل على مستوى المضيف - السيناريو الدقيق الذي صُممت البنية للتعامل معه.
الهجوم:
hydra -l msfadmin -P /tmp/quicklist.txt -t 4 ftp://192.168.0.138

حاولت Hydra عمليات تسجيل دخول متعددة لـ FTP بتسلسل سريع، وحددت بشكل صحيح زوج بيانات الاعتماد الصالح msfadmin:msfadmin بعد عدة محاولات فاشلة.
حالة الكشف: قام محلل بروتوكول FTP الخاص بـ Suricata بالتقاط كل أمر USER/PASS فردي ورمز استجابة الخادم في eve.json (event_type: ftp)، وتم تأكيد وجودها في أرشيف الأحداث الخام للمدير:
{"event_type":"ftp","src_ip":"192.168.0.200","dest_ip":"192.168.0.138",
"dest_port":21,"ftp":{"command":"PASS","command_data":"root",
"completion_code":["530"],"reply":["Login incorrect."]}}

لا تحتوي مجموعة القواعد الافتراضية لـ Suricata على توقيع مخصص للقوة الغاشمة لـ FTP، لأنه نمط بروتوكول وليس سلسلة ضارة معروفة. تم هندسة قاعدة ارتباط مخصصة في Wazuh لسد هذه الفجوة:
<group name="suricata,ftp,brute_force,">
<rule id="100100" level="5">
<if_sid>86600</if_sid>
<field name="event_type">^ftp$</field>
<field name="data.ftp.command">^PASS$</field>
<description>Suricata: FTP password attempt detected on $(data.dest_ip)</description>
</rule>
<rule id="100101" level="10" frequency="4" timeframe="60">
<if_matched_sid>100100</if_matched_sid>
<description>Suricata: Possible FTP brute force attack detected - multiple password attempts within 60 seconds</description>
<mitre>
<id>T1110</id>
</mitre>
</rule>
</group>
الحالة: قيد التقدم - تم تأكيد وصول بيانات الأحداث الأساسية إلى المدير، وتم التحقق من صحة بناء جملة القاعدة عبر wazuh-logtest، لكن قاعدة الارتباط (100101) لا تزال لا تعمل بشكل موثوق من النهاية إلى النهاية. خطوة التصحيح التالية هي تأكيد مسار حقل وحدة فك الترميز المعين لحقول FTP المتداخلة في Suricata في وقت التحليل عبر wazuh-logtest مقابل عينة حية. تم تتبعها كعمل مستقبلي أدناه.
archives.log/archives.json غير مفعلة افتراضيًا (logall/logall_json هما no خارج الصندوق) وهي ضرورية لتصحيح ما استقبله SIEM بالفعل مقابل ما اختار التنبيه عليه.usermap_script (CVE-2007-2447) كتقنية خامسة| التقنية | المعرف | الحالة |
|---|---|---|
| المسح النشط (Active Scanning) | T1595 | ✅ تم الكشف |
| استغلال تطبيق موجه للعامة (Exploit Public-Facing Application) | T1190 | ✅ تم الكشف |
| القوة الغاشمة (Brute Force) | T1110 | 🔶 قيد التقدم |