Event Types، Tags، Macros و Lookup Files
در هفته اول با عادیسازی دادهها و آمادهسازی لاگهای FortiGate آشنا شدیم. این هفته به ابزارهای طبقهبندی، غنیسازی و خودکارسازی تحلیل میپردازیم که به تحلیلگران امنیتی کمک میکنند دادهها را سریعتر تفسیر کنند، الگوهای تکراری را ذخیره کنند و اطلاعات تکمیلی مانند لیست تهدیدات را به لاگها اضافه نمایند.
تعریف: Event Type یک جستجوی ذخیرهشده با نام مشخص است که رویدادهای دارای یک الگوی خاص را دستهبندی میکند. پس از تعریف، میتوان با استفاده از عبارت eventtype=نام در جستجو، بهسرعت به آن مجموعه از رویدادها دست یافت.
کاربرد در امنیت: مثلاً تعریف Event Type برای «تلاشهای ناموفق ورود» یا «ترافیک مشکوک به پورتهای غیرعادی». بهجای نوشتن کوئری طولانی، تحلیلگر فقط eventtype=brute_force_attempts را مینویسد.
مسیر ساخت در Splunk Web: Settings → Event types → New Event Type
تعریف: Tag یک برچسب کلید-مقدار است که میتواند به فیلدها، مقادیر فیلد یا Event Type ها اختصاص یابد. به کمک Tag ها میتوان چندین فیلد یا رویداد را تحت یک نام معنایی گروهبندی کرد.
ساختار: معمولاً بهصورت tag::نامبرچسب در جستجو استفاده میشود. مثلاً tag::suspicious تمام رویدادهایی را نشان میدهد که با این Tag برچسب خوردهاند.
کاربرد: برچسبگذاری IPهای مشکوک، کشورهای پرخطر، یا Event Type های مهم. این کار باعث یکپارچگی و سادگی جستجوها میشود.
تعریف: Macro یک قطعه کد SPL قابل استفاده مجدد است که میتواند ورودی (آرگومان) دریافت کند و در کوئریها با علامت backtick فراخوانی شود: `macro_name(arg)`.
کاربرد: کاهش تکرار، استانداردسازی کوئریها و سادهسازی نگهداری. مثلاً یک Macro به نام brute_force_srcip(threshold) میتواند آستانه تعداد تلاش ناموفق را بگیرد و IPهای مشکوک را برگرداند.
مسیر ساخت: Settings → Advanced search → Search macros → New Macro
تعریف: Lookup ها امکان غنیسازی نتایج جستجو با دادههای خارجی را فراهم میکنند. رایجترین نوع، CSV Lookup است که یک فایل CSV را با فیلدهای موجود در رویدادها تطبیق میدهد و فیلدهای جدیدی به نتایج اضافه میکند.
انواع:
کاربرد امنیتی: اضافه کردن سطح تهدید (threat_level)، کشور یا مالکیت IP به هر رویداد. مثلاً اگر فایل malicious_ips.csv شامل IPهای مخرب باشد، با Lookup میتوانیم در هر جستجو بلافاصله IPهای مخرب را علامتگذاری کنیم.
فرض کنید 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هایی با حداقل ۵ تلاش ناموفق را بیابید، کدام را انتخاب میکنید؟
یک فایل 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 بزرگ توصیه میشود؟ اگر تحلیلگران هر کدام کوئریهای شخصی خود را بنویسند و هیچ استانداردی برای نامگذاری رویدادها وجود نداشته باشد، چه مشکلاتی در فرایند تشخیص و پاسخ به رخداد ایجاد میشود؟