فراتر از SLSA: توقف کرم‌های CI/CD با یک برنامه ۹ مرحله‌ای

مرزهای امنیتی نرم‌افزار شما فرو ریخته است.

روش‌های قدیمی بر اسکن کانتینرها و مسدود کردن بسته‌های مخرب تمرکز داشتند. این دیگر کافی نیست. بین سال‌های ۲۰۲۵ و ۲۰۲۶، تهدید جدیدی پدیدار شد. مهاجمان اکنون از کرم‌های خودمختاری استفاده می‌کنند که مستقیماً ابزارهای توسعه‌دهنده و خط لوله‌های (pipelines) CI/CD را آلوده می‌کنند.

ابزارهای استاندارد مانند SLSA Level 3 نسبت به این تهدیدات کور هستند. یک کرم می‌تواند حتی پیش از آنکه کانتینری بسازید، اعتبارنامه‌های (credentials) شما را سرقت کند یا کش (cache) شما را مسموم کند. گزارش امنیتی نهایی شما ممکن است کاملاً بی‌نقص به نظر برسد، حتی اگر حاوی کدهای مخرب باشد.

برای رفع این مشکل، از چارچوب IX Hexbreaker Aegis استفاده کنید. این یک دفاع ۹ مرحله‌ای برای محافظت از محیط محلی و عوامل هوش مصنوعی (AI agents) شما است.

۹ مرحله دفاع:

  • سندباکس کردن عوامل هوش مصنوعی (AI Agent Sandboxing): دستیارهای هوش مصنوعی را درون کانتینرهای ایزوله Docker اجرا کنید. این کار از سرقت اعتبارنامه‌های میزبان توسط آن‌ها جلوگیری می‌کند.
  • تجزیه فضای کاری (Workspace Parsing): فایل‌های پیکربندی مخفی را پیش از بارگذاری، برای یافتن دستورالعمل‌های مخرب اسکن کنید.
  • محیط‌های موقت (Ephemeral Environments): از کانتینرهای توسعه از راه دور مانند GitHub Codespaces برای ایزوله کردن ماشین محلی خود استفاده کنید.
  • کمینه‌سازی دامنه OIDC (OIDC Scope Minimization): به توکن‌های خط لوله خود، کمترین سطح دسترسی ممکن و عمر کوتاهی اختصاص دهید.
  • کش غیرقابل تغییر (Immutable Caching): کش‌های مورد استفاده در درخواست‌های Pull Request را از کش‌های مورد استفاده در نسخه‌های رسمی جدا کنید.
  • کامیت‌های مبتنی بر سخت‌افزار (Hardware-Backed Commits): از کلیدهای امنیتی FIDO2 مانند YubiKeys استفاده کنید. یک کرم نمی‌تواند برای امضای یک کامیت، به صورت فیزیکی با یک کلید تماس برقرار کند.
  • مشاهده‌پذیری در زمان ساخت (Build-Time Observability): از eBPF برای نظارت بر فرآیندهای غیرعادی در طول فرآیند ساخت استفاده کنید.
  • فیلترینگ خروجی (Egress Filtering): تمام ترافیک شبکه خروجی از اجراکننده‌های (runners) CI/CD خود را به جز سایت‌های مورد اعتماد، مسدود کنید.
  • پرامپت‌های هوش مصنوعی با اعتماد صفر (Zero-Trust AI Prompts): کارهایی که ابزارهای کدنویسی هوش مصنوعی شما می‌توانند انجام دهند را محدود کنید. اجازه ندهید بدون تایید شما، اسکریپت‌های شل (shell scripts) را اجرا کنند.

نحوه پیاده‌سازی:

فاز ۱: اصلاح دسترسی‌ها و کش. دسترسی OIDC را محدود کرده و کلیدهای کش خود را ایزوله کنید.

فاز ۲: مقاوم‌سازی خط لوله. از فیلترهای شبکه استفاده کنید و نسخه‌های اکشن (action versions) خود را به شناسه‌های کامیت (commit IDs) خاص محدود کنید.

فاز ۳: ایزولاسیون کامل. تمام توسعه را به کانتینرها منتقل کنید و استفاده از کلیدهای امنیتی سخت‌افزاری را برای تمام کامیت‌ها الزامی کنید.

برخورد با امنیت زنجیره تأمین به عنوان یک کار ساده و گذرا (checkbox)، منجر به شکست خواهد شد. شما باید از محیطی که کد در آن نوشته می‌شود محافظت کنید.

منبع: https://dev.to/docker/beyond-slsa-how-to-stop-zero-click-cicd-worms-with-a-9-step-plan-1l36

انجمن یادگیری اختیاری: https://t.me/GyaanSetuAi