Dezkubeدزکوب

قابلیت · حاکمیت

امنیت به‌عنوان معماری، نه به‌عنوان چک‌لیست

هفت مرز امنیتی، رمزنگاری AEAD سراسری، سیاست پذیرش که بسته می‌شکند، و مدل تهدیدی که منتشرش کرده‌ایم.

مدل تهدید — چه کسی، چه چیزی را می‌خواهد

مهاجم · هدف · دفاع اصلی
مهاجمهدفدفاع اصلی
مستأجر مخربرسیدن به دادهٔ مستأجر دیگرایزوله‌سازی namespace، سیاست شبکهٔ default-deny، بررسی مالکیت در هر مسیر
کد مخرب در بار کاریفرار از container و رسیدن به نودسطوح ایزوله (gVisor/Kata)، سیاست امنیت پاد، rootless بودن بیلد
کاربر داخلی با دسترسی بیش‌ازحدسوءاستفاده از مجوزکمترین دسترسی، دسترسی موقت با انقضا، کلید اضطراری با ثبت کامل
مهاجم روی زنجیرهٔ تأمینتزریق کد در ایمیجSBOM، اسکن، امضا، اطلاعات اصالتی که پادِ بیلد نمی‌سازد
مهاجم روی مسیر شبکهشنود یا تزریقTLS، امضای زمان‌دار وبهوک، هویت بار کاری
کسی که به بکاپ می‌رسدباج‌گیری یا استخراجقفل شیء (WORM)، کلید جدا، دسترسی فقط-نوشتن
کسی که دیتابیس را می‌خواندخواندن اسراررمزنگاری AEAD در حال سکون، ماسک در همهٔ پاسخ‌ها

رمزنگاری

الگوریتم
AEAD (رمزنگاری با احراز اصالت) — یعنی داده هم محرمانه است هم دستکاری‌ناپذیر
چه چیزی رمز می‌شود
متغیر محرمانه، کلید SSH، اعتبارنامهٔ رجیستری، توکن ارائه‌دهندهٔ گیت، اعتبارنامهٔ ارائه‌دهندهٔ مدل، اعتبارنامهٔ منبع مهاجرت
مدیریت کلید
کلید پلتفرم، یا Vault، یا کلید اختصاصی مستأجر
چرخش کلید
با پشتیبانی از کلید قبلی برای رمزگشایی داده‌های موجود
ماسک در پاسخ
هیچ مقدار محرمانه‌ای در پاسخ API برنمی‌گردد
رمزنگاری در حال سکون
LUKS برای دیسک، KMS برای etcd
نابودی قطعی کلید
تنها عملیات غیرقابل‌بازگشت پلتفرم

چرا AEAD و نه فقط رمزنگاری ساده؟

رمزنگاری بدون احراز اصالت، محرمانگی می‌دهد ولی یکپارچگی نمی‌دهد. مهاجمی که به دیتابیس دسترسی نوشتن دارد، می‌تواند متن رمزشده را دستکاری کند بدون اینکه بتوانید بفهمید. AEAD این را غیرممکن می‌کند.

سیاست پذیرش

برخی چیزها نباید حتی وارد کلاستر شوند. سیاست پذیرش، آن‌ها را در لحظهٔ ورود رد می‌کند.

وب‌هوک پذیرش
اعتبارسنجیِ چیزهایی که schema نمی‌تواند ببیند — به‌ویژه گذارهای وضعیت
سیاست امنیت پاد
سطوح enforce/audit/warn قابل تنظیم
موتور سیاست (Kyverno)
قواعد سازمانی، با حالت اعمال یا فقط ثبت
گیت ایمیج VM
فقط ایمیج‌های کاتالوگ تأییدشده اجرا می‌شوند
کنترل · رفتار در خطا · چرا
کنترلرفتار در خطاچرا
گیت ایمیج ماشین مجازیبسته می‌شکندماشینِ ناشناخته نباید اجرا شود
اعتبارسنجی شیء مدیریت‌شدهباز می‌شکندوابسته‌کردن هر نوشتنِ کلاستر به کنترل‌پلن، خودش یک نقطهٔ شکست است

هر دو در تست قفل شده‌اند

کپی‌شدن رفتار یکی روی دیگری، در هر دو جهت یک باگ جدی است.

هویت بار کاری

یک بار کاری چطور ثابت می‌کند خودش است، بدون اینکه رمزی حمل کند؟

توکن با مخاطب اختصاصی
توکنِ پیش‌فرضِ پاد پذیرفته نمی‌شود
راستی‌آزمایی
هویت از بررسی توکن در خود Kubernetes می‌آید، نه از محتوای JWT
توکن دو-مخاطبه
رد می‌شود

چرا توکن پیش‌فرض رد می‌شود؟

توکنی که به‌طور خودکار در پاد قرار می‌گیرد، یک اعتبارنامه برای API server است. پذیرفتنش یعنی هر کسی که فایل‌سیستم آن پاد را بخواند، می‌تواند اعتبارنامهٔ پلتفرم بسازد.

یکپارچگی ارتباطات

امضای وبهوک خروجی
HMAC با زمان داخل امضا، نه کنارش
شناسهٔ تحویل
یک‌بار ساخته می‌شود و در همهٔ تلاش‌های مجدد ثابت می‌ماند
فهرست میزبان مجاز
وبهوک فقط به مقصدهای مجاز می‌رود
تاریخچهٔ تحویل
هر تلاش با نتیجه ثبت می‌شود

چرا زمان داخل امضا؟

اگر زمان در امضا نباشد، یک تحویلِ ضبط‌شده برای همیشه معتبر می‌ماند و قابل بازپخش است.

تشخیص ناهنجاری

تشخیص تلاش ناموفق
الگوی ردهای پیاپی روی یک هدف
هدف‌های بحرانی
فهرست منابعی که تلاش ناموفق روی آن‌ها هشدار فوری می‌سازد
حذف انبوه
تشخیص و توقف الگوی حذف غیرعادی
خروجی SIEM
ارسال زنجیرهٔ ممیزی به سامانهٔ SIEM سازمان

گزارش آسیب‌پذیری

مسیر مشخصی برای گزارش مسئولانه داریم. اگر چیزی پیدا کردید، از همان مسیر بفرستید — نه در یک ایشوی عمومی.

این را روی زیرساخت خودتان ببینید.

مدل تهدید و کنترل‌های واقعی را با تیم امنیت شما مرور می‌کنیم.