نسخه پادکست مقاله “نقش یادگیری ماشین در ارتقاء امنیت کانتینرهای ابری بومی (Cloud-Native)
” را گوش دهید.

ظهور پردازندههای قدرتمندتر در اوایل دهه ۲۰۰۰ انقلابی در دنیای محاسبات بهراه انداخت که در نهایت به چیزی منتهی شد که امروزه آن را «ابر (Cloud)» مینامیم. با امکان اجرای دهها یا حتی صدها ماشین مجازی (VM) بهصورت همزمان روی یک سختافزار منفرد، کسبوکارها توانستند خدمات و اپلیکیشنهای متعددی به کاربران خود ارائه دهند؛ خدماتی که از نظر مالی پیشتر یا غیرممکن بود یا بسیار پرهزینه.
اما ماشینهای مجازی معایب خاص خود را دارند. در بسیاری از مواقع، یک سیستمعامل کامل مجازیشده برای یک اپلیکیشن خاص زیادهروی است. هرچند ماشینهای مجازی از سرورهای فیزیکی سنتی بسیار انعطافپذیرتر، مقیاسپذیرتر و چابکتر هستند، اما باز هم به حافظه و توان پردازشی زیادی نیاز دارند و نسبت به نسل بعدی این فناوری – یعنی کانتینرها – چابکی کمتری دارند. اپلیکیشنهای کانتینری علاوه بر اینکه بهراحتی قابل افزایش یا کاهش مقیاس هستند (متناسب با تقاضا)، فقط شامل اجزای ضروری یک اپلیکیشن و وابستگیهای پشتیبان آن میباشند. به همین دلیل، برنامههایی که بر اساس معماری microservices (ریزخدمات) ساخته میشوند، معمولاً سبکتر و راحتتر قابل پیکربندی هستند.
ماشینهای مجازی مشکلات امنیتی مشابهی با سرورهای فیزیکی دارند، و تا حدی، چالشهای امنیتی کانتینرها نیز بازتابی از مشکلات اجزای تشکیلدهنده آنهاست: مثلاً یک باگ امنیتی در نسخه خاصی از برنامه upstream مانند MySQL میتواند نسخه کانتینریشده آن را هم تحت تأثیر قرار دهد. در زمینه امنیت سایبری، نگرانیها و اقدامات مربوط به VMها، نصبهای bare-metal و کانتینرها شباهت زیادی دارند. اما با این حال، استقرار کانتینرها و ابزارهای مرتبط با آنها، چالشهای امنیتی خاصی را برای افرادی که مسئول اجرای اپلیکیشنها و خدمات هستند ایجاد میکند—چه بهصورت دستی کانتینرهای مختلف را برای ساخت یک اپ جمعآوری کنند، و چه در مقیاس وسیع با ابزارهای orchestration (هماهنگسازی) در محیطهای تولیدی کار کنند.
ریسکهای امنیتی خاص کانتینرها
پیکربندی نادرست (Misconfiguration):
اپلیکیشنهای پیچیده از چندین کانتینر تشکیل شدهاند و یک اشتباه کوچک در پیکربندی – مثلاً تنها یک خط در فایل .yaml – میتواند منجر به اعطای دسترسیهای غیرضروری شده و سطح حمله (Attack Surface) را افزایش دهد. برای نمونه، هرچند دسترسی به سطح root از درون یک کانتینر کار سادهای برای مهاجمان نیست، اما همچنان اجرای Docker با دسترسی root بدون انجام namespace remapping برای کاربران، یک اشتباه رایج است.
تصاویر کانتینری آسیبپذیر (Vulnerable Container Images):
در سال ۲۰۲۲، شرکت Sysdig بیش از ۱۶۰۰ تصویر شناساییشده به عنوان مخرب را در Docker Hub یافت. همچنین، بسیاری از کانتینرها در این مخزن شامل اطلاعات حساسی مانند نامکاربری/رمزعبور فضای ابری، کلیدهای SSH و توکنهای NPM بهصورت hard-coded بودند. فرآیند دریافت تصاویر از رجیستریهای عمومی شفاف نیست و راحتی در استقرار کانتینرها – بهعلاوه فشار روی توسعهدهندگان برای تحویل سریع نتایج – باعث میشود برنامههایی ساخته شوند که از مؤلفههایی ناامن یا حتی مخرب تشکیل شدهاند.
لایههای Orchestration (هماهنگسازی):
در پروژههای بزرگ، ابزارهای orchestration مانند Kubernetes میتوانند سطح حمله را افزایش دهند، اغلب بهدلیل پیکربندی نادرست و پیچیدگی زیاد آنها. بر اساس نظرسنجیای که D2iQ در سال ۲۰۲۲ انجام داد، فقط ۴۲٪ از اپلیکیشنهایی که روی Kubernetes اجرا شده بودند، وارد فاز تولید (Production) شدند – بخشی از این کاهش بهدلیل دشواری مدیریت کلاسترهای بزرگ و منحنی یادگیری شدید است.
به گفتهٔ Ari Weil از شرکت Akamai:
«Kubernetes فناوری بالغی است، اما اکثر شرکتها و توسعهدهندگان تا زمانی که در مقیاس بزرگ از آن استفاده نکنند، متوجه نمیشوند که چقدر میتواند پیچیده باشد.»
امنیت کانتینرها با استفاده از یادگیری ماشین
چالشهای خاص امنیت در کانتینرها را میتوان با استفاده از الگوریتمهای یادگیری ماشین (Machine Learning یا ML) مدیریت کرد؛ الگوریتمهایی که بر اساس مشاهدهٔ رفتار اجزای یک اپلیکیشن در حالت «پاک» (یعنی وقتی همهچیز بهدرستی کار میکند) آموزش دیدهاند. با ساختن یک خط مبنا از رفتار نرمال، یادگیری ماشین میتواند ناهنجاریهایی را شناسایی کند که ممکن است نشاندهندهٔ تهدیدی بالقوه باشند — مثلاً ترافیک غیرعادی، تغییرات غیرمجاز در پیکربندی، الگوهای مشکوک در دسترسی کاربران، یا فراخوانیهای غیرمنتظره به توابع سیستمعامل.
پلتفرمهای امنیتی مبتنی بر ML میتوانند:
- مخازن تصاویر کانتینر را اسکن کرده و آنها را با پایگاههای دادهٔ آسیبپذیریها و مشکلات شناختهشده مقایسه کنند.
- این اسکنها بهصورت خودکار برنامهریزی یا در زمانهای خاص اجرا شوند تا از ورود عناصر مخرب در مراحل توسعه یا تولید جلوگیری شود.
- گزارشهای ممیزی (Audit Reports) بهصورت خودکار تولید و با استانداردهای امنیتی مقایسه شوند — یا اینکه یک سازمان، معیارهای خاص خود را تعریف کند، که این ویژگی در محیطهایی با دادههای بسیار حساس بسیار ارزشمند است.
یکپارچهسازی عملکردهای تخصصی امنیت کانتینر با نرمافزارهای orchestration، مزایای زیادی دارد:
- کانتینرهای مشکوک میتوانند فوراً ایزوله یا متوقف شوند.
- مجوزهای ناامن بلافاصله لغو میشوند.
- دسترسی کاربران مظنون بهطور موقت معلق میگردد.
همچنین با اتصال API به فایروالهای محلی و نقاط پایانی VPN، میتوان:
- کل یک محیط یا زیرشبکه (Subnet) را ایزوله کرد.
- یا ترافیک مشکوک را در مرزهای شبکه متوقف نمود.
حرف آخر
یادگیری ماشین میتواند با فعالیت در چندین سطح، خطر نشت داده را در محیطهای کانتینری کاهش دهد. تشخیص ناهنجاریها، اسکن داراییها، و شناسایی پیکربندیهای بالقوه اشتباه همگی قابل انجام هستند، و همچنین هرگونه هشداردهی یا اصلاح خودکار (Automation) نیز نسبتاً ساده قابل پیادهسازی است.
با این ابزارها، میتوان به امکانات تحولساز اپلیکیشنهای مبتنی بر کانتینر دست یافت، بدون اینکه مشکلات امنیتی، مانعی برای ورود، توسعه، یا اجرای برنامههای مبتنی بر معماری میکروسرویس باشند. مزایای فناوریهای cloud-native را میتوان بهدست آورد، بدون آنکه امنیت فعلی به خطر بیفتد — حتی در صنایع پرریسک و حساس.


