درس‌هایی از Splunk ES

یکی از دردسرهایی است که خیلی از Splunk ES ادمین‌ها و محتوای سفارشی‌سازها (Rule/Dashboard Developers) دیر یا زود به آن برمی‌خورند، مخصوصاً در سازمان‌هایی که هر چی خوب کار می‌کند تا چند سال دست نمی‌زنند، بعد یک روز آپدیت می‌آید و نصف چیزها می‌ریزد به‌هم؛ مساله تغییر در سینتکس هست .

⏮️ تغییر در Syntax یا Performance SPL
بعضی دستورها یا فانکشن‌های قدیمی SPL (مثلاً certain join behaviors یا rex options) در نسخه‌های جدید deprecate یا تغییر عملکرد می‌دهند.
⏮️ مقولات Data Models و CIMES آپدیت که می‌شود، بعضی فیلدهای CIM تغییر اسم یا معنی پیدا می‌کنند (مثل tag یا eventtype). کوئری‌ها یا macroهایی که روی این فیلدها حساب باز کرده‌اند می‌شکنند.
⏮️وجود Dependency روی Macro و Lookup داخلی وقتی ES نسخه جدید بیاورد، بعضی lookupها، macroها یا حتی saved searchهای internal جای‌شان عوض می‌شود یا تغییر می‌کند.

#تجربه

✳️در Splunk 7.2 نحوه‌ی مدیریت subsearch timeout و memory cap تغییر کرد. چند کوئری که روی join و subsearch طولانی حساب باز کرده بودند، ناگهان بعد از آپدیت فقط خروجی ناقص یا empty می‌دادند. لذا ما دو هفته blind spot داشتیم چون correlation search اصلی‌اش subsearch fail می‌داد.

✳️ در به روز رسانی به CIM 5، توی مدل Endpoint و Authentication چند تا فیلد کلیدی rename شد (مثل user: dest_user) و چند تا tag پیش‌فرض تغییر کرد.
لذا بیشتر از ۱۰ correlation search پیش‌فرض ES fail شدند تا زمانی که field mapping دوباره انجام شد. مجبور شدیم ۴ روز به صورت دستی notable event ایجاد کنیم.

✳️با به روزرسانی در ES 7 ساختار lookups مربوط به threat intelligence (مثل threatintel_by_*) تغییر پیدا کرد.
و correlation searchهایی که به lookupهای قدیمی وابسته بودند، بدون خطای واضح، فقط خروجی خالی می‌دادند. این باعث شد huntهای مبتنی بر IOC دو هفته عقب بیفتد.

💥تقریباً ۹۰٪ این مشکلات پیش‌بینی‌پذیر بودند اگر:

مستند Release Notes قبل از آپگرید دقیق خوانده می‌شد.
مبحث Dev/UAT قبل از Production اجرا می‌شد.
وcontent inventory + dependency mapping به‌روز بود.

#درس_آموخته
#آکادمی_روزبه
مرکز عملیات امنیت www.haumoun.com
#اشتراک_دانش

Comments

Be the first to add a comment