العودة

اكتشفت Apiiro 2,539 سراً في ملفات أذونات Claude Code على GitHub
SiTech AI Team3 دقيقة قراءة

اكتشفت Apiiro 2,539 سراً في ملفات أذونات Claude Code على GitHub

دراسة من Apiiro تقول إن 2,539 سراً حقيقياً وُجدت في 1,994 مستودعاً عاماً على GitHub، غالباً في ملفات .claude/settings.local.json في Claude Code التي تُنشأ عندما يوافق المطورون على أوامر.

وجد باحثون من Apiiro 2,539 سراً حقيقياً في 1,994 مستودعاً عاماً على GitHub، وخُزّن كثير منها في ملفات أذونات Claude Code المسمّاة .claude/settings.local.json. يمكن إنشاء هذه الملفات عندما يختار مستخدم «نعم، ولا تسأل مرة أخرى» لأمر يحتوي على سر. وتقول Apiiro إن 63 منظمة متأثرة، وأكّدت إحداها أن مفتاحها كان نشطاً.

كيف تدخل الأسرار إلى الملفات

يسأل Claude Code قبل تشغيل أوامر shell. إذا اختار مطور «نعم، ولا تسأل مرة أخرى»، فإنه يخزّن الأمر الموافق عليه بالضبط في .claude/settings.local.json داخل مجلد المشروع. وبما أن هذا الأمر قد يتضمن كلمة مرور لقاعدة بيانات، أو مفتاح سحابة، أو رمز API، أو تسجيل دخول SSH منسوخاً من إعدادات محلية، فإن السر يُكتب في الملف. يضيف Claude Code الملف إلى قائمة git ignore العامة للمطور، لكن ليس إلى .gitignore الخاص بالمستودع، لذا قد يتضمنه commit لاحق. في 539 من 1,105 مستودعات تحتوي على سر حقيقي وتتبعتها Apiiro، غيّرت commit شارك Claude في تأليفها الملف.

الحجم والتعرض

احتوت GitHub على 104,185 نسخة عامة من .claude/settings.local.json في 103,617 مستودعاً. وجدت Apiiro سراً حقيقياً في 1,122 من هذه الملفات، تحتوي على 1,379 سراً فريداً. ومنها، 379 كانت كلمات مرور لقواعد بيانات، و122 كانت مفاتيح دور الخدمة لـ Supabase. كما وجدت Apiiro 1,160 سراً إضافياً في سجل git، وملفات إعدادات مشتركة، ونسخ محادثات الوكيل. إجمالاً، عدّت Apiiro 2,539 سراً حقيقياً فريداً في 1,994 مستودعاً. تشمل الحالات المتأثرة مفتاح API سحابي لبائع قواعد بيانات، وكلمة مرور إنتاج Azure Postgres، ورمز إنتاج Square، ومفتاح API بتنسيق OpenAI، ورمز npm، وكلمة مرور المالك لقاعدة بيانات سجلات طبية. كما وجدت Apiiro 43 بيانات اعتماد SSH في قوائم السماح، بما في ذلك كلمات مرور root في أوامر sshpass. فاتت الماسحات العامة كثيراً من الأسرار: أشار gitleaks إلى 564 من 1,122 ملفاً، وأشار TruffleHog إلى 643، بينما لم يشر أي منهما إلى 215. وكان كثير منها كلمات مرور داخل أوامر مثل PGPASSWORD=، أو sshpass -p، أو mysql -p، أو ترويسات bearer.

ما يجب على المستخدمين فعله

تنصح Apiiro المطورين بإلغاء تتبع الملف عبر git rm --cached .claude/settings.local.json وإضافته إلى .gitignore الخاص بالمستودع إذا كان متتبعاً. ويجب عليهم تدوير كل بيانات اعتماد احتفظ بها الملف يوماً ما، لأن الحذف لا يزيلها من السجل، أو التشعبات، أو النسخ. حتى إذا لم يُودَع الملف قط، فيجب على المستخدمين فتحه وحذف كل قاعدة تحتوي على سر. ويجب على المطورين الإشارة إلى الأسرار كمتغيرات مثل $DB_URL بدلاً من كتابتها في أوامر، والموافقة على أنماط مثل Bash(npm run:*) بدلاً من أوامر حرفية. ويجب على فرق الأمان التعامل مع مجلدات الوكيل وملفات الذاكرة كحاملة للأسرار، وإضافتها إلى فحص ما قبل الالتزام وفحص CI، وفرز بيانات الاعتماد المقترنة بمضيفين عموميين أولاً.

المصادر: apiiro.com

SiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.