لایسنس Splunk ES به عنوان یک راهکار SIEM (مخفف Security Information and Event Management) با ارائه داشبوردهای جامع برای مدیران، قابلیتهای بسیار کارآمدی را در اختیار کاربران قرار میدهد. این راهکار به شما اجازه میدهد تا با استفاده از قابلیتهای جستجو و تهیه گزارشات در اسپلانک، به صورت دقیق و کامل دادههای مورد نیاز خود را جستجو کنید و گزارشهای جامع و مفهومی تهیه کنید.
در این مقاله، به طور دقیقتر با نحوه جستجو در این نرمافزار و قابلیتهای آن، به ویژه قابلیت جستجو و تهیه گزارشات در Splunk (Splunk Search and Reporting) آشنا خواهیم شد. این امکان به شما اجازه میدهد تا اطلاعات مهم را با دقت بالا جستجو کرده و گزارشهایی به صورت دلخواه و با ترجمهی نتایج به زبانهای مختلف تولید کنید. این ابزار قدرتمند به شما کمک میکند تا به بهبود امنیت و مدیریت سیستمهای خود بپردازید و از دادههای خود بهرهوری بیشتری داشته باشید.
روش های ارسال لاگ به اسپلانک
روشهای ارسال لاگ به Splunk؛ جستجو و تهیه گزارشات در اسپلانک
یکی از جوانترین و مؤثرترین روشها برای ارسال لاگها به اسپلانک، استفاده از تکنولوژی خاصی به نام “Universal Forwarder” است. این نرمافزار از طریق پورتهای مشخصی لاگها را از دستگاههای مختلف جمعآوری کرده و به اسپلانک ارسال میکند. همچنین، اسپلانک از پروتکلهای متعددی مانند syslog، HTTP Event Collector (HEC) و TCP/UDP برای دریافت لاگها از منابع مختلف پشتیبانی میکند.
این امکان به کاربران این اختیار را میدهد تا با تنظیمات مختلف، لاگهای خود را به اسپلانک ارسال کنند و سپس با استفاده از ویژگیهای جستجو و تهیه گزارشات در اسپلانک، دادههای مورد نیاز خود را با دقت بیشتری برای تحلیل و مدیریت بهرهبرند. به طور کلی، ارسال لاگ به اسپلانک با استفاده از روشهای مختلف و به وسیله ابزارهای متعدد امکانپذیر است و این امکان به کاربران این اختیار را میدهد تا با جستجو در دادههای ارسالی و تهیه گزارشات متنوع، به بهبود مانیتورینگ و مدیریت دادههای خود بپردازند. در پیاده سازی های رایج، مدیران میتوانند به روش های زیر لاگ ها خود را به سمت اسپلانک ارسال نمایند:
- دریافت لاگ از طریق Universal Forwarder: در این روش بر روی سروری که میخواهیم لاگ هایش را بر روی اسپلانک دریافت کنیم Universal Forwarder را نصب و کانفیگ میکنیم. لاگها به در صورت وجود فورواردر های دیگر در نهایت به Indexer فرستاده شوند.
- دریافت لاگ از طریق پروتکل های مانیتورینگ: در این روش لاگها از طریق دستگاه های شبکه همچون روتر، سوییچ، فایروال و غیره از طریق پروتکل هایی همچونWMI و Syslog گرفته میشود.
- دریافت لاگ از طریق فایل های بر روی دیسک: در این روش میتوان لاگ فایلی که از دستگاه ها و سرویس های تحت شبکه گرفته شده را مستقیم بر روی سرور اسپلانک آپلود کرد.
راهنمای نحوی جستجو در اسپلانک
در قسمت New Search میتوان عبارت مورد نظر برای جستجو را نوشت و با دکمه ذره بین عمل جستجو را انجام داد. در قسمت پایین صفحه نیز نتایج جستجو نمایش داده میشود. برای جستجو میتوان بازه زمانی مورد نظر برای جستجو را از قسمت بالا و راست صفحه تعیین نمود. چنانچه بر روی آن کلیک کنیم به صورت پیشفرض Time All انتخاب شده است که میتوان بازه زمانی را به صورت پیشرفته تعیین نمود. به علاوه، با لایسنس Splunk ES، میتوانید دادههای جستجو شده را به صورت کامل و جامع تجزیه و تحلیل کنید.
با استفاده از اپ Search And Reporting در اسپلانک میتوان لاگ ها را به صورت لحظه ای مانیتور کرد. همچنین با استفاده از زبان Search Processing Language (SPL) میتوان فیلتر هایی بر اساس نوع دیتا، سورس، دستینیشن، ایندکس و موارد دیگر برای اسپلانک در نظر گرفت. به 2 صورت Real-Time Search و Relative Search میتوان جستجو را در اسپلانک انجام داد.
در قسمت Real-Time Search میتوان مشخص کرد که به صورت لحظهای در چه بازه زمانی هایی سرور اسپلانک لاگ ها را به روز رسانی کند. این بروزرسانی به صورت پیش فرض بر روی بازه 30 ثانیه میباشد. و در قسمت Relative Search مشخص میکنیم که لاگ ها در چه بازه زمانی نمایش داده شوند که به صورت پیش فرض لاگ های یک روز گذشته انتخاب شده. همچنین، با استفاده از امکانات لایسنس Splunk، در این داشبورد میتوان مشخص کرد که لاگهای از چه هاستهایی بر اساس مبدا و مقصد نمایش داده شوند.
زبان برنامه نویسی اسپلانک
زبان اسکریپت نویسی و جستوجو در اسپلانک به نام Search Processing Language یا به اختصار SPL استفاده میشود. این زبان دارای بیش از 140 دستور و سینتکسهایی است که براساس Unix Pipeline و SQL طراحی شدهاند. با استفاده از SPL، کاربران میتوانند جستجوی دقیق و پیشرفتهای را در دادههای خود انجام دهند. کاربردهای SPL در Splunk شامل جستجو، فیلتر کردن، اصلاح، تغییر، اضافه کردن، حذف دادهها و ساخت جداول میشود.
به عنوان مثال، زمانی که نتایج یک جستجو دریافت میکنید، ممکن است نیاز داشته باشید تا برخی از اصطلاحات خاص را فیلتر کنید یا تغییراتی در نتایج اعمال کنید. SPL از نوعی اپلیکیشن به نام “Search and Reporting” استفاده میکند. این برنامه علاوه بر اجرای جستجوها با استفاده از SPL، امکانات دیگری نیز ارائه میدهد. از جمله این امکانات ایجاد گزارشات، اعلانها، داشبوردها و غیره برای بهرهبرداری بهتر از دادههای موجود است. (برای معرفی اسپلانک مطلب مربوط به آن در بخش وبلاگها قرار داده شده است.)
جستجو و فیلتر کردن با استفاده از SPL در Splunk
در قسمت ورودی سرچ میتوان با زبان SPL فیلتر های مورد نظر برای جستجو را در نظر گرفت. برای مثال با دستور index=Cisco در این قسمت تمامی ایندکس لاگ هایی که به عنوان Cisco در نظر گرفته شده نمایش داده میشود. در این حالت اسکریپت نویسی فیلد ها و استرینگ وجود دارد که بعضی فید ها مانند index به صوت پیش فرض در اسپلانک تعریف شده اند. این زبان حساس به حروف کوچک و بزرگ بوده است. همچنین میتوان بر اساس استرینگ های دیگر همچون کلمات کلیدی جستجو ها را انجام داد. در مثال زیر میتوان بین تجهیزات F5 بر اساس نوع پورت TCP و UDP، ای پی های رنج 10 سرچ را انجام داد:
index=F5 10.x.x.x And (UDP or TCP)
بررسی روشهای جستجو مختلف
میتوان روش جست وجو را از نوع Verbose, Fast و یا Smart تعیین نمود. روش Fast همانطور که از نام آن مشخص است، یک روش جستوجوی سریع میباشد. معمولا سریعترین روش است چون فقط از فیلدهای پیش فرض استفاده مینماید. روش Verbose زمان طولانی را برای جست و جو نیاز دارد زیرا همه فیلدهایی که میتواند را پیدا میکند. روش Smart روش پیشفرض است و میتواند بسته به فعال یا غیرفعال کردن فیلد، شبیه دو روش ذکر شده Verbose و Smart در نظر گرفته شود. بعد از جست و جو نتایج در پایین صفحه نمایش داده میشود.
در برگه یEvents تعداد رخداد هایی که با این جست و جو اتفاق افتاده است نشان داده میشود. همچنین در قسمت وسط صفحه یک نمودار نمایش داده میشود. این نمودار بیانگر تعداد دفعاتی است که رخداد در فاصله زمانی که انتخاب کردیم اتفاق افتاده است. چنانچه بر روی هر یک از مستطیل های سبز رنگ کلیک کنیم میتوانیم جزئیات بیشتر در فاصله زمانی کوتاه تر را مشاهده کنیم. میتوان گزارشهایی را برای فیلد مورد نظر گزارش نمود.
برای مثال دستور fail* password| top port را در نظر بگیرید دستور Top به صورت پیش فرض 10 مقدار با بیشترین تکرار را به ترتیب نزولی برای فیلد های مشخص برمیگرداند. بنابراین خروجی این دستور با port 10 top| password* fail برابر است. در واقع این دستور در جاهایی که پسورد اشتباه وارد شده است، 10 پورت با بالاترین تکرار را برمیگرداند. جستوجو در Splunk بر مبنای لغت میباشد. یعنی اگر لغت fail را جست و جو کنیم و در لاگ ها failure داشته باشیم، در خروجی نشان داده نمیشود.
استفاده از زبان SPL برای جستجو و تحلیل دادهها در Splunk
برای انجام جستجو و تهیه گزارشات در اسپلانک، الزامی است عبارت “fail*” را وارد کنیم. ارزیابی میشود که در این جستجو، حروف بزرگ و کوچک متفاوت تلقی میشوند. برای ایجاد جستجوهای ترکیبی، میتوانیم از عملگرهای “OR” و “AND” استفاده کنیم. در Splunk، میتوان عملیاتهای مختلفی را برروی نتایج جستجو انجام داد. از جمله محاسبه میانگین یا مجموع اطلاعات و سپس نتایج را در یک جدول نمایش داد. به عنوان مثال، در دستور زیر، فیلترهایی اعمال شدهاند که بر اساس آنها، یک جدول با فیلدهای “آدرس IP” و “شبکه” از نتایج جستجو نمایش داده میشود.
sourcetype=access_* | dedup clientip | eval network=if(cidrmatch(“192.0.0.0/16”, clientip), “local”, “other”) | table clientip, network
در Splunk، امکان ذخیره و شخصیسازی اسکریپتهای جستجو در داشبوردها وجود دارد تا نتایج جستجو به سادگی قابل دسترسی باشند. همچنین، میتوان از ماکروها و تگها برای سهولت در جستجوی دادهها استفاده کرد. همچنین فرایندها را بر اساس رویدادهای تولید شده به صورت خودکار انجام داد. در Splunk، میتوانید فایلهای اکسل CSV را با دادههای Splunk ترکیب کنید. با استفاده از زبان SPL نتایج فیلتر شده را در فرمتهای مختلفی نظیر PDF، CSV و غیره نمایش دهید.
همچنین، میتوانید گزارشهای مخصوص خود را با استفاده از SPL تهیه کرده و آنها را در داشبوردهای خود نمایش دهید. این قابلیت به شما اجازه میدهد تا اطلاعات را به صورت گرافیکی و مفهومی نمایش دهید. به علاوه در صورت نیاز، گزارشها را در بازههای زمانی معین به ایمیل ارسال کنید یا اسکریپتهایی را برای اجرا در صورت وقوع هشدارهای خاص تنظیم کنید.