از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش ایجاد یک سیستم Python SIEM با استفاده از AI و LLMS برای تجزیه و تحلیل ورود به سیستم و تشخیص ناهنجاری

سرفصلهای مطلب
در این آموزش ، ما یک سیستم آنالیز ورود به سیستم SIEM با طعم ساده و با استفاده از پایتون ایجاد خواهیم کرد. تمرکز ما خواهد بود روی تجزیه و تحلیل ورود به سیستم و تشخیص ناهنجاری.
ما از طریق سیاهههای مربوط به مصرف ، تشخیص ناهنجاری ها با یک مدل یادگیری ماشین سبک و حتی لمس خواهیم کرد روی چگونه سیستم می تواند به طور خودکار پاسخ دهد.
این دست-روی اثبات مفهوم نشان می دهد که چگونه AI می تواند نظارت امنیتی را به روشی عملی و در دسترس تقویت کند.
فهرست مطالب
-
سیستم های SIEM چیست؟
-
پیش نیازهای
-
راه اندازی پروژه
-
روش اجرای تجزیه و تحلیل ورود به سیستم
-
روش ساخت مدل تشخیص ناهنجاری
-
آزمایش و تجسم نتایج
-
امکانات پاسخ خودکار
-
پایان
سیستم های SIEM چیست؟
سیستم های اطلاعات امنیتی و مدیریت رویداد (SIEM) سیستم عصبی مرکزی عملیات امنیتی مدرن است. SIEM برای ارائه بینش در زمان واقعی در مورد حوادث بالقوه ، سیاهههای مربوط به امنیت و رویدادهای امنیتی را از طریق یک محیط IT جمع و همبستگی می کند. این به سازمان ها کمک می کند تا تهدیدات را سریعتر تشخیص دهند و زودتر پاسخ دهند.
این سیستم ها حجم عظیمی از داده های ورود به سیستم – از هشدارهای فایروال گرفته تا سیاهههای مربوط به برنامه را جمع می کنند و آنها را برای علائم مشکل تجزیه و تحلیل می کنند. تشخیص ناهنجاری در این زمینه بسیار مهم است ، و الگوهای غیرمعمول در سیاهههای مربوط می توانند حوادثی را نشان دهند که ممکن است از قوانین استاتیک گذشته باشد. به عنوان مثال ، یک سنبله ناگهانی در درخواست های شبکه ممکن است نشان دهنده حمله DDOS باشد ، در حالی که چندین تلاش برای ورود به سیستم ناکام می تواند به تلاشهای دسترسی غیرمجاز اشاره کند.
AI قابلیت های SIEM را یک قدم جلوتر می برد. با استفاده از مدلهای پیشرفته AI (مانند مدل های بزرگ زبان) ، یک SIEM با قدرت هوش مصنوعی می تواند با هوشمندی جدا شود و سیاههها را تفسیر کند ، بیاموزد که رفتار “عادی” چگونه به نظر می رسد ، و چیزهای “عجیب” را که توجه آن را نشان می دهد ، پرچم گذاری کنید.
در اصل ، هوش مصنوعی می تواند به عنوان یک خلبان هوشمند برای تحلیلگران عمل کند ، ناهنجاری های ظریف و حتی خلاصه ای از یافته ها را به زبان ساده انجام دهد. پیشرفت های اخیر در مدل های بزرگ زبان به SIEM ها اجازه می دهد تا در مورد نقاط بی شماری از داده های بی شماری مانند یک تحلیلگر انسانی – اما با سرعت و مقیاس بسیار بیشتر استدلال کنند. نتیجه یک دستیار قدرتمند امنیتی دیجیتال است که به کاهش سر و صدا و تمرکز کمک می کند روی تهدیدهای واقعی
پیش نیازهای
قبل از شیرجه رفتن ، اطمینان حاصل کنید که موارد زیر را دارید:
-
پایتون 3.x نصب شده است روی سیستم شما نمونه های کد باید در هر نسخه اخیر پایتون کار کنند.
-
آشنایی اساسی با برنامه نویسی پایتون (حلقه ، توابع ، استفاده از کتابخانه ها) و درک سیاههها (به عنوان مثال ، ورود به سیستم به نظر می رسد) مفید خواهد بود.
-
کتابخانه های پایتون: ما از چند کتابخانه مشترک استفاده خواهیم کرد که سبک وزن دارند و به سخت افزار خاصی احتیاج ندارند:
-
پاندا برای کار با داده های اساسی (اگر سیاهههای مربوط به CSV یا فرمت مشابه هستند).
-
numpy برای عملیات عددی.
-
Scikit-Learn برای مدل تشخیص ناهنجاری (به طور خاص ، ما از الگوریتم IsolationForest استفاده خواهیم کرد).
-
-
مجموعه ای از داده های ورود به سیستم برای تجزیه و تحلیل. می توانید از هر پرونده ورود به سیستم (سیاهههای مربوط به سیستم ، سیاهههای مربوط به برنامه و بنابراین استفاده کنید روی) در متن ساده یا قالب CSV. برای نمایش ، ما یک مجموعه داده ورود به سیستم کوچک را شبیه سازی خواهیم کرد تا بتوانید حتی بدون یک پرونده ورود به سیستم آماده ، دنبال کنید.
توجه: اگر کتابخانه های بالا را ندارید ، آنها را از طریق نصب کنید pip:
pip install pandas numpy scikit-learn
راه اندازی پروژه
بیایید یک ساختار ساده پروژه را تنظیم کنیم. یک دایرکتوری جدید برای این پروژه تشخیص ناهنجاری SIEM ایجاد کرده و به داخل آن حرکت کنید. در داخل ، شما می توانید یک اسکریپت پایتون داشته باشید (به عنوان مثال ، siem_anomaly_demo.py
) یا الف Jupyter نوت بوک برای اجرای کد مرحله به مرحله.
اطمینان حاصل کنید که دایرکتوری کار شما شامل داده های ورود به سیستم شما یا می تواند دسترسی داشته باشد. اگر از یک فایل ورود به سیستم استفاده می کنید ، ممکن است ایده خوبی باشد که یک نسخه را در این پوشه پروژه قرار دهید. برای اثبات مفهوم ما ، از آنجا که ما داده های ورود به سیستم مصنوعی ایجاد خواهیم کرد ، به یک پرونده خارجی احتیاج نخواهیم داشت-اما در یک سناریوی واقعی شما.
مراحل تنظیم پروژه:
-
محیط را اولیه کنید – اگر ترجیح می دهید ، یک محیط مجازی برای این پروژه ایجاد کنید (عملکرد اختیاری اما خوب):
python -m venv venv source venv/bin/activate # روی Windows use "venv\Scripts\activate"
سپس بسته های مورد نیاز را در این محیط مجازی نصب کنید.
-
یک منبع داده تهیه کنید – منبع ورود به سیستم را که می خواهید تجزیه و تحلیل کنید ، شناسایی کنید. این می تواند مسیری برای پرونده ورود به سیستم یا بانک اطلاعاتی باشد. اطمینان حاصل کنید که فرمت سیاههها را می دانید (به عنوان مثال ، آیا آنها خطوط جدا شده ، JSON یا متن ساده هستند؟). برای تصویرگری ، ما برخی از ورودی های ورود به سیستم را ایجاد خواهیم کرد.
-
اسکریپت خود را تنظیم کنید یا notebook – پرونده Python خود را باز کنید یا notebookبشر ما با وارد کردن کتابخانه های لازم و تنظیم هرگونه تنظیم (مانند دانه های تصادفی برای تکرارپذیری) شروع خواهیم کرد.
در پایان این تنظیم ، شما باید یک محیط پایتون را برای اجرای کد تجزیه و تحلیل ورود به سیستم SIEM ، و یا یک مجموعه داده ورود واقعی یا قصد شبیه سازی داده ها به همراه من داشته باشید.
اجرای تجزیه و تحلیل ورود به سیستم
در یک سیستم کامل SIEM ، تجزیه و تحلیل ورود به سیستم شامل جمع آوری سیاهههای مربوط از منابع مختلف و تجزیه آنها در قالب یکنواخت برای پردازش بیشتر است. سیاههها اغلب شامل زمینه هایی مانند Timestamp ، سطح شدت ، منبع ، پیام رویداد ، شناسه کاربر ، آدرس IP و SO هستند onبشر اولین کار این است که این سیاهههای مربوط به آن مصرف و پردازش کنید.
1. مصرف ورود به سیستم
اگر سیاهههای مربوط به یک فایل متنی هستند ، می توانید آنها را در پایتون بخوانید. به عنوان مثال ، اگر هر ورودی ورود به سیستم یک خط در پرونده باشد ، می توانید انجام دهید:
with open("my_logs.txt") as f:
raw_logs = f.readlines()
اگر سیاههها ساختار یافته باشند (مثلاً فرمت CSV با ستون ها) ، پاندا می تواند خواندن را تا حد زیادی ساده کند:
import pandas as pd
df = pd.read_csv("my_logs.csv")
print(df.head())
این یک DataFrame به شما می دهد df
با ورودی های ورود به سیستم در ستون ها. اما بسیاری از سیاهههای مربوط به نیمه ساختار یافته هستند (به عنوان مثال ، اجزای جدا شده توسط فضاها یا شخصیت های خاص). در چنین مواردی ، ممکن است شما نیاز به تقسیم هر خط توسط یک تعیین کننده داشته باشید یا از Regex برای استخراج زمینه ها استفاده کنید. به عنوان مثال ، یک خط ورود به سیستم را تصور کنید:
1404-03-06 08:00:00, INFO, User login success, user: admin
این یک جدول زمانی ، سطح ورود به سیستم ، یک پیام و کاربر دارد. ما می توانیم چنین خطوطی را با روش های رشته پایتون تجزیه کنیم:
logs = [
"1404-03-06 08:00:00, INFO, User login success, user: admin",
"1404-03-06 08:01:23, INFO, User login success, user: alice",
"1404-03-06 08:02:45, ERROR, Failed login attempt, user: alice",
# ... (more log lines)
]
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})
# Convert to DataFrame for easier analysis
df_logs = pd.DataFrame(parsed_logs)
print(df_logs.head())
در حال اجرا در بالا روی لیست نمونه ما چیزی مانند:
timestamp level message user
0 1404-03-06 08:00:00 INFO User login success admin
1 1404-03-06 08:01:23 INFO User login success alice
2 1404-03-06 08:02:45 ERROR Failed login attempt alice
...
اکنون ما سیاههها را در یک جدول ساختار داده ایم. در یک سناریوی واقعی ، شما می توانید تمام زمینه های مربوطه را از سیاهههای مربوط خود تجزیه کنید (به عنوان مثال ، آدرس های IP ، کدهای خطا و غیره روی) بستگی به روی آنچه می خواهید تجزیه و تحلیل کنید.
2. پیش پردازش و استخراج ویژگی
با استفاده از سیاهههای مربوط به قالب ساختاری ، مرحله بعدی استخراج ویژگی های تشخیص ناهنجاری است. پیام های ورود به سیستم خام (رشته ها) به خودی خود برای الگوریتم برای یادگیری مستقیم از یک الگوریتم سخت است. ما اغلب ویژگی ها یا دسته بندی های عددی را که قابل اندازه گیری است استخراج می کنیم. برخی از نمونه های ویژگی ها می توانند عبارتند از:
-
شمارش رویداد: تعداد حوادث در دقیقه/ساعت ، تعداد خرابی ورود به سیستم برای هر کاربر ، و بنابراین onبشر
-
مدت یا اندازه: اگر سیاههها شامل مدت زمان یا اندازه داده (به عنوان مثال ، اندازه انتقال پرونده ، زمان اجرای پرس و جو) باشد ، می توان از آن مقادیر عددی مستقیم استفاده کرد.
-
رمزگذاری طبقه بندی شده: سطح ورود به سیستم (اطلاعات ، خطا ، اشکال زدایی) می تواند به اعداد نقشه برداری شود ، یا انواع رویداد خاص می توانند یک داغ رمزگذاری شوند.
برای این اثبات مفهوم ، بیایید تمرکز کنیم روی یک ویژگی عددی ساده: تعداد تلاش های ورود به سیستم در هر دقیقه برای یک کاربر خاص. ما این را به عنوان داده های ویژگی خود شبیه سازی می کنیم.
در یک سیستم واقعی ، شما این کار را با گروه بندی ورودی های ورود به سیستم توسط پنجره زمان و کاربر محاسبه می کنید. هدف این است که مجموعه ای از اعداد را بدست آورید که در آن هر شماره نشان دهنده “چند تلاش ورود به سیستم در یک دقیقه معین” باشد. بیشتر اوقات این تعداد کم خواهد بود (رفتار عادی) ، اما اگر یک دقیقه خاص تعداد تلاش های غیرمعمول زیادی را مشاهده کند ، این یک ناهنجاری است (احتمالاً یک حمله بی رحمانه).
برای شبیه سازی ، ما لیستی از 50 مقدار را نشان می دهیم که رفتار عادی را نشان می دهد ، و سپس چند مقدار را که به طور غیر طبیعی زیاد است اضافه کنیم:
import numpy as np
# Simulate 50 minutes of normal login attempt counts (around 5 per minute روی average)
np.random.seed(42) # for reproducible example
normal_counts = np.random.poisson(lam=5, size=50)
# Simulate anomaly: a spike in login attempts (e.g., an attacker tries 30+ times in a minute)
anomalous_counts = np.array([30, 40, 50])
# Combine the data
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 تلاش داریم – Outliers Clear. این داده های آماده ما برای تشخیص ناهنجاری است. در یک تجزیه و تحلیل ورود به سیستم واقعی ، این نوع داده ها ممکن است از شمارش رویدادها در سیاهههای مربوط به مرور زمان یا استخراج برخی متریک از محتوای ورود به سیستم ناشی شود.
اکنون که داده های ما آماده است ، می توانیم حرکت کنیم روی برای ساخت مدل تشخیص ناهنجاری.
روش ساخت مدل تشخیص ناهنجاری
برای تشخیص ناهنجاری های موجود در داده های مشتق از ورود به سیستم ، ما از یک رویکرد یادگیری ماشین استفاده خواهیم کرد. به طور خاص ، ما از یک جنگل جداسازی استفاده خواهیم کرد – یک الگوریتم محبوب برای تشخیص ناهنجاری بدون نظارت.
جنگل جداسازی با تقسیم تصادفی داده ها و نقاط جداسازی کار می کند. ناهنجاری ها آن نکاتی هستند که به سرعت منزوی می شوند (از دیگران جدا می شوند) ، یعنی در شکاف های تصادفی کمتر. این امر باعث می شود تا بدون نیاز به برچسب ، برای شناسایی فضای باز در یک مجموعه داده عالی باشد (ما لازم نیست که از قبل بدانیم که ورودی های ورود به سیستم “بد” هستند).
چرا جنگل جداسازی؟
-
این کارآمد است و حتی اگر داده های زیادی داشته باشیم خوب کار می کند.
-
این توزیع داده های خاص را فرض نمی کند (برخلاف برخی از روشهای آماری).
-
این یک روش ساده برای به دست آوردن ناهنجاری ها به ما می دهد.
بیایید یک جنگل انزوا را آموزش دهیم روی ما login_attempts
داده ها:
from sklearn.ensemble import IsolationForest
# Prepare the data in the shape the model expects (samples, features)
X = login_attempts.reshape(-1, 1) # each sample is a 1-dimensional [count]
# Initialize the Isolation Forest model
model = IsolationForest(contamination=0.05, random_state=42)
# contamination=0.05 means we expect about 5% of the data to be anomalies
# Train the model روی the data
model.fit(X)
چند یادداشت روی کد:
-
ما تغییر شکل دادیم
login_attempts
به یک آرایه 2DX
با یک ستون ویژگی زیرا Scikit-Learn برای آموزش به یک آرایه 2D نیاز دارد (fit
). -
ما تنظیم کردیم
contamination=0.05
برای ارائه مدل به این نکته که تقریباً 5 ٪ از داده ها ممکن است ناهنجاری باشد. در داده های مصنوعی ما 3 ناهنجاری از 53 امتیاز اضافه کردیم که 5.7 ٪ پوند است ، بنابراین 5 ٪ یک حدس منطقی است. (اگر آلودگی را مشخص نکنید ، الگوریتم مبتنی بر پیش فرض را انتخاب می کند روی فرض یا استفاده از 0.1 پیش فرض در برخی از نسخه ها.) -
random_state=42
فقط قابلیت تکرارپذیری را تضمین می کند.
در این مرحله ، مدل جنگل انزوا آموزش داده شده است روی داده های ما در داخل ، این مجموعه از درختان تصادفی ساخته شده است که داده ها را تقسیم می کند. نقاطی که جداسازی آن دشوار است (یعنی در خوشه متراکم نقاط عادی) در اعماق این درختان به پایان می رسد ، در حالی که نقاطی که به راحتی جدا می شوند (دور) با مسیرهای کوتاه تر به پایان می رسند.
در مرحله بعد ، ما از این مدل استفاده خواهیم کرد تا مشخص شود که کدام نقاط داده غیر عادی تلقی می شوند.
آزمایش و تجسم نتایج
اکنون قسمت مهیج آمده است: با استفاده از مدل آموزش دیده ما برای تشخیص ناهنجاری های موجود در داده های ورود به سیستم. ما مدل پیش بینی مدل را برای هر نقطه داده پیش بینی می کنیم و سپس مواردی را که به عنوان Outliers پرچم گذاری شده اند ، فیلتر کنیم.
# Use the model to predict anomalies
labels = model.predict(X)
# The model outputs +1 for normal points and -1 for anomalies
# Extract the anomaly indices and values
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 بار تلاش های ورود به سیستم را از حد معمول انجام می دهد) ، آشکارساز ناهنجاری می درخشد و کانون توجه قرار می گیرد. روی آن
تجسم نتایج
در یک تجزیه و تحلیل واقعی ، تجسم داده ها و ناهنجاری ها اغلب مفید است. به عنوان مثال ، ما می توانیم ترسیم کنیم login_attempts
مقادیر با گذشت زمان (دقیقه به دقیقه) و ناهنجاری ها را با رنگ دیگری برجسته می کنید.
در این مورد ساده ، یک نمودار خط یک خط عمدتاً مسطح در حدود 3-8 ورود به سیستم در دقیقه با سه سنبله بزرگ در انتها نشان می دهد. این سنبله ها ناهنجاری های ما هستند. اگر این کار را در A انجام دهید می توانید با Matplotlib به این هدف برسید notebook:
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()
برای خروجی مبتنی بر متن همانطور که در اینجا داریم ، نتایج چاپ شده قبلاً تأیید می کند که مقادیر بالا گرفتار شده است. در موارد پیچیده تر ، مدل های تشخیص ناهنجاری نیز برای هر نقطه نمره ناهنجاری را ارائه می دهند (به عنوان مثال ، تا چه حد از محدوده طبیعی فاصله دارد). به عنوان مثال Scikit-Learn’s IsolationForest دارای یک decision_function
روش که نمره را به دست می آورد (جایی که نمرات پایین به معنای غیر طبیعی تر است).
برای سادگی ، ما در اینجا به نمرات نمی پردازیم ، اما خوب است بدانید که می توانید آنها را بازیابی کنید تا با شدت ناهنجاری ها را رتبه بندی کنید.
با کار در تشخیص ناهنجاری ، وقتی یک ناهنجاری پیدا می کنیم چه کاری می توانیم انجام دهیم؟ این ما را به فکر کردن در مورد پاسخ های خودکار سوق می دهد.
امکانات پاسخ خودکار
تشخیص ناهنجاری فقط نیمی از نبرد است – مرحله بعدی پاسخ دادن به آن است. در سیستم های Siem Enterprise ، پاسخ خودکار (که اغلب با SOAR همراه است – امنیت Orchestration، اتوماسیون و پاسخ) می تواند به طور چشمگیری زمان واکنش به حوادث را کاهش دهد.
وقتی یک چیزی غیرمعمول را پرچم می کند ، یک سیم با قدرت هوش مصنوعی چه کاری می تواند انجام دهد؟ در اینجا برخی از امکانات وجود دارد:
-
هشدار: ساده ترین اقدام ارسال هشدار به پرسنل امنیتی است. این می تواند یک ایمیل ، یک پیام SLACK یا ایجاد بلیط در یک سیستم مدیریت حادثه باشد. هشدار حاوی جزئیات ناهنجاری است (به عنوان مثال ، “کاربر آلیس در 1 دقیقه 50 تلاش ورود به سیستم را انجام داد ، که غیر طبیعی است “). Genai می تواند در اینجا با تولید خلاصه ای از زبان طبیعی از این حادثه برای تحلیلگر کمک کند.
-
کاهش خودکار: سیستم های پیشرفته تر ممکن است اقدام مستقیم کنند. به عنوان مثال ، اگر یک آدرس IP رفتار مخرب را در سیاههها نشان دهد ، سیستم می تواند به طور خودکار آن IP را مسدود کند روی فایروال در مثال سنبله ورود به سیستم ، سیستم ممکن است به طور موقت حساب کاربری را قفل کند یا برای تأیید اعتبار اضافی ، با این فرض که ممکن است یک حمله ربات باشد. SIEM های مبتنی بر هوش مصنوعی امروزه در واقع می توانند اقدامات پاسخ از پیش تعریف شده یا حتی گردش کار پیچیده ارکسترات را هنگام شناسایی برخی تهدیدها ایجاد کنند (به AI SIEM مراجعه کنید: چگونه SIEM با AI/ML برای اطلاعات بیشتر در SOC | Exabeam انقلابی می کند).
-
پشتیبانی تحقیقات: همچنین می توان از هوش مصنوعی تولیدی برای جمع آوری خودکار متن استفاده کرد. به عنوان مثال ، پس از تشخیص ناهنجاری ، سیستم می تواند سیاهههای مربوط (حوادث اطراف ، اقدامات دیگر توسط همان کاربر یا از همان IP) را بکشد و گزارش جمع شده را ارائه دهد. این باعث می شود تحلیلگر از جستجوی دستی چندین منبع داده استفاده کند.
اجرای پاسخ های خودکار با دقت مهم است – شما نمی خواهید سیستم نسبت به مثبت کاذب بیش از حد واکنش نشان دهد. یک استراتژی متداول یک پاسخ مرتب است: ناهنجاری های کم اعتماد به نفس فقط ممکن است هشدار را وارد کند یا هشدار کم اولویت را ارسال کند ، در حالی که ناهنجاری های اعتماد به نفس بالا (یا ترکیبی از ناهنجاری ها) اقدامات دفاعی فعال را ایجاد می کند.
در عمل ، یک SIEM با هوش مصنوعی با زیرساخت های شما (از طریق API ، اسکریپت ها و غیره ادغام می شود روی) برای اجرای این اقدامات. برای Python POC ما ، می توانید یک پاسخ خودکار را با عنوان مثلاً چاپ یک پیام یا تماس با یک عملکرد ساختگی در هنگام تشخیص ناهنجاری شبیه سازی کنید. به عنوان مثال:
if len(anomaly_indices) > 0:
print(f"Alert! Detected {len(anomaly_indices)} anomalous events. Initiating response procedures...")
# Here, you could add code to disable a user or notify an admin, etc.
در حالی که تظاهرات ما ساده است ، تصور می شود که این مسئله را افزایش دهید. به عنوان مثال SIEM می تواند ناهنجاری ها را در یک مدل تولیدی بزرگتر که وضعیت را ارزیابی می کند و تصمیم می گیرد ، تغذیه کند روی بهترین دوره عمل (مانند دستیار chatbot ops که کتابهای شما را می شناسد). با پیشرفته تر بودن هوش مصنوعی ، امکان اتوماسیون در حال گسترش است.
پایان
در این آموزش ، ما یک مؤلفه اصلی SIEM با قدرت هوش مصنوعی ایجاد کردیم که داده های ورود به سیستم را وارد می کند ، آن را برای ناهنجاری ها با استفاده از یک مدل یادگیری ماشین تجزیه و تحلیل می کند و رویدادهای غیرمعمول را مشخص می کند که می تواند تهدیدات امنیتی باشد.
ما با تجزیه و تهیه داده های ورود به سیستم شروع کردیم ، سپس از یک مدل جنگل جداسازی برای تشخیص دور در جریان تعداد تلاش برای ورود به سیستم استفاده کردیم. این مدل با موفقیت رفتار خارج از طوفان را بدون هیچ گونه آگاهی از آنچه که یک “حمله” به نظر می رسد پرچم گذاری کرد-این امر صرفاً به آن اعتماد کرد روی انحراف از الگوهای طبیعی آموخته شده.
ما همچنین بحث کردیم که چگونه چنین سیستمی می تواند به ناهنجاری های شناسایی شده پاسخ دهد ، از هشدار دادن به انسان گرفته تا اقدام خودکار.
سیستم های مدرن SIEM که با AI/ML تقویت شده اند در این راستا حرکت می کنند: آنها نه تنها مسائل را تشخیص می دهند ، بلکه به تریاژ نیز کمک می کنند و به آنها پاسخ می دهند. هوش مصنوعی تولیدی با یادگیری از تحلیلگران و ارائه خلاصه ها و تصمیمات هوشمند ، این امر را بیشتر می کند ، و به طور مؤثر به یک دستیار خستگی ناپذیر در مرکز عملیات امنیتی تبدیل می شود.
برای مراحل و پیشرفت های بعدی:
-
می توانید این رویکرد را امتحان کنید روی داده های ورود به سیستم واقعی. به عنوان مثال ، یک فایل ورود به سیستم را بگیرید و از ویژگی هایی مانند “تعداد گزارش های خطا در ساعت” یا “بایت های منتقل شده در هر جلسه” استخراج کنید و تشخیص ناهنجاری را اجرا کنید روی که
-
با الگوریتم های دیگر مانند SVM یک کلاس یا آزمایش کنید Local فاکتور مهم برای تشخیص ناهنجاری برای دیدن روش مقایسه آنها.
-
یک مدل زبان ساده را برای تجزیه خطوط ورود به سیستم یا توضیح ناهنجاری ها درج کنید. به عنوان مثال ، یک LLM می تواند یک ورود به سیستم غیر عادی را بخواند و آنچه را که ممکن است اشتباه باشد ، پیشنهاد کند (“این خطا معمولاً به معنای عدم دستیابی به پایگاه داده است”).
-
ویژگی ها را گسترش دهید: در یک SIEM واقعی ، شما از سیگنال های زیادی به طور همزمان استفاده می کنید (تعداد ورود به سیستم ناموفق ، جغرافیایی IP غیرمعمول ، نادر است process نام در سیاهههای مربوط ، و بنابراین روی). ویژگی ها و داده های بیشتر می تواند زمینه تشخیص را بهبود بخشد.
منتشر شده در 1404-03-07 23:28:16