وقتی عامل کدنویسی هوش مصنوعی کل دایرکتوری خانگی رو پاک میکنه
خلاصهٔ کاملتر
این مطلب قسمت دوم مجموعهٔ «داستانهای ترسناک عاملهای کدنویسی» داکره و روی مخربترین حالت شکست تمرکز میکنه: پاک شدن کل دایرکتوری خانگی توسعهدهنده با یک دستور. در دسامبر ۲۰۲۵ یک کاربر ردیت تعریف کرد که از Claude Code خواسته یک ریپوی قدیمی رو تمیز کنه و عامل یک دستور حذف بازگشتی (rm -rf) ساخت که در انتهاش یک ~/ داشت؛ همون اسلش پایانی باعث شد کل خونهٔ کاربر روی مک پاک بشه. به گفتهٔ نویسنده این نه یک CVE بود نه حملهٔ پیچیده، فقط عامل دقیقاً همون کاری رو کرد که بهش گفته شد، بدون هیچ مرزی که جلوی اشتباه رو بگیره.
نویسنده تأکید میکنه که این یک اتفاق تکی نبوده، بلکه یک الگوست. چند نمونهٔ مشابه دیگه هم اشاره شده: یک گزارش روی Ubuntu/WSL2 که توش عامل از ریشه شروع به حذف کرد، یک باگ که عامل اول پوشهای دقیقاً به نام ~ ساخته بود و بعد موقع پاک کردنش شل اون رو به خونهٔ واقعی کاربر بسط داد، و موردی که عامل موقع مرتب کردن دسکتاپ، پوشهای با ۱۵ سال عکس خانوادگی رو حذف کرد. به گفتهٔ نویسنده اینا یک داستان واحدن با مسیرهای فایل متفاوت.
ریشهٔ معماری این شکستها هم اینه: عامل کدنویسی یک شلِ هدایتشده با هوش مصنوعیه که پرامپت رو میخونه، دستور میسازه و همون رو مستقیم روی سیستمعامل و با دسترسی کامل کاربر اجرا میکنه. هیچ گام جداگانهای برای «تأیید قبل از اجرا» وجود نداره؛ گام استدلال و گام اجرا یکیان. وراثت دسترسی هم کامله: هر کاری شل کاربر بتونه بکنه، عامل هم میتونه. فلگ بدنام --dangerously-skip-permissions هم همون تنها تور ایمنی پیشفرض (تأیید گرفتن قبل هر دستور) رو برمیداره، و چون آدمها برای راحتی روشنش میکنن، عامل میتونه دستور مخرب رو بدون دخالت اجرا کنه.
راهحل پیشنهادی داکر، Docker Sandboxes هست که بهجای هوشمندتر کردن عامل، جای اجرای عامل رو عوض میکنه. عامل داخل یک microVM با کرنل، فایلسیستم و شبکهٔ مخصوص خودش اجرا میشه و چیزی که بهعنوان ~/ میبینه فقط همون ورکاسپیس مونتشدهست، نه خونهٔ واقعی کاربر. پس اگه همون دستور حذف بازگشتی رو هم اجرا کنه، فقط فایلهای داخل سندباکس پاک میشن و میزبان دستنخورده میمونه.
نویسنده چند لایهٔ محافظ دیگه هم میشمره: مسیرهای حساس اعتبارنامه (مثل ~/.ssh و ~/.aws و ~/.gnupg) بهصورت پیشفرض از مونت شدن مسدودن، مونتهای فقطخواندنی با پسوند :ro در سطح کرنل اعمال میشن، عملیات خطرناک میتونه روی یک worktree ایزولهٔ گیت اجرا بشه تا قبل از مرج بازبینی بشه، و خودِ سندباکسها دورانداختنیان. توصیهٔ کلیدی نویسنده اینه: عاملهای کدنویسی رو مستقیم روی میزبان اجرا نکن و فلگ skip-permissions رو فقط داخل سندباکس استفاده کن.
نکات کلیدی:
- یک ~/ اضافه در دستور حذف بازگشتی، کل خونهٔ کاربر رو پاک کرد
- ریشهٔ مشکل باگ مدل نیست؛ عامل با دسترسی کامل و بدون مرز روی میزبان اجرا میشه
- فلگ --dangerously-skip-permissions تنها تور ایمنی پیشفرض رو برمیداره
- Docker Sandboxes عامل رو در یک microVM ایزوله میذاره که فقط ورکاسپیس رو میبینه
- مسدودسازی مسیر اعتبارنامه، مونت فقطخواندنی و سندباکس دورانداختنی، این کلاس خطا رو مهار میکنن




