توقف نشت دادههای حساس در Claude Code با سیاستهای سختافزاری
خلاصهٔ کاملتر
وقتی از Claude Code صحبت میکنیم، دیگه با یه چتبات معمولی طرف نیستیم. این ابزار میتونه بهطور مستقل دستور اجرا کنه، سورسکد رو تغییر بده و وبگردی کنه — یعنی کلیدها دستشه. این قدرت دقیقاً همون چیزیه که Claude Code رو مفید میکنه، ولی در عین حال ریسک امنیتی جدی هم ایجاد میکنه.
مثلث مرگبار (Lethal Trifecta) سه عاملیه که با هم ایجنت رو هم مفید و هم خطرناک میکنن: دسترسی به دادههای خصوصی، مواجهه با محتوای غیرقابل اعتماد از وب یا کدهای ثالث، و توانایی تغییر state مثل نوشتن فایل یا push کردن کد. حذف هر کدوم از اینا یعنی از بین بردن کارایی ایجنت.
نویسنده یه سناریوی واقعی مطرح میکنه: یه سازمان غیرانتفاعی میخواد از Claude Code برای نگهداری پایگاهدادهای استفاده کنه که اطلاعات پناهندگان، مختصات GPS خانههای امن و یادداشتهای ریسک رو نگه میداره. وقتی توسعهدهنده میخواد مدل داده رو بررسی کنه، ایجنت کل فایل حساس رو میخونه و وارد context window خودش میکنه. بعد وقتی از ایجنت خواسته میشه بهترین شیوههای UNHCR رو از اینترنت چک کنه، ایجنت ممکنه همون دادههای حساس رو ناخواسته داخل درخواست خروجی بفرسته.
چرا prompt کافی نیست؟ اضافه کردن یه خط به AGENTS.md که بگه «داده حساس رو به اینترنت نده» یه راهحل نمادینه نه واقعی. ایجنتهای هوش مصنوعی موتورهای احتمالاتی و خلاقانهان. نمیشه یه ماشین خودران رو با «پیشنهاد» وادار به ترمز کرد — باید ترمزها رو برنامهریزی کرد تا همیشه کار کنن.
راهحل معرفیشده Agent Harness یا لایه محافظ ایجنته که امنیت رو از لایه متن به لایه عمل منتقل میکنه. این لایه هر tool call یا درخواست API رو پیش از اجرا رهگیری میکنه. برای بیان قوانین، از Cedar بهعنوان یه زبان سیاست قطعی و قابلممیزی استفاده میشه. مثلاً این rule میگه هر زمان ایجنت دادهای با برچسب HighlyConfidential در trajectory خودش داشته باشه، هیچ WebFetchای مجاز نیست:
@id("ifc-forbid-webfetch-highly-confidential")
@description("IFC: block all web fetches when trajectory carries highly confidential data — unconditional outbound lockdown.")
forbid (
principal,
action == Action::"WebFetch",
resource
)
when {
resource.label == Label::"HighlyConfidential"
};این rule به این معناست که به محض اینکه ایجنت در هر مرحلهای از session (چه قدم سوم، چه قدم هفتادم) داده محرمانه رو بخونه، تمام WebFetchهای بعدی بلاک میشن — بدون استثنا.
Trajectory-Aware State یکی از مهمترین اجزای این سیستمه. Harness کل تاریخچه session رو دنبال میکنه و میدونه که سه مرحله پیش ایجنت یه فایل محرمانه خونده. این پروفایل ریسک تا پایان session با ایجنت همراهه. برای تشخیص دادههای حساس هم میشه از ابزارهای DLP، طبقهبندهای ML و heuristic استفاده کرد.
نتیجه عملی اینه که Claude Code همچنان میتونه به دادههای حساس دسترسی داشته باشه و باهاشون کار کنه، ولی با اطمینان از اینکه هیچوقت بهطور تصادفی این دادهها رو به بیرون لیک نمیکنه. اگه ایجنت بلاک بشه، کاربر میتونه یه session جدید باز کنه و بدون داده حساس در context window، تحقیقاتش رو انجام بده. علاوه بر این، Harness یه audit log کامل از تمام actionهای مجاز و مسدودشده نگه میداره که برای اثبات به ذینفعان، ممیزان و نهادهای نظارتی قابل استفادهست.
نکات کلیدی:
- Claude Code یه ایجنت کاملاً مستقله نه فقط یه چتبات — میتونه فایل بخونه، دستور اجرا کنه و وبگردی کنه
- ترکیب دسترسی به داده حساس + اینترنت + توانایی اقدام مستقل = مثلث مرگبار
- prompt دادن به ایجنت برای «امنیت» کافی نیست؛ ایجنتها احتمالاتی عمل میکنن نه قطعی
- راهحل واقعی Agent Harness با سیاستهای Cedar است که در لایه عمل (نه متن) کار میکنه
- سیستم Trajectory-Aware State کل تاریخچه session رو دنبال میکنه و به محض آلودگی context، WebFetch رو بلاک میکنه
- audit log کامل امکان اثبات رفتار ایجنت به ممیزان و نهادهای نظارتی رو فراهم میکنه




