الذكاء الاصطناعي وتحليل البيانات أمن سيبراني

اكتشاف الحالات الشاذة باستخدام خوارزميات التعلم الآلي



📌 سلسلة "تحليل البيانات الأمنية":
➡️ المقال السابق: تصور هجمات الشبكة باستخدام Power BI
📄 أنت الآن في: اكتشاف الحالات الشاذة باستخدام خوارزميات التعلم الآلي
⬅️ المقال القادم: تحليل حادثة أمنية: دراسة حالة من البداية للنهاية


📌 المقدمة

"الهجمات السيبرانية المتقدمة لا تترك أثراً واضحاً، بل تظهر كحالات شاذة دقيقة في سلوك الشبكة. التعلم الآلي هو العدسة المكبرة التي تكشف هذه الشذوذ."

في المقالات السابقة، تعلمنا كيف نحلل السجلات ونصورها. لكن ماذا عن التهديدات التي لا تترك توقيعاً معروفاً؟ هنا يأتي دور اكتشاف الحالات الشاذة (Anomaly Detection) باستخدام التعلم الآلي (Machine Learning).

سنتعلم في هذا المقال:

  • ما هي الحالات الشاذة ولماذا هي مهمة في الأمن السيبراني.
  • خوارزميتين عمليتين للكشف: Isolation Forest و Z-Score.
  • تطبيق الكود باستخدام بايثون لاكتشاف الأنشطة غير الطبيعية في سجلات الشبكة.

🔍 القسم الأول: ما هي الحالات الشاذة؟

الحالة الشاذة (Outlier أو Anomaly) هي نقطة بيانات تختلف بشكل كبير عن باقي البيانات. في سياق الأمن، قد تكون:

  • حجم بيانات غير طبيعي: جهاز يرسل كمية بيانات أكبر من المعتاد (دليل على تسرب بيانات).
  • اتصال في وقت غير معتاد: محاولة وصول ليلاً من عنوان IP خارجي.
  • نمط سلوكي مختلف: مستخدم يصل إلى ملفات لم يسبق له الوصول إليها.

التعلم الآلي يمكنه تعلم "السلوك الطبيعي" للشبكة، ثم وضع علامة على أي سلوك ينحرف عن هذا النمط.

🛠️ القسم الثاني: خوارزمية Isolation Forest (نهج الأشجار العشوائية)

Isolation Forest هي خوارزمية تعلم آلي غير مراقب (Unsupervised) مصممة خصيصاً لاكتشاف الشذوذ. فكرتها بسيطة: الحالات الشاذة تكون "أسهل في العزل" عن باقي البيانات.

مميزاتها:

  • تعمل بكفاءة مع البيانات عالية الأبعاد.
  • لا تحتاج إلى بيانات مصنفة (غير مراقب).
  • سريعة وقابلة للتوسع.

كيف تطبقها في بايثون؟

لنفترض أن لدينا بيانات سجلات الشبكة (كمية البايتات المنقولة، عدد الحزم، مدة الاتصال). سنستخدم هذه الأعمدة لاكتشاف الشذوذ.

import pandas as pd
from sklearn.ensemble import IsolationForest

# تحميل البيانات (مثال)
df = pd.read_csv('network_traffic.csv')

# اختيار الأعمدة الرقمية للتحليل
features = ['bytes_sent', 'packets_count', 'duration']
X = df[features]

# تدريب النموذج
model = IsolationForest(contamination=0.05, random_state=42)
df['anomaly_score'] = model.fit_predict(X)

# النتيجة: -1 تعني شاذة، 1 تعني طبيعية
anomalies = df[df['anomaly_score'] == -1]
print(f"عدد الحالات الشاذة: {len(anomalies)}")

📊 القسم الثالث: الطريقة الإحصائية (Z-Score)

طريقة Z-Score أبسط وتعتمد على الإحصاء. تفترض أن البيانات تتبع توزيعاً طبيعياً، وتعتبر أي نقطة تبعد أكثر من 3 انحرافات معيارية عن المتوسط حالة شاذة.

import numpy as np

# حساب Z-Score لعمود bytes_sent
mean = df['bytes_sent'].mean()
std = df['bytes_sent'].std()
df['z_score'] = (df['bytes_sent'] - mean) / std

# تحديد العتبة (مثلاً 3)
threshold = 3
anomalies_z = df[np.abs(df['z_score']) > threshold]
print(f"عدد الحالات الشاذة حسب Z-Score: {len(anomalies_z)}")

💡 القسم الرابع: خطوات عملية لتطبيق الكشف

  1. جمع البيانات: اجمع سجلات الشبكة أو أنظمة الأمن (مثل سجلات جدار الحماية، DNS، VPN).
  2. اختيار الميزات: حدد الأعمدة الرقمية ذات الصلة (مثل حجم البيانات، عدد الحزم، مدة الاتصال).
  3. التطبيق: طبق Isolation Forest أو Z-Score على البيانات.
  4. التحقيق: راجع الحالات الشاذة المكتشفة وتحقق من كونها تهديدات حقيقية أم إنذارات كاذبة.
  5. التطوير: عدّل العتبة (Contamination أو Threshold) بناءً على نتائج التحقيق.

🏁 الخاتمة والخطوة العملية

تعلمت اليوم كيف تكتشف الحالات الشاذة في الشبكة باستخدام خوارزميات التعلم الآلي والإحصاء. هذه المهارة تمكنك من اكتشاف التهديدات الخفية التي قد تفوتها أدوات الأمن التقليدية.

الخطوة العملية:

طبّق Isolation Forest على بيانات سجلاتك الحقيقية. ابدأ بعتبة (contamination) منخفضة (مثل 0.01) وزدها تدريجياً حتى تجد التوازن المناسب بين اكتشاف التهديدات وتقليل الإنذارات الكاذبة.

🔗 الروابط الداخلية


👉 المقال السابق: تصور هجمات الشبكة باستخدام Power BI | 👈 المقال القادم: تحليل حادثة أمنية: دراسة حالة من البداية للنهاية

الدعوة للتفاعل:

ما هي التحديات التي واجهتك في اكتشاف الحالات الشاذة؟ هل استخدمت أي خوارزمية أخرى؟ شاركنا تجربتك!


الكلمات المفتاحية المقترحة: حالات شاذة، تعلم آلي، Isolation Forest، Z-Score، أمن سيبراني، تحليل البيانات الأمنية.