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

أساسيات تحليل السجلات باستخدام بايثون

 


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


📌 المقدمة

"لقد انتهى عصر البحث اليدوي في مئات ملفات السجلات (Logs) للعثور على أثر اختراق. حان الوقت لأتمتة هذه العملية." 

في المقال السابق، تعرفنا على أهمية تحليل البيانات الأمنية. اليوم، ننتقل إلى التطبيق العملي، ونتعلم كيف نستخدم لغة بايثون (Python) لتحليل السجلات الأمنية. بايثون هي الأداة المفضلة لمحللي الأمن لأنها:

  1. سهلة التعلم والكتابة.
  2. تمتلك مكتبات قوية لمعالجة البيانات وتحليلها.
  3. تتيح أتمتة المهام المتكررة، مما يوفر وقت المحللين.

في هذا المقال، سنبني معاً أداة بسيطة لتحليل سجلات جدار الحماية (Firewall Logs)، وسنستخرج منها معلومات قيمة مثل: أكثر العناوين IP هجوماً، وأكثر المنافذ استهدافاً.

🛠️ القسم الأول: بيئة العمل والأدوات المطلوبة

قبل كتابة الكود، تأكدي من تثبيت التالي على جهازك:

  1. لغة بايثون: الإصدار 3.7 أو أحدث.
  2. مكتبة Pandas: لمعالجة وتحليل البيانات (تُثبت بأمر pip install pandas).
  3. مكتبة Matplotlib (اختياري): لرسم الرسوم البيانية (تُثبت بـ pip install matplotlib).
  4. محرر كود (IDE): مثل VS Code أو Jupyter Notebook.

ملاحظة: المثال التالي يعمل على أي ملف سجلات نصي (TXT أو CSV) يحتوي على سجلات جدار حماية بصيغة موحدة، مثل سجلات pfSense أو Cisco ASA.

🐍 القسم الثاني: قراءة ملف السجلات وفهم بنيته

لنفترض أن لدينا ملف سجلات باسم firewall.log يحتوي على سطور بالصيغة التالية:

2026-08-31 10:15:23, ALLOW, 192.168.1.10, 8.8.8.8, 443, TCP
2026-08-31 10:15:25, DENY, 10.0.0.5, 203.0.113.10, 22, TCP
2026-08-31 10:15:30, ALLOW, 192.168.1.20, 1.1.1.1, 53, UDP

نبدأ بقراءة الملف وعرض أول 5 أسطر لفهم البيانات:

import pandas as pd

# قراءة الملف مع تحديد أسماء الأعمدة
columns = ['timestamp', 'action', 'src_ip', 'dest_ip', 'dest_port', 'protocol']
df = pd.read_csv('firewall.log', names=columns, header=None)

# عرض أول 5 سجلات
print(df.head())

🔍 القسم الثالث: تحليل البيانات واستخراج الأنماط

الآن، لنستخرج معلومات أمنية مهمة من هذه البيانات.

1. إحصاءات عامة

  • عدد السجلات الكلي:
print(f"إجمالي السجلات: {len(df)}")
  • عدد مرات السماح (ALLOW) والرفض (DENY):
print(df['action'].value_counts())

2. أكثر عناوين IP مصدراً للهجمات

نفترض أن عناوين IP المكررة التي تظهر في سجلات الرفض (DENY) قد تكون مصدر هجمات محتملة:

# تصفية سجلات الرفض فقط
deny_logs = df[df['action'] == 'DENY']

# أكثر 5 عناوين مصدر تسبباً في الرفض
top_attackers = deny_logs['src_ip'].value_counts().head(5)
print("أكثر المهاجمين تكراراً:")
print(top_attackers)

3. أكثر المنافذ استهدافاً

top_ports = deny_logs['dest_port'].value_counts().head(5)
print("أكثر المنافذ استهدافاً:")
print(top_ports)

📊 القسم الرابع: تصور البيانات (اختياري)

لرسم بياني يوضح أكثر المهاجمين تكراراً:

import matplotlib.pyplot as plt

top_attackers.plot(kind='bar', title='أكثر عناوين IP هجوماً')
plt.xlabel('عنوان IP المصدر')
plt.ylabel('عدد محاولات الرفض')
plt.show()

💡 القسم الخامس: تطوير الأداة (خطوات عملية)

يمكنك تطوير هذه الأداة البسيطة بعدة طرق:

  1. إضافة تنبيهات: إذا تكرر نفس عنوان IP في سجلات الرفض أكثر من 100 مرة خلال ساعة، أرسل تنبيهاً (عبر بريد إلكتروني أو واتساب).
  2. تحليل زمني: حدد ساعات الذروة للهجمات.
  3. التكامل مع قوائم حظر (Blacklists): أضف عنوان IP الذي يتكرر إلى قائمة الحظر تلقائياً.

مثال لكود التنبيه البسيط:

# إذا تجاوز عدد محاولات الرفض من IP معين الحد المحدد
threshold = 10
suspicious_ips = top_attackers[top_attackers > threshold]
if not suspicious_ips.empty:
    print("⚠️ تنبيه: عناوين IP مشبوهة:")
    print(suspicious_ips)

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

تعلمت اليوم كيف تحول سجلات جدار الحماية الخام إلى معلومات استخباراتية باستخدام بايثون. هذه المهارة هي جوهر تحليل البيانات الأمنية، وستمكنك من اكتشاف التهديدات المخفية وأتمتة المهام الروتينية.

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

قم بتحميل ملف سجلات من أحد أنظمتك (أو استخدم ملفاً تجريبياً من الإنترنت)، وطبق الكود الذي تعلمناه. غيّر عتبة التنبيه (Threshold) ولاحظ النتائج.


📚 سلسلة "تحليل البيانات الأمنية":
👉 المقال السابق | 👈 المقال القادم 


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

جربت الكود؟ واجهتك أي مشكلة؟ شاركني نتائج تحليلك الأولي في التعليقات، وأخبرني ما هو مصدر السجلات الذي تستخدمه!


الكلمات المفتاحية المقترحة: تحليل سجلات، بايثون، أمن سيبراني، Pandas، جدار حماية، اكتشاف التهديدات.