اگر امروز دسترسی مستقیم به محیط تولید (Production) را به یک عامل هوش مصنوعی بدهید، در واقع یک قمار خطرناک را پذیرفتهاید. تنها راه نجات، ایجاد مرزهایی است که خارج از دسترس و کنترل مدل قرار داشته باشند. بدون این محدودیتها، هر خطای کوچک در مدل میتواند به یک فاجعه زیرساختی تبدیل شود.
طبق مستندات منتشرشده در ۱۷ ژوئیه ۲۰۲۶، معماری عامل DevOps در SlackOps یک چرخش راهبردی از «ایمنی مبتنی بر پرامپت» به سمت «مرزهای اجباری در زمان اجرا» را معرفی کرده است. همانطور که در تحلیلهای پیشین ما دربارهی امنیت سیستمهای عاملمحور اشاره کردیم، تکیه صرف به دستورات سیستمی برای کنترل مدلها کافی نیست؛ زیرا مدلها میتوانند تحت تأثیر ورودیهای خارجی، دستورات ایمنی را نادیده بگیرند.
به گزارش تیم SlackOps، خطر واقعی زمانی رخ میدهد که یک عامل (Agent) — مثل دستیاری که همزمان کلید تمام اتاقها را دارد و به هر کسی گوش میدهد — قدرت خواندن دادههای خصوصی، پردازش محتوای نامعتبر و ارتباط با سرورهای خارجی را بهطور همزمان داشته باشد. این «تثلیث مرگبار» (Lethal Trifecta)، تزریق پرامپت (Prompt Injection) را به یک نقطه شکست بحرانی تبدیل میکند. این آسیبپذیری دقیقاً همان نقطهای است که در بررسی نفوذ به عامل DevOps شرکت AWS مورد تحلیل قرار دادیم و نشان دادیم چگونه دستکاری لاگها میتواند منجر به اجرای دستورات غیرمجاز شود. برای حل این مشکل، نسخه دوم SlackOps مدل را بهطور کامل از مسیر «نوشتن» یا ایجاد تغییرات حذف کرده است تا هیچ دسترسی مستقیمی به تغییر وضعیت سیستم نداشته باشد.
حلقه عملیاتی پنجمرحلهای
این سیستم بر اساس یک حلقه سختگیرانه و صلب عمل میکند که شامل این مراحل است: شناسایی (Detect)، پیشنهاد (Propose)، اعلان (Notify)، تأیید (Approve) و اجرا (Execute). یک هشدار در CloudWatch یا یک پیام در اسلک، یک پیشنهاد را فعال میکند. این پیشنهاد در لایه کنترلی DynamoDB ذخیره میشود تا تاریخچه و وضعیت آن ردیابی شود. قبل از هرگونه تغییر، یک انسان باید تفاوتهای کد (Diff) را بهطور دقیق بررسی کرده و یک برنامه اجرای تغییرناپذیر را تأیید کند تا اطمینان حاصل شود که هیچ تغییری خارج از محدوده مورد نظر رخ نمیدهد.

۱. خواندنهای محدود در برابر ابزارهای عمومی
در نسخه اول، عامل از یک API عمومیِ فقطخواندنی AWS استفاده میکرد که دامنه وسیعی از دسترسیها را میپوشاند. در نسخه دوم، این مورد با آداپتورهای (Adapters) اختصاصی boto3 جایگزین شده است. این لایههای سازگارساز، عامل را تنها به سرویسها، مناطق (Regions) و پیشوندهای لاگ (Log Prefixes) مشخصی محدود میکنند. اگر درخواستی خارج از این محدوده تعریفشده باشد، آداپتور حتی پیش از آنکه مدل زبانی بزرگ (LLM) — مثل کتابخانهداری که میلیاردها صفحه را خوانده و حالا با همان لحن کتابها جواب میدهد — دادهها را ببیند، آن را رد میکند و اجازه دسترسی نمیدهد.
۲. مرز دادههای نامعتبر
برای مقابله با حملات تزریق پرامپت، تمام دادههای خارجی — از جمله پیامهای دریافتی در اسلک و خروجیهای محیط کوبرنتیز — ابتدا پاکسازی شده و سپس در تگهای <untrusted_data> بستهبندی میشوند. نکته کلیدی و حیاتی این است که مرحله تحلیل (Analysis Phase) هیچ ابزار اجرایی در اختیار ندارد. این بدان معناست که حتی اگر مدل تحت تأثیر یک دستور مخرب که در یک فایل لاگ پنهان شده است قرار بگیرد و تصمیم بگیرد از آن پیروی کند، هیچ مکانیزمی برای تبدیل این تصمیم به یک اقدام عملی در سیستم ندارد.
۳. جداسازی هویت و اعتبارنامهها
امنیت سیستم با استفاده از اعتبارنامههای کوتاهمدت بهشدت تقویت شده است. سیستم از توکنهای AWS STS استفاده میکند که هر ۴۵ دقیقه بازسازی شده و تنها یک ساعت اعتبار имеют. این کار باعث میشود حتی در صورت سرقت توکن، پنجره زمانی حمله بسیار محدود باشد. برای عملیات گیتهاب نیز، ورکر (Worker) هیچ توکن دائمی را نگهداری نمیکند؛ بلکه تنها پس از تأیید انسانی، یک توکن محدود (Scoped) برای اپلیکیشن گیتهاب ایجاد کرده و بلافاصله پس از خروج از پردازش، آن توکن را ابطال میکند.

۴. برنامههای اجرای تغییرناپذیر
تأیید در SlackOps به معنای دادن اجازه برای «انجام چیزی شبیه به این» نیست. سیستم یک برنامه اجرای استاندارد (Canonical ExecutionPlan) میسازد که شامل هشهای (Hashes) دقیق درخواست و تفاوتهای کد است. پیش از مرحله اجرا، ورکر این هشها را مجدداً محاسبه میکند. اگر پس از کلیک «تأیید» توسط انسان، حتی یک فایل تغییر کرده باشد یا زنجیره ابزارها گسترش یابد، عملیات بهطور خودکار متوقف شده و سیستم در حالت بسته (Fail Closed) باقی میماند.
۵. حذف مدل از مسیر نوشتن
مدل تنها نقش پیشنهاد دهنده را دارد؛ مدل تغییر را پیشنهاد میدهد، اما هرگز آن را ارسال نمیکند. تابع app.pr_execution.open_pr یک توالی قطعی و الگوریتمیک را طی میکند: ایجاد شاخه (Branch)، افزودن مسیرهای تأیید شده، کامیت (Commit)، پوش (Push) و در نهایت تأیید. هیچ خروجی متنی از LLM تعیین نمیکند که کد چگونه و به چه صورتی به محیط تولید ارسال شود؛ تمام این مراحل توسط کد تخطیناپذیر مدیریت میشود.
پیادهسازی و حفاظها
برای جلوگیری از حملات زنجیرهای دستورات (Command-Chaining)، SlackOps از یک طرحواره argv استفاده میکند. هر فراخوانی Bash ابتدا نرمال شده و در یک قلاب PreToolUse با طرحواره حفاظها بررسی میشود. وجود هرگونه جداکننده یا پرچمهای (Flags) غیرمنتظره باعث توقف فوری سیستم میشود.
به هر ابزار یکی از پنج سطح قابلیت اختصاص مییابد: read (خواندن)، sensitive-read (خواندن حساس)، write-low (نوشتن کمریسک)، write-high (نوشتن پرریسک) یا privileged (ویژه). سیستم یک سقف ریسک (RISK_CEILING) با مقدار ۱۰ را اعمال میکند. اگر مجموع امتیاز ابزارهای مورد نیاز برای یک شغل از این مقدار بیشتر شود، عملیات با رویداد capability_drift خاتمه مییابد تا از گسترش ناخواسته دسترسیها جلوگیری شود.

عملکرد تأیید شده و هزینه
بر اساس بررسیهای فنی انجام شده تا ۱۵ ژوئیه ۲۰۲۶، این مرزها روی یک نمونه تازه EC2 تأیید شدهاند؛ آزمایشها تایید کردند که خروجیهای مستقیم (Direct Egress) کاملاً مسدود شده و تنها دسترسی به پروکسیهای مجاز از طریق Squid امکانپذیر است. در تلاش برای بهینهسازی استقرار این زیرساختها، معرفی حالت Express در AWS توانست زمان استقرار عاملهای هوش مصنوعی را تا نصف کاهش دهد و سرعت عملیاتی را افزایش دهد.
از نظر هزینه، سناریوی عملیاتی یک روز کاری با ۲۲۰ ساعت EC2 در ماه، حدود ۱۲ دلار تخمین زده میشود. همچنین طبق ردیابیهای داخلی پروژه، هر بار بررسی و تحلیل توسط مدل Claude بسته به حجم دادهها، بین ۰.۱۵ تا ۰.۵۰ دلار هزینه دارد.
این معماری ثابت میکند که ایمنی هوش مصنوعی در DevOps مربوط به یافتن پرامپت کامل یا جادویی نیست، بلکه ایجاد اطمینان از این است که حتی در صورت شکست پرامپت، هویت، مسیر شبکه و وضعیت اجرا محدود و محصور باقی بمانند. با انتقال قدرت از لایهی مدل به کدهای قطعی (Deterministic Code)، توسعهدهندگان میتوانند در نهایت به عاملها برای مدیریت محیطهای تولید اعتماد کنند.
گام بعدی شما
- بررسی لیست ۱۰ مورد اول OWASP برای اپلیکیشنهای عاملمحور (Agentic Applications) جهت شناسایی نقاط ضعف امنیتی.
- ارزیابی این مسئله که آیا عاملهای فعلی شما «تثلیث مرگبار» (دسترسی به دادههای خصوصی، پردازش محتوای نامعتبر و خروجی شبکه باز) را بهطور همزمان دارا هستند یا خیر.
- انتقال منطق تأیید از لایه مدل به لایههای قطعی کد در زیرساخت خود برای حذف ریسکهای احتمالی.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو