📘 راهنمای آموزشی هفته دوم

Event Types، Tags، Macros و Lookup Files

در هفته اول با عادی‌سازی داده‌ها و آماده‌سازی لاگ‌های FortiGate آشنا شدیم. این هفته به ابزارهای طبقه‌بندی، غنی‌سازی و خودکارسازی تحلیل می‌پردازیم که به تحلیلگران امنیتی کمک می‌کنند داده‌ها را سریع‌تر تفسیر کنند، الگوهای تکراری را ذخیره کنند و اطلاعات تکمیلی مانند لیست تهدیدات را به لاگ‌ها اضافه نمایند.

۱. Event Types (انواع رویداد)

تعریف: Event Type یک جستجوی ذخیره‌شده با نام مشخص است که رویدادهای دارای یک الگوی خاص را دسته‌بندی می‌کند. پس از تعریف، می‌توان با استفاده از عبارت eventtype=نام در جستجو، به‌سرعت به آن مجموعه از رویدادها دست یافت.

کاربرد در امنیت: مثلاً تعریف Event Type برای «تلاش‌های ناموفق ورود» یا «ترافیک مشکوک به پورت‌های غیرعادی». به‌جای نوشتن کوئری طولانی، تحلیلگر فقط eventtype=brute_force_attempts را می‌نویسد.

مسیر ساخت در Splunk Web: Settings → Event types → New Event Type

۲. Tags (برچسب‌ها)

تعریف: Tag یک برچسب کلید-مقدار است که می‌تواند به فیلدها، مقادیر فیلد یا Event Type ها اختصاص یابد. به کمک Tag ها می‌توان چندین فیلد یا رویداد را تحت یک نام معنایی گروه‌بندی کرد.

ساختار: معمولاً به‌صورت tag::نام‌برچسب در جستجو استفاده می‌شود. مثلاً tag::suspicious تمام رویدادهایی را نشان می‌دهد که با این Tag برچسب خورده‌اند.

کاربرد: برچسب‌گذاری IPهای مشکوک، کشورهای پرخطر، یا Event Type های مهم. این کار باعث یکپارچگی و سادگی جستجوها می‌شود.

۳. Macros (ماکروها)

تعریف: Macro یک قطعه کد SPL قابل استفاده مجدد است که می‌تواند ورودی (آرگومان) دریافت کند و در کوئری‌ها با علامت backtick فراخوانی شود: `macro_name(arg)`.

کاربرد: کاهش تکرار، استانداردسازی کوئری‌ها و ساده‌سازی نگهداری. مثلاً یک Macro به نام brute_force_srcip(threshold) می‌تواند آستانه تعداد تلاش ناموفق را بگیرد و IPهای مشکوک را برگرداند.

مسیر ساخت: Settings → Advanced search → Search macros → New Macro

۴. Lookup Files (فایل‌های جستجو)

تعریف: Lookup ها امکان غنی‌سازی نتایج جستجو با داده‌های خارجی را فراهم می‌کنند. رایج‌ترین نوع، CSV Lookup است که یک فایل CSV را با فیلدهای موجود در رویدادها تطبیق می‌دهد و فیلدهای جدیدی به نتایج اضافه می‌کند.

انواع:

کاربرد امنیتی: اضافه کردن سطح تهدید (threat_level)، کشور یا مالکیت IP به هر رویداد. مثلاً اگر فایل malicious_ips.csv شامل IPهای مخرب باشد، با Lookup می‌توانیم در هر جستجو بلافاصله IPهای مخرب را علامت‌گذاری کنیم.

🎯 سه چالش ارزیابی

🕵️ چالش اول – تفسیر Macro و Event Type

فرض کنید Event Type زیر تعریف شده است:

index=firewall sourcetype=fortigate action=timeout

و Macro زیر نیز ساخته شده است:

[brute_force_srcip(threshold)]
search index=firewall sourcetype=fortigate action=timeout
| stats count by srcip
| where count >= $threshold$

توضیح دهید تفاوت این دو چیست و هر کدام در چه شرایطی استفاده می‌شوند. اگر بخواهید IPهایی با حداقل ۵ تلاش ناموفق را بیابید، کدام را انتخاب می‌کنید؟

🛠️ چالش دوم – ساخت Lookup

یک فایل CSV با نام malicious_ips.csv دارید که شامل دو ستون ip و threat_level است. با استفاده از Lookup، کوئری زیر را طوری تکمیل کنید که IPهای مخرب با سطح تهدید high را نمایش دهد:

index=firewall sourcetype=fortigate
| lookup malicious_ips ip AS srcip OUTPUT threat_level
| ____________________

🧠 چالش سوم – پرسش مفهومی

چرا استفاده از Tag و Event Type در یک SOC بزرگ توصیه می‌شود؟ اگر تحلیلگران هر کدام کوئری‌های شخصی خود را بنویسند و هیچ استانداردی برای نام‌گذاری رویدادها وجود نداشته باشد، چه مشکلاتی در فرایند تشخیص و پاسخ به رخداد ایجاد می‌شود؟

🛡️ پایان راهنمای آموزشی هفته دوم | طراحی شده برای کارگاه تخصصی اسپلانک