جست و جو در اسپلانک
آموزش اسپلانک
در اسپلانک به چند طریق میتوانید عملیات جست و جو را انجام دهید. با استفاده از وب اسپلانک و یا REST API. اگر هم از SPLUNK Enterprise استفاده میکنید میتوانید از طریق CLI (Command Line Interface) هم این عملیات را انجام دهید. اینکه کدام ابزار برای شما مناسبتر است بیش از همه بستگی به این دارد که از جست و جوی خود چه میخواهید. حالت جست و جوی دیگری با نام Hybrid وجود دارد که مربوط به زمانی است که میخواهید هم بر روی Splunk Enterprise و هم Splunk Cloud یک عملیات جست و جو را هم زمان انجام دهید.
جست و جو از طریق وب اسپلانک
وب اسپلانک یکی از ابزار اصلی جست و جو، مدیریت و ایجاد گزارش در اسپلانک میباشد. جست و جو در اسپلانک با استفاده از وب مزایا و معایب خود را دارد. قطعا راه اندازی عملیات جست و جو برای کاربران در وب بسیار راحت تر است. علاوه بر آن در اسپلانک در این حالت میتوانید از میان سه وضعیت (Fast, Verbose, Smart) بنا بر سرعتی که میخواهید عملیات جست و جو انجام شود یکی را انتخاب کنید. در تصویر زیر میتوانید نمونهای از جست و جو در اسپلانک را ببینید:
جست و جو از طریق REST-API یا CLI در اسپلانک
زمانی که عملیات جست و جو را از طریق CLI و یا search jobs endpoint در REST API انجام میدهید، جست و جوی شما مستقیم به موتور جست و جوی اسپلانک میرود و در واقع وب اسپلانک در این روند وجود نداشته که همین موضع باعث بالا رفتن سرعت جست و جو میگردد. زمانی که جست و جو از طریق CLI یا REST API صورت میپذیرد، زمانی صرف محاسبه و تولید جدول زمانی رخدادها (event timeline) نمیگردد، در صورتی که در جست و جو از طریق وب این کار انجام میشود و در نتیجه عملیات جست و جو از طریق وب روند کند تری را دارد. در REST-API و CLI نتایج جست و جو به صورت فهرست یا جدولی از رخدادهای خام (raw events) نشان داده میشود.
Splunk REST-API
در این مطلب یک معرفی مقدماتی از REST API در اسپلانک خواهیم داشت و به شما با یک مثال ساده نشان خواهیم داد چگونه میتوانید با آن کار کنید. در واقع وب اسپلانک بر روی REST API ساخته شده است و هرکاری که میتوانید در اینترفیس وب اسپلانک انجام دهید میتوانید با REST API نیز انجام دهید. به زبان ساده از طریق REST API میتوانید با backend اسپلانک صحبت کنید. API به نقاط پایانی (URI) تقسیم میشود. REST API به صورت پیش فرض از پورت ۸۰۸۹ Splunkd و پروتکل HTTPS برای ارتباط استفاده میکند.
از سه متد زیر هم برای دسترسی استفاده میکند:
- GET
- POST
- DELETE
عملکرد REST API را هم میتوان به دو دسته کلی تقسیم کرد:
- عملیات جست و جو
- مدیریت اشیا و پیکربندیها
آموزش جست و جو از طریق REST-API
حال با یک مثال نشان میدهیم که چطور با استفاده از REST API میتوانیم به جست و جو در ایندکسها بپردازیم.
در این مثال همانطور که در خط دستور میبینید از Curl و –U برای تعریف نام کاربری و گذرواژه استفاده کردهایم البته با –k ما اجازه استفاده از ارتباطات نا امن SSL را نیز دادهایم. این تنها مربوط به این مثال میباشد و در محیط واقعی یک چنین کاری را توصیه نمینماییم. در ادامه ما آدرس نقطه پایانی را آوردهایم. سپس با استفاده از –d دادهای را که ارسال خواهیم کرد را تعریف نمودهایم. در این مثال ما یک متغیر جست و جو تعریف کردهایم و به دنبال یافتن ده IPای هستیم که اقدام به برقراری ارتباط SSH با سرور نمودهاند و شکست خوردهاند. در پاسخ هم شناسه جست و جو (Search ID) باز میگردد.
این SID به یک Artifact اشاره میکند. در حقیقت Artifact حاوی اطلاعاتی در مورد جست و جو میباشد، اطلاعاتی همچون آرگیومنتها، رخدادها و وضعیت جست و جو. در ارتباط با SID هم بایستی این نکته را به شما بگوییم که تنها برای مدت محدودی معتبر است که معادل مدت زمان زنده بودن search job میباشد که به صورت پیش فرض ده دقیقه است.
قبل از اینکه به رخداد از طریق جست و جو دست یابیم، شناسه جست و جو را وارد کرده و در پاسخ تمامی جزئیات پاسخ را خواهیم دید. حالا میدانیم که جست و جو تمام شده و میتوانیم برای دریافت نتایج درخواست بدهیم.
حالا میبینیم که در پاسخ ده IPای که بیشترین login شکست خورده را داشتهاند مشخص شده است. همانطور که در تصویر میبینید به صورت پیش فرض دادهها در فرمت XML نمایش داده میشوند. اگر نیاز دارید تا پاسخ را در فرمتهای دیگری ببینید میتوانید در output mode آن را مشخص کنید. فرمتهای GSON، CSV و RAW توسط اسپلانک پشتیبانی میگردد. مثلا اگر بخواهیم فرمت CSV را اضافه کنیم بدین صورت انجام میدهیم:
–get –d output-mode=CSV
همانطور که در تصویر زیر مشاهده مینمایید، بعد از انتخاب CSV در Output Mode، اسپلانک پاسخ را در فرمت CSV نمایش خواهد داد:
در این مطلب فقط بخش بسیار کوچکی از توانایی REST-API را در اسپلانک به شما نشان دادیم. نقاط پایانی (endpoints) متعددی وجود دارد که به شما اجازه میدهد تا تمامی اشیا و پیکربندیها را مدیریت نمایید. همچنین اسپلانک با معرفی SDK امکان تعامل کاربر و API را از طریق زبانهای پایتون، جاوا، PHP، Ruby، C# و جاوا اسکریپت فراهم کرده است. برای اطلاعات بیشتر میتوانید به dev.splunk.com مراجعه نمایید.
طراحی، مشاوره، پیاده سازی و تامین لایسنس اسپلانک در ایران
آرمان داده پویان پیشگام در ارائه راهکارهای SIEM