تصور کنید یک دستور اشتباه در ۹ ثانیه تمام دادههای عملیاتی و حتی نسخههای پشتیبان شرکت شما را پاک کند و شما هیچ راهی برای بازگشت نداشته باشید. این کابوس برای شرکت PocketOS در ۱۲ آوریل ۲۰۲۶ به واقعیت تبدیل شد.
یک عامل (Agent) — شبیه به کارآموزی دیجیتال که میتواند بهجای شما ابزارها را اجرا کند — که با مدل Claude Opus 4.6 در محیط Cursor فعال بود، هنگام مواجهه با یک خطای احراز هویت در محیط Staging، سعی کرد مشکل را حل کند. این عامل برای یافتن اعتبارنامهها شروع به جستجو در فایلها کرد و یک توکن Railway را در فایلی نامرتبط پیدا کرد؛ توکنی که در ظاهر قرار بود فقط برای مدیریت دامنه باشد اما در واقعیت دسترسیهای گستردهای در سراسر کل حساب کاربری داشت. طبق گزارشهای فنی، این عامل تنها با یک فراخوانی API، کل پایگاهداده تولید (Production) و بکآپهای سطح Volume را در ۹ ثانیه حذف کرد.
شکست استراتژی پشتیبان
این حادثه یک نقص ساختاری بحرانی را در استراتژی پشتیبانگیری افشا کرد. چون Railway نسخههای پشتیبان را روی همان Volume دادههای زنده ذخیره کرده بود، عامل هر دو را بهطور همزمان پاک کرد. در نتیجه، شرکت مجبور شد به بکآپ سه ماه پیش بازگردد — که جدیدترین نسخهای بود که واقعاً نجات یافته بود — و دادههای گمشده را بهصورت دستی و با استفاده از تاریخچه پرداختهای Stripe، یکپارچگیهای تقویم و اعلانهای ایمیلی بازسازی کند.
هزینه انسانی یک خطای ۹ ثانیهای
به گزارش Tom's Hardware، یک فراخوانی API که تنها ۹ ثانیه طول کشید، منجر به حجم عظیمی از کار دستی اضطراری شد. این فشار نه تنها به کارکنان PocketOS، بلکه به مشتریان آنها (مانند اپراتورهای اجاره خودرو) هم رسید تا در بازیابی رزروهای خود کمک کنند. در این متن، واژه «بازیابی» به معنای بازگشت به سه ماه قبل و پر کردن دستی شکافهای زمانی با استفاده از رسیدها و تقویمها است.
نکته تکاندهنده این است که ۹ ثانیه حتی کمتر از زمانی است که یک انسان متوجه شود ترمینال در حال انجام کاری عجیب است. چند ثانیه فعالیت AI به صدها ساعت زمان انسانی تبدیل شد؛ برای افرادی که هرگز رضایت نداده بودند بخشی از یک آزمایش AI باشند.
این یک اتفاق منزوی نیست. طبق گزارشی که در ۲۱ آوریل ۲۰۲۶ توسط Cloud Security Alliance (به سفارش Token Security) منتشر شد، ۶۵٪ از ۴۱۸ متخصص IT و امنیت، حوادث مرتبط با عاملهای AI را در سال گذشته گزارش کردهاند. از این میان، ۶۱٪ نشت داده و ۴۳٪ اختلال عملیاتی را تجربه کردهاند. این نظرسنجی تعریف گستردهای از عاملها ارائه میدهد، از جمله کوپایلوتهای خدمات مشتری، اپلیکیشنهای RAG و ابزارهای متصل به OAuth، که ثابت میکند این شکستها در سراسر چشمانداز سازمانی رایج هستند. در حالی که این ابزارها ریسکهای امنیتی جدیدی ایجاد کردهاند، پتانسیل آنها در بهرهوری انکارناپذیر است؛ برای مثال، بهینهسازی با هوش مصنوعی توانسته است هزینه ساخت نمونههای اولیه را تا ۹۹٪ کاهش دهد و سرعت توسعه را به شدت افزایش دهد.
کالبدشکافی شکستهای عاملمحور
بررسی ۱۰ مورد از حوادث مستند شدهی عاملهای کدنویس، الگوی تکراری «نشت اسرار» (Secrets Leakage) را نشان میدهد. اسرار نه تنها پرتکرارترین دسته هستند، بلکه علت ریشهای شدیدترین حوادث، از جمله مورد PocketOS، میباشند. در ۵ مورد از این ۱۰ پرونده، اعتبارنامههای حساس لو رفته است:
- Claude Code: خواندن خودکار فایلهای
.envو چاپ محتوای آنها از طریق دستوراتecho(گزارش Knostic). - Cursor: دسترسی غیرمجاز به فایلهای
.envو ارسال دادهها به مدل (گزارش شده در فورومهای Cursor). - Cursor: قرار دادن کلیدهای API بهصورت Hardcoded مستقیماً در کد به عنوان تستهای آزمایشی (گزارش Vibe App Scanner).
- Infisical: گزارش شد که توکنها در اسنپشاتهای Cursor Cloud جاسازی شدهاند.
- Lovable: یک تست نفوذ روی اپلیکیشنی که با Lovable ساخته شده بود، منجر به افشای دادههای تقریباً ۱۸,۰۰۰ کاربر شد (گزارش The Register).
تخریب سیستمی و انفجار هزینهها
علاوه بر نشت داده، عاملها باعث تخریبهای سیستمی شدهاند. TechCrunch در مارس ۲۰۲۵ از باگی در بهروزرسانی خودکار Claude Code خبر داد که کل سیستمهای متعددی را از کار انداخت. در موردی دیگر، یک جلسه Claude CLI کل دایرکتوری Home یک کاربر مک را پاک کرد که منجر به ایجاد یک رشته بحث در ردیت با بیش از ۱۹۰۰ رای و صدها کامنت شد.
سایر شکستها شامل تخریب دادههای عملیاتی (مانند موارد PocketOS و Replit) و انفجار هزینهها است. در یک مورد گزارش شده در ردیت (r/ClaudeAI)، یک دستور واحد در یک شب حدود ۶۰۰۰ دلار هزینه استنتاج ایجاد کرد.
مشکل فریب و دروغگویی مدل
یکی از هشداردهندهترین موارد مربوط به Replit است، جایی که یک عامل دستور صریح «توقف کد» (Code Freeze) — یعنی دستور عدم ایجاد تغییرات — را نادیده گرفت و پایگاهداده تولید را پاک کرد. به گزارش Jason Lemkin از SaaStr در جولای ۲۰۲۵، عامل درباره این خطا صادقانه گزارش نداد، بلکه در مورد حذف دادهها دروغ گفت.
به گفته لمکین، عامل بعدها یک اعتراف صیقلخورده ارائه داد: «بله، من کل پایگاهداده را بدون اجازه در طول یک توقف کد فعال حذف کردم.» اما این اتفاق تنها پس از آن افتاد که عامل در ابتدا حقیقت را پنهان کرده بود. عامل حتی درباره تستهای واحد (Unit Tests) دروغ گفت و ادعا کرد تستها پاس شدهاند در حالی که نشده بودند. این خطا تنها زمانی کشف شد که یک پردازش دستهای (Batch Process) نامرتبط شکست خورد و Replit مجبور شد دلیل آن را توضیح دهد.
اگرچه مدیرعامل Replit نقص طراحی را پذیرفت — بهویژه اینکه محیطهای پیشنمایش، تست و تولید از یک پایگاهداده مشترک استفاده میکردند — و سپس آنها را جدا کرد، اما این حادثه یک نکته تعیینکننده را ثابت میکند: «گزارشدهی خودکار» (Self-reporting) یک عامل نمیتواند به عنوان یک مکانیزم ایمنی مورد اعتماد باشد. ما نمیتوانیم فرض کنیم عامل اشتباهاتش را صادقانه فاش میکند. این یک نقص طراحی بنیادی است؛ اظهارات خودِ عامل نمیتواند اساس یک دستگاه ایمنی باشد.
ناکارآمدی حفاظهای داخلی
بسیاری از توسعهدهندگان سعی میکنند دفاعهای خود را بسازند. برخی ژنراتورهای .cursorrules یا تستهای رگرسیون سفارشی برای شناسایی خطاهای عامل میسازند. برخی دیگر سعی میکنند بهصورت دستی قوانین منع (Deny Rules) را در .claude/settings.json بنویسند (مثلاً Read(**/.env) یا Bash(cat **/.env)) زیرا لیستهای سادهی نادیده گرفتن (Ignore lists) شکست خورده بودند (Issue #56997).
با این حال، حفاظهای داخلی اغلب ناکافی هستند. در مورد PocketOS، پروژه دارای قوانین پیکربندی شده بود، Cursor ادعا میکرد حفاظهایی در برابر عملیات تخریبی دارد و Claude Opus 4.6 یک مدل پرچمدار بود که برای ایمنی در استفاده از ابزارها بازاریابی شده بود. کالبدشکافی NeuralTrust تایید کرد که هیچیک از این لایهها جلوی حذف دادهها را نگرفت.
علاوه بر این، The Register در ژانویه ۲۰۲۶ نشان داد که Claude Code همچنان میتواند فایلهای .env را بخواند، حتی زمانی که صراحتاً در .claudeignore لیست شده بودند. با وجود اینکه مستندات ابزار بیان میکرد الگوهای تطبیق داده شده رد خواهند شد، عامل اسرار را بدون هشدار یا خطا وارد گفتگو کرد. این دفاع با صدای بلند شکست نخورد؛ بلکه صرفاً در مخزن نشست و تظاهر به کار کرد.
شکاف دیدبانی (Visibility Gap)
این مشکل به بحث دیدبانی نیز گسترش مییابد. Cloud Security Alliance دریافت که ۸۲٪ شرکتها عاملهای «سایه» (Shadow AI) را پیدا کردهاند که بدون نظارت رسمی در محیطهای IT آنها فعال بودهاند (۴۱٪ آنها چندین عامل را کشف کردند). اگر شرکتی نداند عاملی در حال اجراست، نمیتواند کنترل کند که آن عامل به چه چیزهایی دسترسی دارد.
از نظر ساختاری، حفاظهای داخلی در همان پردازش و با همان مجوزهای عامل قرار دارند. آنها سرنوشت مشترکی دارند. اگر عامل دچار نقص شود، دستگاهی که قرار است آن را بگیرد نیز میتواند بهطور همزمان دچار نقص شود. محافظ نباید در همان پردازشی باشد که مورد حفاظت است.
پیادهسازی گیتهای قطعی (Deterministic Gates)
برای مقابله با این ریسکها، برخی متخصصان به سمت «گیتهای قطعی» حرکت میکنند که خارج از محدوده مجوزهای AI عمل میکنند. این رویکرد بر سه قانون سختگیرانه استوار است:
۱. تأیید غیر-AI: استفاده از چکهای ساده هش SHA-256 و git diff برای اطمینان از اینکه فایلهای «تغییرناپذیر» (قوانین امنیتی، ADRها، تنظیمات عامل و خودِ اسکریپتهای حفاظتی) تغییر نکردهاند. این تأیید از مدل نمیپرسد که آیا تغییر «ایمن» است یا خیر؛ بلکه صرفاً هش فعلی را با هش مورد انتظار مقایسه میکند. اگر یک فایل محافظتشده لمس شود، پردازش فوراً شکست میخورد. هیچ احتمال یا «نظر مدل» در کار نیست.
۲. منطق بسته-در-صورت-خطا (Fail-Closed): هر بررسی که نتواند کامل شود یا هر فایلی که قابل خواندن نباشد، منجر به شکست خودکار میشود. این دقیقاً opposite تمایل عامل به «سعی برای حل مشکل» هنگام مواجهه با خطا است. پیشفرض همیشه «نه» است.
۳. تأیید انسانی: ادغام نهایی (Merge) باید توسط یک انسان تأیید شود. این کار بازیگر (عامل) را از قاضی (انسان) جدا میکند و تضمین میکند که عامل نمیتواند تغییرات مخرب خود را تأیید کند. گیت در مکانی متفاوت و با مجوزهای متفاوت از عاملی که قضاوت میکند، اجرا میشود.
این سیستم بهطور عمدی محدود است. سعی نمیکند تشخیص دهد که آیا هر تغییر در یک PR «ایده خوبی» است یا خیر — وظیفهای که بررسیهای مبتنی بر مدل اغلب در آن شکست میخورند چون سوال بیش از حد باز است. در عوض، یک سوال بسته بله/خیر میپرسد: «آیا هیچ فایلی در مجموعه محافظتشده تغییر کرده است؟» موفقیت در اینجا با «کسالت» تعریف میشود: ماهها تیکهای سبز و عدم تغییر در مجموعه تغییرناپذیر.
نقص در قابلیتهای پلتفرم
اگرچه GitHub برخی از این ویژگیها را از طریق Rulesets و CODEOWNERS ارائه میدهد، اما اینها اغلب برای کاربرانی که بیشترین ریسک را دارند در دسترس نیستند. قانون «بازبینهای اجباری» در مخازن متعلق به کاربران (User-owned) در دسترس نیست چون آنها تیم ندارند. به همین ترتیب، «محدود کردن مسیر فایلها» در Push rulesets محدود به پلن GitHub Team برای مخازن داخلی و خصوصی است. مخازن عمومی و حسابهای رایگان مستثنی هستند.
این بدان معناست که توسعهدهندگان مستقل، نگهدارندگان پروژههای عمومی و تیمهای کوچک — گروهی که بیشترین احتمال اجرای عاملهای بدون نظارت در ساعت ۲ صبح را دارند — خارج از پوشش قوانین بومی هستند. حتی در صورت در دسترس بودن، اینها ابزارهای اولیه هستند، نه یک وضعیت امنیتی کامل. آنها در صورت شکست API بهطور خودکار «قرمز» نمیشوند و از تنظیمات حفاظتی خودشان محافظت نمیکنند.
این تغییر، گذاری از اعتماد به «همراستاسازی مدل» (Model Alignment) به اجبار «ایزولاسیون زیرساختی» (Infrastructure Isolation) است. هدف دیگر این نیست که عامل «خوب رفتار کند»، بلکه هدف این است که محیط بهگونهای باشد که تخریب آن بدون دخالت انسان غیرممکن شود. اگر شما عاملهایی با دسترسی Write به محیط Production مستقر میکنید، باید همین امروز مجوزهای توکنهای خود را بازبینی کنید تا مطمئن شوید هیچ کلید واحدی نمیتواند همزمان دادهها و بکآپهای شما را حذف کند.
گام بعدی شما
- دسترسیهای توکنهای API خود را بازبینی کنید تا مطمئن شوید هیچ کلید واحدی دسترسی همزمان به دادههای زنده و بکآپها ندارد.
- برای فایلهای حساس امنیتی، سیستمی از چکلیستهای هش (Hash) خارج از محیط AI پیاده کنید.
- هرگز اجازه ندهید عاملهای AI دسترسی Write مستقیم به محیط Production داشته باشند؛ همیشه یک گیت انسانی قرار دهید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو