ابزار امنیتی زمان اجرا مبتنی بر ابر منبع باز اکنون یک پروژه CNCF درجه بندی شده است. آیا زمان استفاده از آن در برنامه های Kubernetes فرا رسیده است؟
Falco، ابزار امنیتی متنباز، بومی ابری و زمان اجرا، اخیراً از برنامه انکوباسیون بنیاد محاسبات بومی Cloud فارغ التحصیل شد. این بدان معناست که پایدار و آماده برای استفاده در محیط های تولیدی از جمله Azure در نظر گرفته می شود. به بسیاری از اجزای کلیدی یک پلتفرم بومی ابری از جمله Helm، Envoy، etcd، KEDA و Cloud Events میپیوندد.
من اخیراً با لوریس دجیوانی، مدیر ارشد فناوری و موسس شرکت امنیت ابری Sysdig و سازنده آن گفتگو داشتم. از Falco، درباره فلسفه پشت پروژه و نحوه استفاده از آن در برنامه های Kubernetes.
چرا فالکو؟
به ابزارهای امنیتی طراحی شده برای کار در Kubernetes و کانتینرها نیاز است. محیطهای Microservice که بر حسب تقاضا افزایش یا کاهش مییابند، فاصله زیادی با کاربردهای یکپارچه قدیمی یا معماریهای جدیدتر، مانند n-tier یا جهتگیری سرویس دارند. نمونههای جدید به محض چرخش باید شناسایی و نظارت شوند، تا اطمینان حاصل شود که با بزرگتر شدن و پیچیدهتر شدن شبکههای سرویس ما، دید لازم برای ایمن نگه داشتن آنها را داریم.
شما می توانید امنیت ابر بومی را شبیه به نقش قابلیت مشاهده در devops در نظر بگیرید. ما به دنبال حوادث خاصی نیستیم، بلکه به دنبال الگوهایی در دادههای تلهمتری هستیم که استثناهایی از هنجار را نشان میدهند. ابزارهای امنیتی سنتی ممکن است به محافظت از کدهای در حال اجرا در یک کانتینر کمک کنند، اما قادر به مدیریت الگوهای بدون سرور یا زیرساخت پویا نیستند.
با حمایت مالی شرکت امنیت ابری Sysdig، Falco یک ابزار امنیتی زمان اجرا است که برای عملکرد در سطح بسیار پایین طراحی شده است. ظروف و برنامه های شما، با دسترسی مستقیم به توابع شبکه در سطح هسته. نتیجه توانایی تشخیص نفوذ و سازش در زمان واقعی در کل زیرساخت برنامه شما است. داده های رویداد جمع آوری می شود و یک موتور قوانین برای شناسایی مسائل امنیتی استفاده می شود. میتوانید قوانین خود را بسازید یا با قوانین توسعهیافته جامعه کار کنید.
قوانین فالکو بهتر است به عنوان سیاست در نظر گرفته شوند. همانطور که Degioanni می گوید، “[Falco] یک زبان خط مشی دارد که می توانید از آن برای تعریف یک خط مشی استفاده کنید، مانند کسی که یک پوسته تعاملی را در یکی از کانتینرهای Redis من شروع می کند.” وقتی یک خطمشی مطابقت دارد، یک رویداد تولید و به یک سرویس نظارت مرکزی تحویل داده میشود و برای ارائه پاسخ مناسب استفاده میشود.
یکی از ابزارهای کلیدی برای Falco استفاده آن از کاوشگرهای eBPF است. اینها اسکریپتهای sandboxed هستند که در هسته لینوکس اجرا میشوند و نظارت مستقیمی بر syscalls با سرعت فراهم میکنند. این باید به شناسایی سریع نفوذها کمک کند، و به شما امکان میدهد پاسخها را با استفاده از برنامههای خارجی خودکار کنید، برای مثال پرتاب یک رویداد ابری و راهاندازی اقدامات بدون سرور که از دادههای شما محافظت میکند.
ایمن سازی Kubernetes از هسته لینوکس
Falco برای کار در هر خوشه Kubernetes از جمله سرویس Azure Kubernetes طراحی شده است. و رویدادها را به ابزارهای امنیتی موجود خود تحویل دهید. این رویکرد به شما امکان می دهد نتایج Falco را در Azure Sentinel بگنجانید و با عوامل هوش مصنوعی به شناسایی مسائلی کمک کنید که ممکن است تحت قوانین خود Falco قرار نگیرند.
از آنجایی که Falco در سطح پایینی کار میکند و مقیاسبندی سرویس را دنبال میکند، بیشتر شبیه یک ابزار مشاهدهپذیری است تا یک مانیتور امنیتی سنتی. دجیوانی فالکو را به عنوان یک سوال در نظر میگیرد، “یعنی ایمن کردن چیزی که بسیار پویا است که تغییرات زیادی ایجاد میکند چیست؟”
کار با Kubernetes به عنوان یک ارکستراتور میکروسرویس نیز پیچیدگی را میافزاید. Degioanni چالش را شرح می دهد:
کاربران دارای ۵۰۰ کانتینر در یک دستگاه تک، شاید ۹۶ هسته ای هستند. اگر باید چیزی را درون همه اینها قرار دهید و آنها بالا و پایین میشوند، میدانید، بنابراین کاملاً غیرممکن است. بنابراین، کاری که ما انجام می دهیم این است که… کاوشگر فالکو در هسته سیستم عامل قرار می گیرد. بنابراین مهم نیست که چند کانتینر در این دستگاه ۹۶ هسته ای دارید، فقط یک ابزار دقیق دارید. و وقتی یک ظرف بالا و پایین میرود، لازم نیست منتظر بمانید تا ابزار دقیق شما در آن ظرف فعال شود، زیرا از قبل در هسته زیرین فعال است.
ساده ترین راه برای نصب نرم افزار در سرویس Azure Kubernetes استفاده است هلم. انجمن فالکو یک نمودار هلم را نگهداری میکند که فالکو را بهعنوان DaemonSet از مخزن Falco GitHub. این رویکرد به شما امکان می دهد با استفاده از Azure DevOps یا GitHub Actions استقرار را خودکار کنید. واقعاً هیچ فایدهای در مورد استقرار دستی وجود ندارد، زیرا از Falco به عنوان بخشی از یک زیرساخت بیتوان استفاده میکنید، جایی که هر استقرار جدید جایگزین قبلی میشود.
نصب نمودار فالکو هلم به اندازه کافی آسان است. به سادگی نمودار را از مخزن آن اجرا کنید، یک فضای نام Falco در خوشه خود ایجاد کنید و نمونه هایی را در گره های خود تنظیم کنید. اگر Falco را بهعنوان DaemonSet اجرا میکنید، باید با استفاده از زمان اجرای کانتینر فعلیتان، یک غلاف Falco در هر گره وجود داشته باشد.
اجرای Falco در میزبان Kubernetes
اگر به جای استفاده از سرویس Azure Kubernetes، محیط Kubernetes خود را در Azure راهاندازی میکنید، شما می توانید Falco را در سیستم میزبان نصب کنید، آن را از نمونه Kubernetes که نظارت می کند جدا کنید. هشدارها هنوز در Kubernetes مدیریت میشوند، اما نصب مبتنی بر میزبان به شما در صورت مصالحه شدید، یک بازگشت مجدد به شما میدهد. تیم Falco دستورالعملهای نصب را برای نسخههای مختلف لینوکس، هر دو توزیع مبتنی بر دبیان مانند توزیعهای مبتنی بر اوبونتو و Red Hat ارائه میکند. پشتیبانی از ARM و همچنین x64 وجود دارد، بنابراین میتوانید از سرورهای جدید Azure با تراکم بالا مبتنی بر ARM مایکروسافت استفاده کنید.
این جدول و فایل values.yaml قابل تنظیم توسط Falco فهرست میشود مولفه های. اینها برای کنترل نحوه عملکرد سرویس، به عنوان مثال مدیریت درایورهای مورد استفاده برای میزبانی پروب ها و APIهای مورد استفاده برای ارائه داده به سرویس های خارجی استفاده می شوند.
یکی دیگر از ویژگی های نمودار فالکو هلم مجموعه قوانین پیش فرض آن است. اینها شما را شروع می کنند، اما همانطور که برنامه های Kubernetes شما رشد می کنند و تجربه بیشتری در اجرای امنیت بومی ابری کسب می کنید، می توانید قوانین سفارشی خود را اضافه کنید در فایل خود از نمودار نصب اشاره شده است.
قوانین Falco در YAML نوشته شدهاند و میتوانند به مجموعه قوانین اضافی اشاره کنند. برای مثال، میتوانید اطمینان حاصل کنید که برنامه شما فقط از پورتهای تعریفشده استفاده میکند یا میتواند فقط فرآیندهای خاص و شناخته شده را ایجاد کند. هر چیزی که خارج از قوانین پیشفرض و سفارشی اتفاق بیفتد، یک هشدار ایجاد میکند.
تغذیه مانیتور امنیتی
اگر قبلاً از یک ابزار امنیتی Azure مانند Sentinel استفاده میکنید، میخواهید Falcosidekick را به نصب خود اضافه کنید< /a>. این یک برنامه افزودنی رسمی است که به مدیریت هشدارها کمک میکند و آنها را به Azure Event Hub و به SIEM (اطلاعات امنیتی و مدیر رویداد) شما تحویل میدهد. به طور مفید sidekick شامل توانایی افزودن فیلدهای سفارشی به هشدارها است که به شما امکان می دهد جزئیات خوشه Kubernetes را که هشدار را ارسال می کند اضافه کنید. این مهم زمانی است که چندین خوشه را زیر نظر دارید، یا برنامههای مختلف را در هر خوشه اجرا میکنید یا برنامههای تکراری جغرافیایی در مناطق Azure.
ابزارهای دیگر به شما امکان میدهند به نمایشگر Azure متصل شوید سرویس مدیریت شده برای Prometheus، که به شما امکان می دهد از Grafana برای ساخت و اجرای داشبوردهایی استفاده کنید که اطلاعات امنیتی را به تیم secops شما ارائه می دهد.
چرا به جای سایر ابزارهای امنیتی Kubernetes از Falco استفاده کنیم؟ پاسخ ساده است: Falco قادر به شناسایی الگوهای حمله جدید است که ممکن است برای ابزارهای دیگر قابل مشاهده نباشد. خواه یک مهاجم به عنوان یک تهدید پایدار آهسته عمل کند یا سعی کند یک نفوذ سریع به داخل و خارج انجام دهد، درک اینکه یک نفوذ رخ داده است به شما امکان می دهد به سرعت پاسخ دهید، یا دسترسی را قفل کنید یا اقدامات پزشکی قانونی پیچیده تر را شروع کنید، در حالی که آن رفتارهای غیرمنتظره جدید را مسدود کنید.< /p>
توقف روزهای صفر بومی ابر
با استفاده از کاوشگرهای eBPF برای شناسایی فعالیتهای ناآشنا در سطح هسته، فالکو شما را از سوء استفادههای احتمالی روز صفر در کدتان نگه میدارد. قوانین می توانند نوشته شوند تا به شما در مورد فعالیت هایی که بخشی از خط پایه برنامه شما نیستند و توسط مجموعه قوانین موجود پوشش داده نمی شوند، هشدار دهند. بنابراین Falco به شما اطلاعاتی را ارائه می دهد که اقداماتی که قبلاً دیده نشده بود را پوشش می دهد – که ممکن است نشان دهنده اشکالات در کد شما یا عملیات یک عامل تهدید باشد.
با این حال، استقرار Falco به تنهایی فایده ای ندارد. Azure ابزارهای امنیتی خاص خود را دارد که با Falco کار می کند تا رویکردی لایه ای برای ایمن سازی محیط Kubernetes شما ارائه دهد. Falco برای کار با برنامههای NET یا نظارت بر Redis یا PostgreSQL طراحی نشده است، بنابراین باید با همه ابزارهای موجود برای محافظت از خدمات خود کار کنید.
تغذیه یک SIEM با همه سیگنالها از سراسر محیط برنامه شما بسیار مهم است. شما باید بتوانید با Falco و سایر ابزارهای نظارتی خود کار کنید تا بفهمید حمله چیست و چه چیزی یک شکست، و پاسخ های خود را به طور مناسب تنظیم کنید. اکنون که Falco فارغ التحصیل شده است تا به یک پروژه CNCF تمام عیار تبدیل شود، که در پشته پلتفرم Kubernetes یکپارچه شده است، میتوانیم شروع کنیم به کنار هم قرار دادن این قطعات و ایجاد برنامههای کاربردی امن و قابل اعتماد در فضای ابری، هم در محل و هم در فضای ابری.
پست های مرتبط
ایمن کردن Azure Kubernetes با Falco
ایمن کردن Azure Kubernetes با Falco
ایمن کردن Azure Kubernetes با Falco