کتاب Container Security: Fundamental Technology Concepts That Protect Cloud Native Applications 2nd Edition (امنیت کانتینر: مفاهیم بنیادی فناوری که از برنامههای ابری بومی (Cloud Native) محافظت میکنند، ویرایش دوم) که توسط لیز رایس نوشته شده، یک بررسی دقیق و کاربردی از فناوریهای زیربنایی پلتفرمهای کانتینر ارائه میدهد و برای توسعهدهندگان، متخصصان عملیات (Ops) و متخصصان امنیت طراحی شده است.
کتاب Container Security بر پایههای معماری کانتینرها و سازههای لینوکسی مانند Namespaces، cgroups و System Calls که این پلتفرمها را پشتیبانی میکنند، تمرکز دارد تا درکی عمیق از تهدیدها و راهبردهای کاهش خطر به دست آید.
در ادامه مقدمهای از کتاب Container Security را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Container Security:
بسیاری از سازمانها امروزه برنامههای خود را در محیطهای Cloud Native اجرا میکنند؛ محیطهایی که با استفاده از کانتینرها و ابزارهای ارکستریشن (مانند Kubernetes) امکان مقیاسپذیری و تابآوری بالا را فراهم میسازند. اما اگر شما عضوی از تیمهای عملیات (Operations)، امنیت (Security)، DevOps یا DevSecOps هستید و وظیفهی راهاندازی چنین محیطهایی را دارید، از کجا مطمئن میشوید که استقرارهای شما امن هستند؟
اگر متخصص امنیت هستید و تجربهی شما بیشتر در سیستمهای سنتی مبتنی بر سرورهای فیزیکی یا ماشینهای مجازی است، چطور میتوانید دانش فعلی خود را برای استقرارهای مبتنی بر کانتینر بهکار بگیرید؟ و اگر توسعهدهندهای در دنیای Cloud Native هستید، برای افزایش امنیت برنامههای کانتینریشدهی خود باید به چه نکاتی توجه کنید؟
کتاب Container Security به فناوریهای پایهای و اصلی که کانتینرها و رایانش Cloud Native بر آنها تکیه دارند میپردازد تا شما بتوانید ریسکهای امنیتی و راهحلهای احتمالی را بهتر ارزیابی کرده و از اقدامات اشتباه رایج که ممکن است باعث آسیبپذیری سیستمهای شما شود جلوگیری کنید.
در این کتاب با بسیاری از بلوکهای سازندهی فناوری در سیستمهای مبتنی بر کانتینر و نحوهی پیادهسازی آنها در سیستمعامل لینوکس آشنا خواهید شد. در کنار هم، عمیقتر به مبانی عملکرد و ارتباطات کانتینرها میپردازیم تا نهتنها “چه چیزی” راجع به امنیت کانتینر بدانید، بلکه مهمتر از آن، “چرا”ی آن را درک کنید.
هدف من از نگارش کتاب Container Security این است که در هنگام استقرار کانتینرها، بفهمید دقیقاً چه اتفاقی در حال وقوع است و بتوانید مدل ذهنی روشنی از ریسکهای امنیتی احتمالی بسازید و آنها را خودتان ارزیابی کنید.
تمرکز اصلی کتاب Container Security بر کانتینرهای برنامهای (Application Containers) است که امروزه برای اجرای اپلیکیشنهای تجاری در محیطهایی مثل Kubernetes و Docker استفاده میشوند. این نوع کانتینرها با کانتینرهای سیستمی (System Containers) مانند LXC و LXD از پروژهی Linux Containers تفاوت دارند.
در کانتینرهای برنامهای، شما معمولاً فقط به اندازهی مورد نیاز برای اجرای برنامه، کد وارد کانتینر میکنید و آن را immutable (غیرقابلتغییر) نگه میدارید؛ در حالی که در کانتینرهای سیستمی معمولاً کل توزیع لینوکس را اجرا میکنید و رفتار آن بیشتر شبیه یک ماشین مجازی است.
در کانتینر سیستمی، استفاده از SSH امری طبیعی است، اما اگر بخواهید به یک کانتینر برنامهای در محیط عملیاتی SSH بزنید، کارشناسان امنیتی با دیدهی تردید به شما نگاه خواهند کرد (دلیلش در فصلهای بعد توضیح داده میشود).
با این حال، هر دو نوع کانتینر از سه مکانیزم کلیدی برای ایزولهسازی استفاده میکنند:
Control Groups، Namespaces و تغییر دایرکتوری ریشه (chroot).
بنابراین، کتاب Container Security به شما پایهای محکم میدهد تا بتوانید تفاوتهای رویکردهای مختلف در پروژههای گوناگون کانتینری را درک کنید.
توجه داشته باشید که پیادهسازیهای دیگری نیز از «کانتینر» وجود دارند، مانند پروژهی جدید کانتینریسازی اپل، که از فناوریهای متفاوتی برای جداسازی بارهای کاری استفاده میکند. تا پایان کتاب تفاوت آنها را بهخوبی خواهید فهمید!
مخاطبان کتاب Container Security
فرقی نمیکند خود را توسعهدهنده، متخصص امنیت، اپراتور یا مدیر بدانید؛ این کتاب برای شما مناسب است اگر از کنکاش در جزئیات فنی و کار با ترمینال لینوکس لذت میبرید.
اگر به دنبال یک راهنمای گامبهگام و ساده برای ایمنسازی کانتینرها هستید، کتاب Container Security احتمالاً مناسب شما نیست. چراکه در امنیت کانتینرها هیچ راهحل یکسان و ثابتی وجود ندارد که برای همهی برنامهها و سازمانها جواب دهد.
در عوض، این کتاب به شما کمک میکند درک کنید دقیقاً چه اتفاقی هنگام اجرای برنامهها در کانتینرها رخ میدهد و چگونه مکانیزمهای امنیتی مختلف عمل میکنند تا بتوانید خودتان ریسکها را ارزیابی کنید.
همانطور که در ادامه خواهید دید، کانتینرها ترکیبی از ویژگیهای کرنل لینوکس هستند، و ایمنسازی آنها نیز شامل بهکارگیری همان مکانیزمهایی است که برای ایمنسازی یک هاست لینوکسی (اعم از ماشین مجازی یا سرور فیزیکی) استفاده میشود.
من ابتدا این مکانیزمها را توضیح میدهم و سپس نشان میدهم چگونه در محیطهای کانتینری بهکار میروند. اگر شما مدیر سیستم باتجربهای هستید، میتوانید بخشهای ابتدایی را سریعتر مرور کنید تا به قسمتهای تخصصیتر کانتینر برسید.
تمرکز کتاب Container Security عمدتاً بر روی کانتینرهای لینوکسی است، هرچند گاهی به سیستمعاملهای دیگر نیز اشاره میشود.
فرض من این است که شما با مفاهیم پایهای کانتینر مانند Docker یا Kubernetes آشنا هستید و عباراتی مثل “pull کردن image از registry” یا “اجرای container” برایتان آشناست، حتی اگر دقیقاً ندانید در پشتصحنه چه میگذرد.
محتوای کتاب Container Security
- فصل ۱: مدلهای تهدید و بردارهای حمله در استقرارهای کانتینری و تفاوتهای آن با امنیت سنتی
- فصل ۲: مکانیزمهای پایهای لینوکس مانند system callها و قابلیتها (capabilities)
- فصلهای ۳ و ۴: سازوکارهای درونی لینوکس که کانتینرها بر آنها بنا شدهاند و میزان ایزولاسیون آنها
- فصل ۵: مقایسه ایزولهسازی کانتینر با ماشین مجازی
- فصل ۶: ساخت امن imageهای کانتینری
- فصل ۷: امنیت زنجیره تأمین (supply chain)
- فصل ۸: شناسایی آسیبپذیریهای نرمافزاری در imageها
- فصل ۹: مفهوم immutability و روش GitOps برای استقرار امنتر
- فصل ۱۰: اقدامات پیشرفتهی امنیتی لینوکس برای سختسازی کانتینرها
- فصل ۱۱: پیکربندیهای خطرناک و اشتباههای رایج که امنیت ایزولاسیون را تضعیف میکنند
- فصل ۱۲: امنیت ارتباطات میان کانتینرها
- فصل ۱۳: کلیدها و گواهینامهها در شبکههای امن بین کانتینرها
- فصل ۱۴: نحوهی ارسال امن گواهیها و اعتبارنامهها در زمان اجرا
- فصل ۱۵: ابزارهای امنیتی برای مقابله با حملات در زمان اجرا
- فصل ۱۶: بررسی ۱۰ ریسک برتر امنیتی از دید OWASP و راهکارهای خاص کانتینری برای آنها
تغییرات نسخه دوم (۲۰۲۵)
از زمان چاپ نسخهی اول در سال ۲۰۲۰، تغییرات گستردهای در اکوسیستم کانتینر رخ داده است:
- حملهی سایبری SolarWinds توجه زیادی به امنیت زنجیرهی تأمین جلب کرد.
- مفهوم GitOps از سال ۲۰۱۸ بهشدت گسترش یافت و با CI/CD مدرن تلفیق شد.
- فناوری eBPF به ابزار اصلی امنیت زمان اجرا و شبکهسازی کانتینرها تبدیل شد.
- Namespaces و Cgroups نسخه ۲ پیشرفت کردند، و کانتینرهای بدون ریشه (rootless) به واقعیت بدل شدند.
- پروژهی Kubernetes به ارکستریتور غالب صنعت تبدیل شده است.
در این مدت، جامعهی Cloud Native در ترویج بهترین شیوههای امنیتی نیز نقش مهمی داشته و استفاده از روشهای خطرناک (مانند نصب پکیج در کانتینر در حال اجرا) بسیار کاهش یافته است.
نکته درباره Kubernetes
اکنون بیشتر کاربران کانتینرها را تحت ارکستریتور Kubernetes اجرا میکنند. این سیستم بهصورت خودکار بارهای کاری را در خوشهای از ماشینها مدیریت میکند. هرچند تمرکز این کتاب بر مفاهیم پایهی کانتینرهاست (سطح Data Plane) و نه کل اجزای Control Plane، بسیاری از مباحث آن برای امنیت Kubernetes نیز کاربردی هستند.
البته Kubernetes تنها گزینه نیست. سرویسهای AWS ECS، AWS Fargate، Azure Container Instances و Google Cloud Run نیز بهطور گسترده استفاده میشوند و ابزارهایی مانند Docker و Podman همچنان در توسعهی محلی و CI/CD کاربرد دارند.
مثالها و محیط اجرا
در طول کتاب Container Security مثالهای زیادی وجود دارد که توصیه میشود خودتان آنها را امتحان کنید.
برای این منظور باید به یک ماشین لینوکسی یا ماشین مجازی لینوکس (مثلاً Ubuntu 24.04) دسترسی داشته باشید. مثالها را میتوان روی هر توزیع لینوکسی یا در محیطهای ابری نیز اجرا کرد.
در مثالها از ابزارهایی مانند ps, grep, kubectl, و docker استفاده میشود تا درک عمیقتری از رفتار کانتینرها هنگام اجرا پیدا کنید.
نحوهی اجرای کانتینرها
بیشتر افراد تجربهی اجرای کانتینر را از طریق Docker دارند. Docker با سادهسازی فرآیند کار، استفاده از کانتینر را بین توسعهدهندگان عمومی کرد.
فرمان docker درواقع لایهای نازک است که از طریق API با Daemon اصلی Docker ارتباط برقرار میکند. درون این Daemon، مؤلفهای به نام containerd قرار دارد که مسئول اجرای واقعی کانتینرهاست. پروژهی containerd در سال ۲۰۱۷ به بنیاد CNCF اهدا شد.
Containerd برای اجرای کانتینر از مؤلفهای به نام runc استفاده میکند. درصورت تمایل، میتوانید مستقیماً از containerd یا runc برای اجرای کانتینرها بهره ببرید.
Kubernetes نیز از رابطی به نام CRI (Container Runtime Interface) استفاده میکند که به کاربران اجازه میدهد runtime دلخواه خود مانند containerd یا CRI-O را انتخاب کنند.
علاوه بر Docker، ابزارهای دیگری مانند Podman (توسعهی Red Hat) نیز برای مدیریت کانتینرها وجود دارند.
در کتاب Container Security از چندین ابزار مختلف استفاده شده تا نشان داده شود که پیادهسازیهای گوناگون کانتینر، ویژگیهای مشترک زیادی دارند.
در زمان نگارش این نسخهی دوم، اپل پروژهی کانتینریسازی خود را معرفی کرده است که از فرمتهای image مشابه Docker استفاده میکند اما با مکانیزم ایزولاسیون متفاوتی (که در فصل ۱۰ توضیح داده میشود). بنابراین برخی از مثالهای این کتاب دقیقاً همان رفتار را در محیط اپل نخواهند داشت.
سرفصلهای کتاب Container Security:
- Cover
- Copyright
- Table of Contents
- Preface
- Chapter 1. Container Security Threats
- Chapter 2. Linux System Calls, Permissions, and Capabilities
- Chapter 3. Control Groups
- Chapter 4. Container Isolation
- Chapter 5. Virtual Machines
- Chapter 6. Container Images
- Chapter 7. Supply Chain Security
- Chapter 8. Software Vulnerabilities in Images
- Chapter 9. Infrastructure as Code and GitOps
- Chapter 10. Strengthening Container Isolation
- Chapter 11. Breaking Container Isolation
- Chapter 12. Container Network Security
- Chapter 13. Securely Connecting Components
- Chapter 14. Passing Secrets to Containers
- Chapter 15. Container Runtime Protection
- Chapter 16. Containers and the OWASP Top 10
- Conclusions
- Security Checklist
- Index
- About the Author
- Colophon
جهت دانلود کتاب Container Security میتوانید پس از پرداخت، دریافت کنید.

دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.