في هذا البرنامج التعليمي، سنقوم ببناء نظام تحليل سجلات SIEM مبسط بنكهة الذكاء الاصطناعي باستخدام لغة Python. سيكون تركيزنا على تحليل السجلات وكشف الشذوذ.
سنقوم بشرح عملية استيعاب السجلات، وكشف الشذوذ باستخدام نموذج تعلم الآلة المبسط، وحتى سنلمس كيف يمكن للنظام الاستجابة تلقائيًا.
سيوضح هذا البرنامج التجريبي العملي كيف يمكن للذكاء الاصطناعي تعزيز مراقبة الأمان بطريقة عملية ومتاحة.
جدول المحتويات
ما هي أنظمة SIEM؟
أنظمة إدارة معلومات الأمان والأحداث (SIEM) هي الجهاز العصبي المركزي لعمليات الأمان الحديثة. تجمع SIEM وتربط سجلات الأمان والأحداث من جميع بيئة تكنولوجيا المعلومات لتوفير رؤى فورية في الحوادث المحتملة. يساعد ذلك المؤسسات على اكتشاف التهديدات بشكل أسرع والاستجابة في وقت سابق.
تقوم هذه الأنظمة بجمع كميات ضخمة من بيانات السجلات – من تنبيهات جدار الحماية إلى سجلات التطبيق – وتحليلها للكشف عن علامات المشاكل. يعد الكشف عن الشذوذ في هذا السياق أمرًا حاسمًا، حيث يمكن أن تكشف الأنماط غير العادية في السجلات عن حوادث قد تفوت القواعد الثابتة. على سبيل المثال، قد يشير ارتفاع مفاجئ في طلبات الشبكة إلى هجوم DDoS، في حين يمكن أن تشير محاولات تسجيل الدخول الفاشلة المتعددة إلى محاولات الوصول غير المصرح به.
تأخذ الذكاء الاصطناعي قدرات نظام إدارة المعلومات والأمان (SIEM) خطوة إلى الأمام. من خلال استغلال نماذج الذكاء الاصطناعي المتقدمة (مثل النماذج اللغوية الكبيرة)، يمكن لنظام إدارة المعلومات والأمان الذي يعتمد على الذكاء الاصطناعي تحليل السجلات بذكاء وتفسيرها، وتعلم كيفية مظهر “السلوك الطبيعي”، وتحديد “الأمور الغريبة” التي تستحق الاهتمام.
بجوهره، يمكن للذكاء الاصطناعي أن يعمل كمساعد ذكي للمحللين، يكتشف الشذوذ الدقيق وحتى يلخص النتائج بلغة بسيطة. تسمح التطورات الحديثة في مجال النماذج اللغوية الكبيرة لنظم إدارة المعلومات والأمان بمناقشة عدد لا يحصى من نقاط البيانات تمامًا كما يفعل المحلل البشري – لكن بسرعة ونطاق أكبر بكثير. النتيجة هي مساعد أمان رقمي قوي يساعد في تصفية الضجيج والتركيز على التهديدات الحقيقية.
المتطلبات المسبقة
قبل أن نبدأ، تأكد من أن لديك ما يلي:
-
تثبيت Python 3.x على نظامك. يجب أن تعمل أمثلة الشفرة في أي إصدار حديث من Python.
-
المعرفة الأساسية ببرمجة Python (الحلقات، الوظائف، استخدام المكتبات) وفهم السجلات (على سبيل المثال، كيفية مظهر إدخال السجل) ستكون مفيدة.
-
مكتبات بايثون: سنستخدم بعض المكتبات الشائعة التي تتميز بخفة الوزن ولا تتطلب أجهزة خاصة:
-
باندا للتعامل الأساسي مع البيانات (إذا كانت سجلاتك بتنسيق CSV أو تنسيق مشابه).
-
نومباي للعمليات الرقمية.
-
سايكيت-ليرن لنموذج كشف الشذوذ (بشكل خاص، سنستخدم خوارزمية IsolationForest).
-
-
مجموعة من بيانات السجل لتحليلها. يمكنك استخدام أي ملف سجل (سجلات النظام، سجلات التطبيقات، وما إلى ذلك) بتنسيق نص عادي أو CSV. لأغراض العرض، سنقوم بمحاكاة مجموعة بيانات سجلات صغيرة حتى تتمكن من المتابعة حتى بدون ملف سجل جاهز.
ملاحظة: إذا لم يكن لديك المكتبات المذكورة أعلاه، قم بتثبيتها عبر pip:
pip install pandas numpy scikit-learn
إعداد المشروع
لنقم بإعداد هيكل مشروع بسيط. أنشئ دليلًا جديدًا لمشروع كشف الشذوذ SIEM هذا وانتقل إليه. داخل هذا الدليل، يمكنك أن يكون لديك نص بايثون (على سبيل المثال، siem_anomaly_demo.py
) أو دفتر Jupyter لتشغيل الكود خطوة بخطوة.
تأكد من أن دليل العمل الخاص بك يحتوي على بيانات السجل أو يمكنه الوصول إليها. إذا كنت تستخدم ملف سجل، قد يكون من الجيد وضع نسخة في مجلد المشروع هذا. بالنسبة لإثبات المفهوم لدينا، نظرًا لأننا سنقوم بإنشاء بيانات سجلات اصطناعية، فلن نحتاج إلى ملف خارجي — ولكن في سيناريو حقيقي ستحتاج لذلك.
خطوات إعداد المشروع:
-
تهيئة البيئة – إذا كنت تفضل ذلك، قم بإنشاء بيئة افتراضية لهذا المشروع (اختياري ولكنه ممارسة جيدة):
python -m venv venv source venv/bin/activate # على نظام ويندوز، استخدم "venv\Scripts\activate"
ثم قم بتثبيت الحزم المطلوبة في هذه البيئة الافتراضية.
-
إعداد مصدر البيانات – حدد مصدر السجل الذي ترغب في تحليله. يمكن أن يكون ذلك مسارًا لملف سجل أو قاعدة بيانات. تأكد من معرفة تنسيق السجلات (على سبيل المثال، هل هم مفصولون بفواصل، سطور JSON، أم نص عادي؟). لأغراض التوضيح، سنقوم بتصنيع بعض إدخالات السجل.
-
إعداد البرنامج النصي أو الدفتر – قم بفتح ملف Python الخاص بك أو الدفتر. سنبدأ باستيراد المكتبات اللازمة وإعداد أي تكوينات (مثل بذور العشوائية لإعادة تشغيل النتائج).
بحلول نهاية هذا الإعداد، يجب أن يكون لديك بيئة Python جاهزة لتشغيل رمز تحليل سجل SIEM الخاص بنا، وإما مجموعة بيانات سجل حقيقية أو نية لمحاكاة البيانات معي.
تنفيذ تحليل السجل
في نظام SIEM كامل، ينطوي تحليل السجل على جمع السجلات من مصادر مختلفة وتحليلها في تنسيق موحد للمعالجة اللاحقة. السجلات غالبًا ما تحتوي على حقول مثل الطابع الزمني، ومستوى الخطورة، والمصدر، ورسالة الحدث، ومعرف المستخدم، وعنوان IP، وما إلى ذلك. المهمة الأولى هي استيعاب السجلات ومعالجتها.
1. دمج السجلات
إذا كانت سجلاتك في ملف نصي، يمكنك قراءتها في Python. على سبيل المثال، إذا كانت كل إدخال سجل سطرًا في الملف، يمكنك القيام بذلك:
with open("my_logs.txt") as f:
raw_logs = f.readlines()
إذا كانت السجلات منظمة (على سبيل المثال، بتنسيق CSV بأعمدة)، يمكن لـ Pandas تبسيط القراءة بشكل كبير:
import pandas as pd
df = pd.read_csv("my_logs.csv")
print(df.head())
سيعطيك هذا إطار بيانات df
مع إدخالات السجل الخاصة بك منظمة في أعمدة. ولكن العديد من السجلات شبه منظمة (على سبيل المثال، مكونات مفصولة بين المسافات أو الرموز الخاصة). في مثل هذه الحالات، قد تحتاج إلى تقسيم كل سطر باستخدام فاصلة أو استخدام regex لاستخراج الحقول. على سبيل المثال، تخيل سطر سجل:
2025-03-06 08:00:00, INFO, User login success, user: admin
يحتوي هذا على طابع زمني، ومستوى سجل، ورسالة، ومستخدم. يمكننا تحليل مثل هذه الأسطر باستخدام طرق السلاسل في Python:
logs = [
"2025-03-06 08:00:00, INFO, User login success, user: admin",
"2025-03-06 08:01:23, INFO, User login success, user: alice",
"2025-03-06 08:02:45, ERROR, Failed login attempt, user: alice",
# ... (مزيد من أسطر السجل)
]
parsed_logs = []
for line in logs:
parts = [p.strip() for p in line.split(",")]
timestamp = parts[0]
level = parts[1]
message = parts[2]
user = parts[3].split(":")[1].strip() if "user:" in parts[3] else None
parsed_logs.append({"timestamp": timestamp, "level": level, "message": message, "user": user})
# تحويل إلى DataFrame لتحليل أسهل
df_logs = pd.DataFrame(parsed_logs)
print(df_logs.head())
تشغيل ما سبق على قائمتنا النموذجية سيخرج شيئًا مثل:
timestamp level message user
0 2025-03-06 08:00:00 INFO User login success admin
1 2025-03-06 08:01:23 INFO User login success alice
2 2025-03-06 08:02:45 ERROR Failed login attempt alice
...
الآن قمنا بترتيب السجلات في جدول. في سيناريو حقيقي، ستستمر في تحليل جميع الحقول ذات الصلة من سجلاتك (على سبيل المثال، عناوين IP، رموز الأخطاء، وما إلى ذلك) حسب ما تريد تحليله.
2. المعالجة المسبقة واستخراج الميزات
مع السجلات في تنسيق منظم، الخطوة التالية هي اشتقاق ميزات لاكتشاف الشذوذ. رسائل السجل الخام (السلاسل النصية) بمفردها يصعب على الخوارزمية التعلم منها مباشرة. غالبًا ما نستخرج ميزات عددية أو فئات يمكن قياسها. بعض الأمثلة على الميزات يمكن أن تكون:
-
عدد الأحداث: عدد الأحداث في الدقيقة/الساعة، عدد حالات الفشل في تسجيل الدخول لكل مستخدم، وما إلى ذلك.
-
المدة أو الحجم: إذا كانت السجلات تتضمن مددًا أو أحجام بيانات (على سبيل المثال، حجم نقل الملفات، وقت تنفيذ الاستعلام)، يمكن استخدام تلك القيم العددية مباشرة.
- التشفير الفئات: يمكن تعيين مستويات السجل (INFO، ERROR، DEBUG) إلى أرقام، أو يمكن تشفير أنواع الأحداث المحددة باستخدام طريقة الترميز الواحد.
لهذا الدليل التجريبي ، لنركز على ميزة رقمية بسيطة: عدد محاولات تسجيل الدخول في الدقيقة لمستخدم معين. سنحاكي هذا كبيانات الميزة الخاصة بنا.
في نظام حقيقي ، يمكنك حساب ذلك عن طريق تجميع إدخالات السجل المحللة حسب نافذة الوقت والمستخدم. الهدف هو الحصول على مصفوفة من الأرقام حيث يمثل كل رقم “كم عدد محاولات تسجيل الدخول التي حدثت في الدقيقة المعينة”. في معظم الأحيان سيكون هذا العدد منخفضًا (سلوك طبيعي) ، ولكن إذا رأينا عدد غير عادي من المحاولات في دقيقة معينة ، فهذا يعتبر استثناءً (ربما هجوم بالقوة الجبرية).
لمحاكاة ذلك ، سنقوم بإنشاء قائمة تحتوي على 50 قيمة تمثل السلوك الطبيعي ، ثم نضيف بعض القيم التي تكون عالية بشكل غير طبيعي:
import numpy as np
# محاكاة 50 دقيقة من عدد محاولات تسجيل الدخول الطبيعي (حوالي 5 في الدقيقة في المتوسط)
np.random.seed(42) # لمثال قابل لإعادة الإنتاج
normal_counts = np.random.poisson(lam=5, size=50)
# محاكاة استثناء: زيادة في محاولات تسجيل الدخول (على سبيل المثال ، يحاول المهاجم 30+ مرة في الدقيقة)
anomalous_counts = np.array([30, 40, 50])
# دمج البيانات
login_attempts = np.concatenate([normal_counts, anomalous_counts])
print("Login attempts per minute:", login_attempts)
عند تشغيل الأمر أعلاه ، قد يبدو login_attempts
كالتالي:
Login attempts per minute: [ 5 4 4 5 5 3 5 ... 4 30 40 50]
معظم القيم في الأرقام الفردية ، ولكن في النهاية لدينا ثلاث دقائق بعدد 30 و 40 و 50 محاولة – استثناءات واضحة. هذه هي بياناتنا المعدة للكشف عن الاستثناءات. في تحليل السجل الحقيقي ، قد تأتي هذا النوع من البيانات من عد الأحداث في السجلات على مر الزمن أو استخلاص بعض المقاييس من محتوى السجل.
الآن بمجرد أن تكون بياناتنا جاهزة ، يمكننا المضي قدمًا في بناء نموذج الكشف عن الاستثناءات.
كيفية بناء نموذج كشف الشذوذ
لكشف الشذوذ في بياناتنا المُستمدة من السجل، سنستخدم نهج تعلم الآلة. على وجه التحديد، سنستخدم غابة العزلة – وهو خوارزمية شهيرة لكشف الشذوذ غير المراقب.
تعمل غابة العزلة عن طريق تقسيم البيانات عشوائيًا وعزل النقاط. الشذوذ هي تلك النقاط التي تُعزل (تُفصل عن الآخرين) بسرعة، أي، في عدد أقل من التقسيمات العشوائية. هذا يجعلها رائعة لتحديد القيم الشاذة في مجموعة بيانات دون الحاجة إلى أي علامات (لا يجب علينا معرفة مسبقًا أي سجلات دخول هي “سيئة”).
لماذا غابة العزلة؟
-
إنها فعالة وتعمل بشكل جيد حتى لو كان لدينا الكثير من البيانات.
-
لا تفترض أي توزيع محدد للبيانات (عكس بعض الطرق الإحصائية).
-
تمنحنا طريقة مباشرة لتسجيل الشذوذ.
لنقم بتدريب غابة العزلة على بيانات محاولات الدخول login_attempts
:
from sklearn.ensemble import IsolationForest
# قم بتحضير البيانات بالشكل الذي يتوقعه النموذج (عينات، ميزات)
X = login_attempts.reshape(-1, 1) # كل عينة هي مصفوفة 1D [عدد]
# قم بتهيئة نموذج الغابة المعزولة
model = IsolationForest(contamination=0.05, random_state=42)
# contamination=0.05 يعني نتوقع حوالي 5% من البيانات أن تكون تواريخ
# قم بتدريب النموذج على البيانات
model.fit(X)
ملاحظات على الشيفرة:
-
لقد قمنا بتغيير شكل
login_attempts
إلى مصفوفة 2DX
بعمود ميزة واحد لأن scikit-learn يتطلب مصفوفة 2D للتدريب (fit
). -
قمنا بتعيين
contamination=0.05
لإعطاء النموذج تلميح بأن حوالي 5% من البيانات قد تكون تواريخ. في البيانات الاصطناعية الخاصة بنا، أضفنا 3 تواريخ من بين 53 نقطة، وهو حوالي 5.7%، لذلك 5% هو تخمين معقول. (إذا لم تحدد contamination، ستختار الخوارزمية قيمة افتراضية بناءً على افتراض معين أو تستخدم قيمة افتراضية تبلغ 0.1 في بعض الإصدارات.) -
random_state=42
يضمن فقط إمكانية تكرار النتائج.
في هذه المرحلة ، تم تدريب نموذج الغابة المعزولة على بياناتنا. داخليًا ، قام ببناء مجموعة من الأشجار العشوائية التي تقسم البيانات. النقاط التي يصعب عزلها (أي في عنقود النقاط العادية الكثيفة) تنتهي بعمق في هذه الأشجار ، بينما تنتهي النقاط التي يسهل عزلها (النوافذ) بمسارات أقصر.
بعد ذلك ، سنستخدم هذا النموذج لتحديد النقاط التي يعتبرها غريبة.
اختبار النتائج وتصورها
والآن يأتي الجزء المثير: استخدام نموذجنا المدرب لاكتشاف الشواذ في بيانات السجل. سنطلب من النموذج توقع التصنيفات لكل نقطة بيانات ثم تصفية تلك التي تم وضع علاماتها كشواذ.
# استخدام النموذج للكشف عن الشواذ
labels = model.predict(X)
# النموذج ينتج +1 للنقاط العادية و -1 للشواذ
# استخراج مؤشرات الشواذ والقيم
anomaly_indices = np.where(labels == -1)[0]
anomaly_values = login_attempts[anomaly_indices]
print("Anomaly indices:", anomaly_indices)
print("Anomaly values (login attempts):", anomaly_values)
في حالتنا ، نتوقع أن تكون الشواذ هي الأرقام الكبيرة التي أدخلناها (30 ، 40 ، 50). قد يبدو الإخراج مثل:
Anomaly indices: [50 51 52]
Anomaly values (login attempts): [30 40 50]
حتى بدون معرفة أي شيء عن “محاولات تسجيل الدخول” على وجه التحديد ، اعترفت غابة العزل بتلك القيم كما لو كانت غير متوافقة مع بقية البيانات.
هذه هي قوة كشف الشذوذ في سياق الأمان: نحن لا نعرف دائمًا كيف ستبدو الهجمة الجديدة، لكن إذا تسببت في أن تنحرف الأمور بعيدًا عن الأنماط الطبيعية (مثل مستخدم يقوم فجأة بمحاولة تسجيل الدخول أكثر بـ 10 مرات من المعتاد)، يضيء كاشف الشذوذ الضوء عليها.
تصوير النتائج
في التحليل الحقيقي، من المفيد في كثير من الأحيان تصوير البيانات والشذوذ. على سبيل المثال، يمكننا رسم قيم محاولات_الدخول
مع مرور الوقت (بالدقيقة) وتسليط الضوء على الشذوذ بلون مختلف.
في هذه الحالة البسيطة، سيُظهر مخطط الخط خطًا مسطحًا بشكل عام حول 3-8 تسجيلات/دقيقة مع ثلاث ذروات ضخمة في النهاية. تلك الذروات هي شذوذنا. يمكنك تحقيق هذا باستخدام Matplotlib إذا كنت تقوم بتشغيل هذا في دفتر ملاحظات:
import matplotlib.pyplot as plt
plt.plot(login_attempts, label="Login attempts per minute")
plt.scatter(anomaly_indices, anomaly_values, color='red', label="Anomalies")
plt.xlabel("Time (minute index)")
plt.ylabel("Login attempts")
plt.legend()
plt.show()
بالنسبة لإخراج النص كما هو الحال هنا، فإن النتائج المطبوعة تؤكد بالفعل أن القيم العالية تم التقاطها. في الحالات الأكثر تعقيدًا، توفر نماذج كشف الشذوذ أيضًا درجة شذوذ لكل نقطة (على سبيل المثال، مدى اختلافها عن النطاق الطبيعي). على سبيل المثال، يحتوي IsolationForest في Scikit-learn على طريقة decision_function
تعيد درجة (حيث تعني الدرجات المنخفضة وجود أكثر غير طبيعي).
لأسباب بساطة، لن نتعمق في الدرجات هنا، ولكن من الجيد معرفة أنه يمكنك استردادها لتصنيف الشذوذ حسب الخطورة.
مع عملية كشف الشذوذ تعمل، ماذا يمكننا فعله عند العثور على شذوذ؟ وهذا يقودنا إلى التفكير في الاستجابات الآلية.
إمكانيات الاستجابة الآلية
الكشف عن الشذوذ هو نصف المعركة فقط – والخطوة التالية هي الرد عليه. في أنظمة SIEM المؤسسية، يمكن أن يقلل الاستجابة الآلية (المرتبطة غالبًا بـ SOAR – تنسيق الأمن، والأتمتة، والاستجابة) بشكل كبير من وقت التفاعل مع الحوادث.
ماذا يمكن أن تفعل SIEM المدعومة بالذكاء الاصطناعي عندما تشير إلى شيء غير عادي؟ إليك بعض الاحتمالات:
-
إخطار: الإجراء الأبسط هو إرسال إخطار إلى موظفي الأمن. يمكن أن يكون هذا بريدًا إلكترونيًا، أو رسالة على Slack، أو إنشاء تذكرة في نظام إدارة الحوادث. سيحتوي الإخطار على تفاصيل الشذوذ (على سبيل المثال، “المستخدم أليس كان لديه 50 محاولة تسجيل دخول فاشلة في دقيقة واحدة، وهو أمر غير عادي”). يمكن لـ GenAI المساعدة هنا من خلال إنشاء ملخص واضح بلغة طبيعية للحادث للمحلل.
-
التخفيف الآلي: قد تتخذ الأنظمة الأكثر تقدمًا إجراءات مباشرة. على سبيل المثال، إذا كان عنوان IP يظهر سلوكًا خبيثًا في السجلات، يمكن للنظام أن يقوم تلقائيًا بحظر ذلك العنوان على جدار الحماية. في مثال زيادة تسجيل الدخول لدينا، قد يقوم النظام بقفل حساب المستخدم مؤقتًا أو يطلب مصادقة إضافية، على افتراض أنه قد يكون هجومًا من برامج الروبوت. يمكن لأنظمة SIEM المعتمدة على الذكاء الاصطناعي اليوم بالفعل تفعيل إجراءات استجابة محددة مسبقًا أو حتى تنسيق سير عمل معقد عندما يتم اكتشاف تهديدات معينة (راجع SIEM بالذكاء الاصطناعي: كيف يقوم SIEM مع الذكاء الاصطناعي/تعلم الآلة بإحداث ثورة في مركز العمليات الأمنية | Exabeam لمزيد من المعلومات).
-
دعم التحقيق: يمكن أيضًا استخدام الذكاء الاصطناعي الإنشائي لجمع السياق تلقائيًا. على سبيل المثال، عند اكتشاف الشذوذ، يمكن للنظام استحضار السجلات ذات الصلة (الأحداث المحيطة، الإجراءات الأخرى التي يقوم بها نفس المستخدم أو من نفس عنوان IP) وتقديم تقرير مجمع. يوفر ذلك على المحلل من الاستعلام يدويًا عن مصادر البيانات المتعددة.
من المهم تنفيذ الردود التلقائية بعناية — فلا تريد أن يتفاعل النظام بشكل مفرط مع الايجابيات الزائفة. إستراتيجية شائعة هي الرد المتدرج: قد تقوم الانحرافات ذات الثقة المنخفضة بتسجيل تحذير أو إرسال تنبيه منخفض الأولوية، بينما تقوم الانحرافات ذات الثقة العالية (أو تجميعات الانحرافات) بتنشيط تدابير الدفاع النشطة.
عمليًا، سيتكامل نظام SIEM مدعوم بالذكاء الاصطناعي مع بنية البنية التحتية الخاصة بك (عبر واجهات برمجة التطبيقات، وسكربتات، وما إلى ذلك) لتنفيذ هذه الإجراءات. بالنسبة لنموذج البرمجة بلغة Python الخاص بنا، يمكنك محاكاة رد تلقائي عن طريق، على سبيل المثال، طباعة رسالة أو استدعاء وظيفة وهمية عند اكتشاف انحراف. على سبيل المثال:
if len(anomaly_indices) > 0:
print(f"Alert! Detected {len(anomaly_indices)} anomalous events. Initiating response procedures...")
# هنا، يمكنك إضافة كود لتعطيل مستخدم أو إخطار مسؤول، وما إلى ذلك.
على الرغم من أن عرضنا بسيط، إلا أنه من السهل تخيل توسيع نطاقه. يمكن أن يقوم نظام SIEM، على سبيل المثال، بتغذية الانحرافات في نموذج توليدي أكبر يقيم الوضع ويقرر على أفضل سبيل للعمل (مثل مساعد عمليات بوت دردشة يعرف دليلك العملي). تتوسع الإمكانيات للتأتين تلقائيًا مع تطور الذكاء الاصطناعي.
الاستنتاج
في هذا البرنامج التعليمي، قمنا ببناء مكون أساسي لنظام SIEM مدعوم بالذكاء الاصطناعي يقوم بامتصاص بيانات السجل، وتحليلها للانحرافات باستخدام نموذج تعلم الآلة، وتحديد الأحداث الغير عادية التي يمكن أن تمثل تهديدات أمنية.
بدأنا بتحليل وإعداد بيانات السجل، ثم استخدمنا نموذج Isolation Forest لاكتشاف القيم الشاذة في تسلسل عدد محاولات تسجيل الدخول. نجح النموذج في تسمية السلوك الخارج عن النمط بنجاح دون أي معرفة سابقة بما يبدو عليه “الهجوم” — فاعتمد تمامًا على الانحرافات عن الأنماط الطبيعية المعروفة.
ناقشنا أيضًا كيف يمكن لنظام كهذا أن يستجيب للأنomalies المكتشفة، من تنبيه البشر إلى اتخاذ إجراء تلقائي.
تتحرك أنظمة SIEM الحديثة المعززة بالذكاء الاصطناعي/تعلم الآلة في هذا الاتجاه: فهي لا تكتشف المشكلات فحسب، بل تساعد أيضًا في تصنيفها والاستجابة لها. يعزز الذكاء الاصطناعي التوليدي ذلك من خلال التعلم من المحللين وتقديم ملخصات وقرارات ذكية، مما يجعلها مساعدًا لا يكل في مركز عمليات الأمن.
بالنسبة للخطوات التالية والتحسينات:
-
يمكنك تجربة هذا النهج على بيانات سجلات حقيقية. على سبيل المثال، خذ ملف سجل نظام واستخراج ميزة مثل “عدد سجلات الأخطاء في الساعة” أو “عدد البايتات المنقولة لكل جلسة” وتشغيل اكتشاف الشذوذ على ذلك.
-
جرب خوارزميات أخرى مثل SVM من الفئة الواحدة أو عامل الشذوذ المحلي لاكتشاف الشذوذ لترى كيف تقارن.
-
قم بتضمين نموذج لغة بسيط لتحليل خطوط السجل أو لشرح الشذوذ. على سبيل المثال، يمكن لنموذج اللغة الكبير قراءة إدخال سجل شاذ واقتراح ما قد يكون خطأ (“هذا الخطأ يعني عادة أن قاعدة البيانات غير قابلة للوصول”).
-
توسيع الميزات: في نظام إدارة معلومات الأمان الحقيقي، ستستخدم العديد من الإشارات في وقت واحد (عدد محاولات تسجيل الدخول الفاشلة، الموقع الجغرافي غير المعتاد لعنوان IP، أسماء العمليات النادرة في السجلات، وما إلى ذلك). يمكن أن تحسن المزيد من الميزات والبيانات السياق للكشف.
Source:
https://www.freecodecamp.org/news/how-to-create-a-python-siem-system-using-ai-and-llms/