
Task 1 (المقدمة)
ما هو ELK؟
هو مجموعة أدوات برمجية تعمل معاً لتجميع وتحليل البيانات.
- ملاحظة مهمة: هو ليس نظام SIEM تقليدي 100%، ولكن الكثير من فرق الـ SOC تستخدمه وكأنه SIEM.
- السبب: لأنه يمتلك قدرات خارقة في البحث (Searching) و التمثيل البصري (Visualizing) للبيانات بسرعة عالية.
🎯 أهداف التعلم (Learning Objectives)
في هذه الغرفة، ستتعلم كيف تستخدم هذه الأداة للتحقيق في السجلات:
- المكونات: مما يتكون ELK؟ (سنتعرف على Elasticsearch, Logstash, Kibana).
- الاستكشاف: التعرف على مميزات الواجهة.
- البحث: كيف تبحث وتفلتر البيانات لتجد الإبرة في كومة القش.
- تطبيق عملي: سنحقق في سجلات VPN لنكشف أنشطة غير طبيعية (Anomalies).
- الرسم البياني: كيف تنشئ لوحات تحكم (Dashboards) تعرض البيانات بشكل جميل ومفهوم.
Task 2: Elastic Stack Overview (نظرة عامة على ELK)
في هذه المهمة، سنتعرف على المكونات الأربعة التي تشكل نظام Elastic Stack (أو ما يعرف بـ ELK). هو ليس برنامجاً واحداً، بل مجموعة أدوات مفتوحة المصدر تعمل معاً بتناغم لجمع البيانات وتحليلها وعرضها.
إليك شرح المكونات بالتفصيل مع الصور التوضيحية:
🏗️ المكونات الأربعة (The Core Components)
يتكون النظام من 4 عناصر أساسية، كما يظهر في شعاراتها الرسمية:

☝️ شرح الصورة: تعرض الشعارات الأربعة الرئيسية للنظام: Elasticsearch (المخزن)، Logstash (المعالج)، Beats (الناقل)، و Kibana (الواجهة).
1️⃣ Elasticsearch (المحرك والمخزن) 🧠
- الوظيفة: هو محرك بحث وتحليل للنصوص الكاملة (Full-text search engine).
- الدور: يقوم بتخزين البيانات بتنسيق JSON، وفهرستها، والربط بينها. هو بمثابة "قاعدة البيانات" والقلب النابض للنظام الذي يسمح بالبحث السريع.
2️⃣ Logstash (المعالج) ⚙️
- الوظيفة: محرك لمعالجة البيانات (Data Processing Engine).
- الدور: يستقبل البيانات من مصادر مختلفة، يقوم بتنظيفها وتوحيدها (Normalization)، ثم يرسلها لوجهتها النهائية (مثل Elasticsearch).
- كيف يعمل؟ ملف إعدادات Logstash مقسم دائماً إلى 3 أجزاء رئيسية:
- Input: تحديد مصدر البيانات.
- Filter: تحديد كيفية تعديل وتصفية البيانات.
- Output: تحديد أين سيتم إرسال البيانات المعالجة.

☝️ شرح الصورة: توضح هيكلية ملف Logstash التي تتكون من أقسام Input و Filter و Output.
3️⃣ Beats (الناقلون) 🚚
- الوظيفة: وكلاء صغار (Agents) يتم تثبيتهم على الأجهزة المضيفة (Endpoints).
- الدور: مهمتهم جمع البيانات وإرسالها (Shipping) إلى Logstash أو Elasticsearch مباشرة. يوجد أنواع مختلفة من Beats لكل غرض:
- Filebeat: للملفات والسجلات.
- Winlogbeat: لسجلات الويندوز.
- Packetbeat: لحركة الشبكة.

☝️ شرح الصورة: تعرض عائلة "Beats" المختلفة، حيث يختص كل واحد منها بنقل نوع معين من البيانات.
4️⃣ Kibana (الواجهة المرئية) 🖥️
- الوظيفة: أداة تمثيل البيانات (Visualization Tool).
- الدور: هي واجهة الويب التي تتفاعل معها. تقوم بسحب البيانات من Elasticsearch وعرضها لك على شكل رسوم بيانية (Charts) ولوحات تحكم (Dashboards) لتسهيل التحليل والتحقيق.
🔄 كيف تعمل المكونات معاً؟ (The Workflow)
العملية تسير بتسلسل منطقي لتدفق البيانات من الجهاز وحتى شاشتك:

☝️ شرح الصورة (تدفق البيانات):
- Beats: يجمع البيانات من الأجهزة ويرسلها.
- Logstash: يستلم البيانات، يعالجها ويفلترها.
- Elasticsearch: يخزن البيانات ويفهرسها لتكون جاهزة للبحث.
- Kibana: تقرأ البيانات من Elasticsearch وتعرضها للمحلل بشكل مرئي.
Task 3: Lab Connection (الاتصال بالمعمل)
🔌 1. تشغيل الجهاز (Start Machine)
- اضغط على الزر الأخضر "Start Machine" الموجود في المهمة.
- عليك الانتظار قليلاً (من 3 إلى 5 دقائق) حتى يكتمل تشغيل نظام ELK.
🌐 2. الدخول للنظام
- بمجرد ظهور عنوان الـ IP، افتح المتصفح (سواء كنت تستخدم AttackBox أو متصلاً عبر VPN).
- اذهب إلى الرابط:
http://MACHINE_IP(استبدل MACHINE_IP بالرقم الذي ظهر لك).
🔑 3. بيانات تسجيل الدخول (Credentials)
عندما تفتح الصفحة، سيطلب منك اسم مستخدم وكلمة مرور. استخدم البيانات التالية:
- Username:
Analyst - Password:
analyst123
Task 4: Discover Tab (تبويب الاكتشاف)
🗺️ خريطة الواجهة (Interface Map)
لنلقِ نظرة عامة على الشاشة الرئيسية. الأرقام في الصورة تشير لكل جزء سنشرحه:

☝️ شرح العناصر (حسب الأرقام):
- الـ Logs: السجلات نفسها. كل سطر يمثل حدثاً واحداً (Event) يحتوي على المعلومات والقيم.
- الـ Fields Pane: القائمة اليسرى تحتوي على أسماء الحقول (مثل IP, Username). يمكنك الضغط عليها لإضافتها أو استبعادها من البحث.
- الـ Index Pattern: من هنا تختار "نوع البيانات" التي تريد البحث فيها (مثلاً سجلات VPN).
- الـ Search Bar: شريط البحث لكتابة الاستعلامات (Queries).
- الـ Time Filter: لتحديد الفترة الزمنية للبحث (آخر 15 دقيقة، أو تاريخ معين).
- الـ Time Interval (Timeline): مخطط زمني يوضح عدد الأحداث. مفيد جداً لرؤية "الارتفاعات المفاجئة" (Spikes) في النشاط.
- الـ TOP Bar: خيارات لحفظ البحث أو مشاركته.
- الـ Discover Tab: التبويب الحالي الذي نعمل عليه.
- الـ Add Filter: لإضافة فلاتر سريعة للحقول دون كتابة أكواد.
🔍 تفاصيل العناصر المهمة
1️⃣ نمط الفهرس (Index Pattern)
قبل أن تبحث، يجب أن تخبر Kibana "أين" تبحث.
بما أن البيانات مخزنة في فهارس مختلفة (سجلات ويندوز، سجلات شبكة..)، يجب أن تختار الفهرس الصحيح.
في هذا المعمل، سنختار vpn_connections للتحقيق في سجلات الـ VPN.

☝️ شرح الصورة: تظهر القائمة المنسدلة لاختيار vpn_connections.
2️⃣ لوحة الحقول (Fields Pane)
هذه اللوحة على اليسار ذكية جداً.
- اضغط على أي حقل (مثلاً
Source_ip)، وسيظهر لك أكثر 5 قيم تكراراً (Top 5 values). - الفلترة السريعة:
- علامة (+): تعرض فقط النتائج التي تحتوي على هذه القيمة.
- علامة (-): تخفي النتائج التي تحتوي على هذه القيمة.

☝️ شرح الصورة: نرى الحقل Source_ip وكيف يعرض أكثر العناوين تكراراً مع أزرار الفلترة.
3️⃣ فلتر الوقت (Time Filter)
يمكنك تحديد أي نطاق زمني تريده (مطلق Absolute أو نسبي Relative).

☝️ شرح الصورة: تظهر خيارات تحديد التاريخ والوقت بدقة.
4️⃣ المخطط الزمني (Timeline)
هذا الشريط العلوي يعرض "كمية" السجلات بمرور الوقت.
- الفائدة: يساعدك في اكتشاف الشذوذ.
- مثال: في الصورة أدناه، نرى ارتفاعاً مفاجئاً (Spike) في السجلات يوم 11 يناير. هذا يدعو للشك والتحقيق!

5️⃣ إنشاء جدول منظم (Create Table)
افتراضياً، تظهر السجلات بشكل خام ومزدحم.
لجعلها مقروءة، يمكنك اختيار حقول معينة (مثل Source_ip, UserName, Action) لتشكيل جدول نظيف ومرتب.
Task 5: KQL Overview (نظرة عامة على KQL)
في المهمة السابقة تجولنا في الواجهة، والآن سنتعلم "لغة التخاطب" مع Kibana. شريط البحث (Search Bar) ليس مجرد مكان لكتابة كلمات عشوائية، بل يستخدم لغة خاصة تسمى KQL (Kibana Query Language).
إليك كيفية استخدام هذه اللغة بذكاء للبحث عن التهديدات:
🗣️ ما هي KQL؟
هي لغة استعلام بسيطة مخصصة للبحث في البيانات المخزنة داخل Elasticsearch. تأكد دائماً أن زر KQL مفعل في شريط البحث لضمان عمل الاستعلامات بشكل صحيح.

☝️ شرح الصورة: تظهر خيار تفعيل Kibana Query Language (KQL) في شريط البحث.
هناك نوعان رئيسيان للبحث باستخدام KQL:
🅰️ 1. البحث النصي الحر (Free Text Search)
هذا النوع يبحث عن الكلمة في أي مكان داخل السجل (بغض النظر عن الحقل).
- مثال ناجح: لو بحثت عن عبارة
"United States".- سيقوم Kibana بإرجاع جميع السجلات التي تحتوي على هذه الجملة في أي حقل.
- في المثال أدناه، نرى أنه وجد 2,304 نتيجة.

☝️ شرح الصورة: نتيجة البحث عن "United States" تظهر آلاف النتائج.
- مثال فاشل (تنبيه مهم!): لو بحثت عن كلمة
"United"فقط.- النتيجة: لن يظهر أي شيء! (No results match your search criteria).
- السبب: KQL يبحث عن الكلمة الكاملة (Exact Match). بما أن السجل يحتوي على "United States"، فهو لا يعتبر كلمة "United" وحدها تطابقاً كاملاً.

☝️ شرح الصورة: البحث عن كلمة "United" وحدها لم يعطِ أي نتائج.
- الحل (Wildcard): استخدم النجمة
*للبحث عن "جزء" من الكلمة.- الاستعلام:
United*(بمعنى: أي شيء يبدأ بكلمة United). - النتيجة: ستظهر النتائج الآن لأن النجمة أكملت الكلمة الناقصة.
- الاستعلام:

☝️ شرح الصورة: استخدام الرمز * (Wildcard) أظهر النتائج بنجاح.
🔗 2. العوامل المنطقية (Logical Operators)
لجعل بحثك أكثر دقة وتحديداً، يمكنك دمج الشروط باستخدام العوامل المنطقية (AND, OR, NOT):
1️⃣ AND (و)
- المعنى: أريد السجلات التي تحتوي على الشرطين معاً في نفس الوقت.
- المثال:
"United States" AND "Virginia"- هذا الاستعلام سيجلب السجلات التي تكون الدولة فيها "أمريكا" و الولاية "فيرجينيا" حصراً.

☝️ شرح الصورة: استخدام AND لفلترة النتائج لتكون من "Virginia" فقط.
2️⃣ OR (أو)
- المعنى: أريد السجلات التي تحتوي على هذا الشرط أو ذاك.
- المثال:
"United States" OR "England"- هذا الاستعلام سيجلب السجلات سواء كانت من "أمريكا" أو من "إنجلترا".

☝️ شرح الصورة: استخدام OR أظهر نتائج من الدولتين (لاحظ القائمة تحتوي على United States و England).
3️⃣ NOT (ليس / ما عدا)
- المعنى: استبعد هذا الشرط من النتائج.
- المثال:
"United States" AND NOT ("Florida")- هذا الاستعلام سيجلب كل السجلات من "أمريكا" ما عدا تلك القادمة من ولاية "فلوريدا".

☝️ شرح الصورة: استخدام NOT لاستبعاد ولاية محددة من نتائج البحث.
🎯 3. البحث المعتمد على الحقول (Field-based search)
هذا هو النوع الأكثر دقة واحترافية للمحللين. بدلاً من البحث العشوائي، تحدد اسم الحقل والقيمة المطلوبة.
- الصيغة:
Field : Value - المثال:
Source_ip : 238.163.231.224 AND UserName : Suleman- هنا تطلب من النظام إظهار السجلات التي يكون فيها الـ IP هو هذا الرقم تحديداً و اسم المستخدم هو "Suleman".
Task 6: Creating Visualizations (إنشاء الرسوم البيانية)
🎨 1. كيف تبدأ الرسم؟ (Start Visualizing)
أسهل طريقة للبدء هي من تبويب Discover الذي كنا فيه:
- اذهب إلى القائمة اليسرى (Fields Pane).
- اضغط على الحقل الذي تريد تحليله (مثلاً
source_state). - سيظهر لك زر أزرق في الأسفل مكتوب عليه Visualize. اضغط عليه!
🔗 2. ربط البيانات (Correlation)
قوة ELK تكمن في ربط المعلومات.
مثلاً: لا أريد فقط معرفة "عناوين IP"، بل أريد معرفة "عناوين IP و الدول التي جاءت منها".
- كيف نفعلها؟ في شاشة الرسم، قم بسحب (Drag) الحقل الثاني (مثلاً
Source_Country) وضعه في المنتصف. - النتيجة: سيقوم Kibana بإنشاء رسم يوضح العلاقة بين الاثنين (مثلاً: الدائرة الخارجية هي الدولة، والداخلية هي الـ IPs القادمة منها).

☝️ شرح الصورة: مخطط دائري (Donut Chart) يوضح العلاقة بين الدول وعناوين الـ IP. نرى أن كندا (Canada) مثلاً تشكل 9.68% من الزيارات.
📋 3. الجداول (Tables)
أحياناً يكون الجدول البسيط أفضل من الرسم البياني المعقد.
يمكنك اختيار نوع العرض Table لعرض البيانات كأعمدة مرتبة، مما يسهل قراءة القيم وترتيبها حسب الأكثر تكراراً.

☝️ شرح الصورة: جدول يوضح أكثر عناوين Source_ip تكراراً مع الدولة المقابلة لها Source_Country وعدد السجلات Count of records.
💾 4. الحفظ (Saving)
هذه أهم خطوة! إذا لم تحفظ عملك سيضيع.
- اضغط على زر Save في الزاوية العلوية اليمنى.
- أدخل عنواناً واضحاً (Title) ووصفاً (Description).
- اختر Save and add to library.

☝️ شرح الصورة: نافذة الحفظ. تأكد من كتابة اسم معبر لكي تجد الرسم لاحقاً عند بناء لوحة التحكم (Dashboard).
Task 7: Creating Dashboards (إنشاء لوحات التحكم)
🧱 1. إنشاء اللوحة (Create Dashboard)
- اذهب إلى تبويب Dashboard من القائمة الرئيسية.
- اضغط على الزر الأزرق Create new dashboard.

☝️ شرح الصورة: هذه الشاشة تظهر لك عند الدخول لأول مرة، وتدعوك لإنشاء أول لوحة تحكم لك.
➕ 2. إضافة الرسوم (Add from Library)
الآن اللوحة فارغة. كيف نملؤها؟
- اضغط على زر Add from Library (إضافة من المكتبة).
- ستظهر لك قائمة بكل الرسوم البيانية (Visualizations) والبحث المحفوظ (Saved Searches) التي أنشأتها في المهام السابقة.
- اختر الرسوم التي تريدها، وستضاف فوراً إلى اللوحة.
🎨 3. الترتيب والحفظ (Arrange & Save)
- الترتيب: يمكنك سحب وتغيير حجم الرسوم لتناسب ذوقك (مثلاً تكبير الجدول وتصغير المخطط الدائري).
- الحفظ: لا تنسَ الضغط على Save في الأعلى لحفظ اللوحة بالكامل.