رفتن به محتوا

امنیت

با محافظت‌های امنیتیِ Claude Code و بهترین شیوه‌ها برای استفاده‌ی ایمن آشنا شو.

امنیتِ کدِ تو در درجه‌ی اول اهمیت است. Claude Code با امنیت در هسته‌اش ساخته شده و طبقِ برنامه‌ی جامعِ امنیتیِ Anthropic توسعه یافته است. در مرکزِ اعتمادِ Anthropic بیشتر بدان و به منابع (گزارشِ SOC 2 Type 2، گواهیِ ISO 27001 و غیره) دسترسی پیدا کن.

معماریِ مبتنی بر دسترسی

Section titled “معماریِ مبتنی بر دسترسی”

Claude Code به‌صورتِ پیش‌فرض از دسترسی‌های سخت‌گیرانه‌ی فقط‌خواندنی استفاده می‌کند. وقتی اقدام‌های اضافی لازم باشد (ویرایشِ فایل‌ها، اجرای تست‌ها، اجرای فرمان‌ها)، Claude Code مجوزِ صریح می‌خواهد. کاربران کنترل می‌کنند که آیا اقدام‌ها را یک‌بار تأیید کنند یا به‌صورت خودکار اجازه دهند.

Claude Code پیش از اجرای فرمان‌های Bash که می‌توانند سیستمِ تو را تغییر دهند، تأیید می‌خواهد. مجموعه‌ای داخلی از فرمان‌های فقط‌خواندنی مثل ls، cat، و git status بدونِ اعلان اجرا می‌شوند. این رویکرد به کاربران و سازمان‌ها اجازه می‌دهد دسترسی‌ها را مستقیماً پیکربندی کنند.

برای پیکربندیِ تفصیلیِ دسترسی، Permissions را ببین.

برای کاهشِ خطرها در سیستم‌های ایجنتیک:

  • ابزارِ bashِ سندباکس‌شده: فرمان‌های bash را سندباکس کن با ایزوله‌سازیِ فایل‌سیستم و شبکه، که اعلان‌های دسترسی را کم می‌کند و در عینِ حال امنیت را حفظ می‌کند. با /sandbox فعالش کن تا مرزهایی تعریف کنی که Claude Code بتواند درونشان خودگردان کار کند
  • محدودیتِ دسترسیِ نوشتن: Claude Code فقط می‌تواند در پوشه‌ای که در آن شروع شده و زیرپوشه‌هایش بنویسد — بدونِ مجوزِ صریح نمی‌تواند فایل‌های پوشه‌های والد را تغییر دهد. با اینکه Claude Code می‌تواند فایل‌های بیرون از دایرکتوریِ کاری را بخواند (که برای دسترسی به کتابخانه‌ها و وابستگی‌های سیستمی مفید است)، عملیاتِ نوشتن کاملاً به محدوده‌ی پروژه محدود می‌شود و یک مرزِ امنیتیِ روشن می‌سازد
  • کاهشِ خستگیِ ناشی از اعلان: پشتیبانی از allowlist‌کردنِ فرمان‌های امنِ پرکاربرد به‌صورتِ به‌ازای کاربر، به‌ازای کدبیس، یا به‌ازای سازمان
  • حالتِ Accept Edits: ویرایش‌های فایل و مجموعه‌ای ثابت از فرمان‌های فایل‌سیستمیِ Bash مثل mkdir، touch، rm، mv، cp، و sed را برای مسیرهای درونِ دایرکتوریِ کاری به‌صورتِ خودکار تأیید می‌کند. سایرِ فرمان‌های Bash و مسیرهای خارج از محدوده همچنان اعلان می‌دهند

Claude Code فقط دسترسی‌هایی را دارد که تو به آن می‌دهی. تو مسئولِ بازبینیِ کد و فرمان‌های پیشنهادی از نظرِ ایمنی پیش از تأیید هستی.

محافظت در برابرِ prompt injection

Section titled “محافظت در برابرِ prompt injection”

prompt injection تکنیکی است که در آن یک مهاجم تلاش می‌کند با درجِ متنِ مخرب، دستورهای یک دستیارِ هوشِ مصنوعی را بازنویسی یا دستکاری کند. Claude Code چند محافظ در برابرِ این حمله‌ها دارد:

  • سامانه‌ی دسترسی: عملیاتِ حساس نیازمندِ تأییدِ صریح‌اند
  • تحلیلِ آگاه به کانتکست: با تحلیلِ کاملِ درخواست، دستورهای احتمالاً مضر را تشخیص می‌دهد
  • پاک‌سازیِ ورودی: با پردازشِ ورودی‌های کاربر، از command injection جلوگیری می‌کند
  • تأییدِ فرمان‌های شبکه: فرمان‌هایی که محتوا را از وب می‌گیرند مثل curl و wget به‌صورتِ پیش‌فرض خودکار تأیید نمی‌شوند. آن‌ها مثلِ هر فرمانِ Bashِ غیرِفقط‌خواندنیِ دیگر اعلان می‌دهند، پس همچنان می‌توانی یک‌بار تأیید کنی یا یک قاعده‌ی allowِ صریح مثلِ Bash(curl *) اضافه کنی. برای مسدودکردنِ کاملشان، آن‌ها را به permissions.deny اضافه کن

ما چند محافظ برای حفاظت از داده‌هایت پیاده کرده‌ایم، از جمله:

  • بازه‌های نگه‌داریِ محدود برای اطلاعاتِ حساس (برای دانستنِ بیشتر مرکزِ حریمِ خصوصی را ببین)
  • دسترسیِ محدود به داده‌های نشستِ کاربر
  • کنترلِ کاربر بر ترجیحاتِ آموزشِ داده. کاربرانِ مصرف‌کننده می‌توانند تنظیماتِ حریمِ خصوصیِ خود را هر زمان تغییر دهند.

برای جزئیاتِ کامل، لطفاً شرایطِ خدماتِ تجاریِ ما (برای کاربرانِ Team، Enterprise، و API) یا شرایطِ مصرف‌کننده (برای کاربرانِ Free، Pro، و Max) و سیاستِ حریمِ خصوصی را بازبینی کن.

  • تأییدِ درخواستِ شبکه: ابزارهایی که درخواستِ شبکه می‌دهند به‌صورتِ پیش‌فرض نیازمندِ تأییدِ کاربرند
  • پنجره‌های کانتکستِ ایزوله: web fetch از یک پنجره‌ی کانتکستِ جداگانه استفاده می‌کند تا از تزریقِ پرامپت‌های احتمالاً مخرب پرهیز کند
  • راستی‌آزماییِ اعتماد: اجرای کدبیس برای اولین‌بار و سرورهای MCPِ جدید نیازمندِ راستی‌آزماییِ اعتمادند
    • نکته: راستی‌آزماییِ اعتماد هنگامِ اجرای غیرتعاملی با پرچمِ -p غیرفعال است
    • نکته: وقتی Claude Code را مستقیماً در دایرکتوریِ خانگیِ خود شروع کنی، پذیرشِ اعتماد فقط برای نشستِ فعلی نگه داشته می‌شود و روی دیسک نوشته نمی‌شود، پس اعلان در هر اجرا دوباره ظاهر می‌شود. تنظیمی برای پایدارکردنِ آن نیست. به‌جایش Claude Code را از یک زیردایرکتوریِ پروژه شروع کن، که در آنجا پذیرشِ اعتماد به‌ازای هر دایرکتوری ذخیره می‌شود
  • تشخیصِ command injection: فرمان‌های bashِ مشکوک حتی اگر پیش‌تر allowlist شده باشند، نیازمندِ تأییدِ دستی‌اند
  • تطبیقِ fail-closed: فرمان‌های بدونِ تطابق به‌صورتِ پیش‌فرض نیازمندِ تأییدِ دستی می‌شوند
  • توضیح‌های به زبانِ طبیعی: فرمان‌های پیچیده‌ی bash برای درکِ کاربر توضیح دارند
  • ذخیره‌سازیِ امنِ اعتبارنامه: کلیدهای API و توکن‌ها در صورتِ وجود در Keychainِ macOS ذخیره می‌شوند، و در Windows و Linux با دسترسی‌های فایل محافظت می‌شوند. مدیریتِ اعتبارنامه را ببین

بهترین شیوه‌ها برای کار با محتوای غیرِقابل‌اعتماد:

  1. پیش از تأیید، فرمان‌های پیشنهادی را بازبینی کن
  2. از pipe کردنِ مستقیمِ محتوای غیرِقابل‌اعتماد به Claude پرهیز کن
  3. تغییرهای پیشنهادی روی فایل‌های حیاتی را راستی‌آزمایی کن
  4. برای اجرای اسکریپت‌ها و فراخوانِ ابزارها از ماشین‌های مجازی (VM) استفاده کن، به‌ویژه هنگامِ تعامل با سرویس‌های وبِ خارجی
  5. رفتارِ مشکوک را با /feedback گزارش کن

Claude Code به کاربران اجازه می‌دهد سرورهای Model Context Protocol (MCP) را پیکربندی کنند. فهرستِ سرورهای MCPِ مجاز در کدِ منبعِ تو پیکربندی می‌شود، به‌عنوانِ بخشی از تنظیماتِ Claude Code که مهندس‌ها در کنترلِ منبع check in می‌کنند.

ما تشویق می‌کنیم که یا سرورهای MCPِ خودت را بنویسی یا از سرورهای MCPِ ارائه‌دهندگانی که به آن‌ها اعتماد داری استفاده کنی. می‌توانی دسترسی‌های Claude Code را برای سرورهای MCP پیکربندی کنی. Anthropic پیش از افزودنِ کانکتورها به دایرکتوریِ Anthropic، آن‌ها را در برابرِ معیارهای فهرست‌شدن بازبینی می‌کند، اما هیچ سرورِ MCPای را ممیزیِ امنیتی یا مدیریت نمی‌کند.

برای اطلاعاتِ بیشتر درباره‌ی اجرای Claude Code در یک IDE، امنیت و حریمِ خصوصیِ VS Code را ببین.

هنگامِ استفاده از Claude Code on the web، کنترل‌های امنیتیِ اضافی برقرارند:

  • ماشین‌های مجازیِ ایزوله: هر نشستِ ابری در یک VMِ ایزوله و مدیریت‌شده‌ی Anthropic اجرا می‌شود
  • کنترل‌های دسترسیِ شبکه: دسترسیِ شبکه به‌صورتِ پیش‌فرض محدود است و می‌توان آن را طوری پیکربندی کرد که غیرفعال شود یا فقط دامنه‌های مشخصی را اجازه دهد
  • حفاظت از اعتبارنامه: احرازِ هویت از طریقِ یک پروکسیِ امن انجام می‌شود که از یک اعتبارنامه‌ی محدودشده درونِ سندباکس استفاده می‌کند، که سپس به توکنِ احرازِ هویتِ واقعیِ GitHubِ تو ترجمه می‌شود
  • محدودیت‌های شاخه: عملیاتِ git push به شاخه‌ی کاریِ فعلی محدود می‌شود
  • ثبتِ ممیزی: همه‌ی عملیات در محیط‌های ابری برای انطباق و ممیزی ثبت می‌شوند
  • پاک‌سازیِ خودکار: محیط‌های ابری پس از تکمیلِ نشست به‌صورتِ خودکار خاتمه می‌یابند

برای جزئیاتِ بیشتر درباره‌ی اجرای ابری، Claude Code on the web را ببین.

نشست‌های Remote Control متفاوت کار می‌کنند: رابطِ وب به یک فرایندِ Claude Code که روی ماشینِ محلیِ تو در حالِ اجراست متصل می‌شود. همه‌ی اجرای کد و دسترسی به فایل محلی می‌ماند، و همان داده‌ای که در هر نشستِ محلیِ Claude Code جریان دارد از طریقِ APIِ Anthropic روی TLS می‌گذرد. هیچ VMِ ابری یا سندباکسی دخیل نیست. اتصال از چند اعتبارنامه‌ی کوتاه‌عمر و باریک‌محدوده استفاده می‌کند که هرکدام به یک هدفِ مشخص محدود است و مستقل منقضی می‌شود، تا شعاعِ تخریبِ هر اعتبارنامه‌ی به‌خطرافتاده محدود شود.

بهترین شیوه‌های امنیتی

Section titled “بهترین شیوه‌های امنیتی”
  • پیش از تأیید، همه‌ی تغییرهای پیشنهادی را بازبینی کن
  • برای مخزن‌های حساس از تنظیماتِ دسترسیِ مختصِ پروژه استفاده کن
  • برای ایزوله‌سازیِ بیشتر، استفاده از dev containers را در نظر بگیر
  • تنظیماتِ دسترسیِ خود را به‌طورِ منظم با /permissions ممیزی کن
  • از managed settings برای اعمالِ استانداردهای سازمانی استفاده کن
  • پیکربندی‌های دسترسیِ تأییدشده را از طریقِ کنترلِ نسخه به اشتراک بگذار
  • اعضای تیم را در بهترین شیوه‌های امنیتی آموزش بده
  • استفاده از Claude Code را از طریقِ متریک‌های OpenTelemetry پایش کن
  • تغییرهای تنظیمات در طولِ نشست‌ها را با هوک‌های ConfigChange ممیزی یا مسدود کن

اگر یک آسیب‌پذیریِ امنیتی در Claude Code کشف کردی:

  1. آن را علنی فاش نکن
  2. آن را از طریقِ برنامه‌ی HackerOne ما گزارش کن
  3. گام‌های تفصیلیِ بازتولید را بگنجان
  4. به ما زمان بده پیش از افشای عمومی به مسئله رسیدگی کنیم