ملفات صلاحيات Claude Code تكشف 2539 بيانات اعتماد في مستودعات عامة
عثرت Apiiro على 2539 بيانات اعتماد مصنفة داخل مستودعات عامة وسجلات Git وملفات كتبها الوكلاء، بعد حفظ Claude Code أوامر معتمدة كاملة في إعدادات المشروع. أعاد اختبار مستقل إنتاج الآلية، لكن التعرض العام يتطلب نشر الملف، ولم تختبر صلاحية معظم البيانات.
قد ينسخ خيار السماح الدائم في Claude Code أمر الطرفية كاملا إلى ملف إعدادات داخل المشروع، بما في ذلك كلمة مرور أو رمز وصول مكتوبان داخل الأمر. وعثرت شركة الأمن Apiiro على 1122 نسخة عامة من هذا الملف تحتوي بيانات اعتماد، بينما أعاد اختبار مستقل إنتاج آلية الحفظ وأظهر كيف قد تفشل حماية مرتبطة بجهاز واحد عند الانتقال إلى جهاز آخر.
الخلاصة في 30 ثانية
-
ماذا حدث؟ قد يؤدي اختيار «نعم، ولا تسأل مرة أخرى» إلى حفظ الأمر كاملا في
.claude/settings.local.json، فتُحفظ معه أي بيانات اعتماد مضمنة. - لماذا يهم؟ وجدت Apiiro كلمات مرور وقواعد بيانات ومفاتيح سحابية ورموز وصول داخل إعدادات منشورة في مستودعات عامة.
- ما الذي لم يُثبت؟ لا ينشر الزر الملف وحده. يحدث التعرض عندما يدخل الملف إلى مستودع عام أو حزمة موزعة، ولم تختبر Apiiro صلاحية كل بيانات الاعتماد المكتشفة.
الرقم الأهم: 1122 ملفا. صنفت Apiiro هذا العدد من أصل 104185 نسخة عامة من
settings.local.jsonعلى أنه يحتوي سرا واحدا حقيقيا على الأقل.
كيف يتحول الإذن إلى بيانات محفوظة؟
يطلب Claude Code الإذن قبل تنفيذ بعض أوامر الطرفية. وعندما يسمح المستخدم بأمر بصورة دائمة، قد يسجل البرنامج نص الأمر كقاعدة سماح داخل مجلد .claude المخفي في المشروع. يفيد ذلك مع الأوامر المتكررة، لكنه يحتفظ بكل ما كتب داخل الأمر.
إذا ظهرت كلمة مرور قاعدة بيانات بعد PGPASSWORD=، أو وضع رمز وصول داخل ترويسة أمر curl، تصبح بيانات الاعتماد جزءا من القاعدة. تكمن المشكلة في الاستمرار، إذ قد يبقى السر داخل ملف الإعدادات بعد انتهاء العملية التي احتاجت إليه.
تقول Apiiro إن Claude Code يضيف مسار الملف المحلي إلى قائمة الاستبعاد العامة في Git على جهاز المطور عند إنشائه داخل مستودع. تحمي هذه الخطوة الحالة المعتادة على ذلك الجهاز، لكنها لا تضيف المسار إلى .gitignore الخاص بالمشروع. لذلك لا تنتقل الحماية تلقائيا إلى نسخة على حاسوب آخر أو حاوية جديدة أو مجلد يتحول لاحقا إلى مستودع.
ماذا وجد المسح داخل المستودعات العامة؟
بحثت Apiiro في GitHub بين 1 و3 نوفمبر، ونزلت 104185 نسخة عامة من ملف الإعدادات المحلي موزعة على 103617 مستودعا. وبعد التصفية والمراجعة، صنفت 1379 بيانات اعتماد مميزة داخل 1122 ملفا حاليا. شملت القائمة 379 كلمة مرور لقواعد بيانات و122 مفتاح خدمة في Supabase و43 بيانات دخول عبر SSH و23 مفتاح AWS ورموزا لخدمات أخرى.
ارتفع الإجمالي إلى 2539 سرا مصنفا داخل 1994 مستودعا عند إضافة النسخ المحذوفة الموجودة في سجل Git وملفات الإعدادات المشتركة ونصوص محادثات الوكلاء المحفوظة. وتقول الشركة إن مؤسسة واحدة أكدت أن مفتاحها المكشوف كان فعالا. لكنها لم تستخدم بيانات الاعتماد أو تتصل بالخوادم المذكورة أو تحدد عدد المفاتيح التي ما زالت صالحة.
لم تكتشف أدوات الفحص التقليدية كل الحالات. تفيد Apiiro بأن 215 ملفا من أصل 1122 لم يرصده gitleaks ولا TruffleHog. فكلمة المرور داخل أمر عادي قد لا تحمل بادئة أو صيغة معروفة تعتمد عليها الأدوات لاكتشاف المفاتيح السحابية.
اختبار مستقل يحدد نطاق المشكلة
نشر اختبار منفصل في 8 نوفمبر استخدم بيانات اعتماد وهمية وإصداري Claude Code 2.1.318 و2.1.319. أكد الاختبار أن السماح الدائم نسخ الأمر كاملا إلى ملف الإعدادات، وأن قاعدة الاستبعاد موجودة في إعداد Git العام لذلك الجهاز.
وعند استخدام إعداد Git جديد من دون قاعدة الاستبعاد، طلب المختبر من Claude Code حفظ كل التغييرات في التزام. دخل ملف الإعدادات إلى الالتزام قبل أن يحذر البرنامج من احتوائه على كلمة مرور. لا يثبت ذلك تكرار التسلسل في كل بيئة، لكنه يؤكد الآلية من دون كشف سر حقيقي.
قال عضو في فريق Claude Code إن الملف مصمم للبقاء محليا وإن البرنامج يستبعده تلقائيا عند إنشائه. أما رد Apiiro فأكثر تحديدا: الاستبعاد المرتبط بجهاز واحد لا يحمي كل نسخة لاحقة ولا الملف الذي سبق تتبعه. لا يتعارض التفسيران بالضرورة.
لماذا تختلف هذه الحالة عن الإضافة الخبيثة؟
غطت نيوتقنية سابقا إضافة مزيفة باسم Claude Code حاولت زرع باب خلفي عبر SSH. تضمنت تلك الواقعة شفرة هجومية محقونة، بينما تتعلق النتيجة الجديدة بسلوك صلاحيات متوقع يتفاعل مع أوامر تحتوي أسرارا ومع عمليات Git المعتادة.
لذلك يختلف العلاج. لا يكفي حذف برنامج خبيث، بل ينبغي تدوير بيانات الاعتماد المكشوفة وإيقاف تتبع الملف وتنظيف السجل بعد التدوير، ثم منع كتابة القيم السرية حرفيا في الأوامر باستخدام متغيرات البيئة أو مدير للأسرار.
قبل أن نبالغ في النتيجة
- تعني عبارة «سر حقيقي» لدى Apiiro مفتاحا يطابق صيغة مزود أو بيانات اعتماد مرتبطة بخادم عام، لا بيانات ثبت أنها ما زالت فعالة.
- صدرت الأرقام الواسعة عن شركة أمن تبيع منتجات لفحص الأسرار، ولم تتكرر قاعدة البيانات كاملة لدى جهة مستقلة.
- يتطلب النشر العام خطوة إضافية مثل إدخال الملف إلى Git ودفعه إلى مستودع عام. لا يكشف خيار السماح بيانات الاعتماد وحده.
- استخدم الاختبار المستقل بيئة واحدة مضبوطة وكلمات مرور وهمية. يثبت الآلية ولا يتحقق من جميع أرقام Apiiro.
ما الذي ينبغي فحصه الآن؟
على الفرق التي تستخدم Claude Code البحث في المستودعات الحالية وسجل Git عن ملفات الإعدادات المحلية والمشتركة. يجب اعتبار كل بيانات اعتماد موجودة مكشوفة وتدويرها قبل التنظيف. أما الحل الدائم فيشمل حفظ قواعد الاستبعاد على مستوى المستودع، وفحص الأوامر التي تحمل أسرارا قبل الالتزام وفي التكامل المستمر، وعدم تضمين القيم الحساسة حرفيا في أوامر قد يسجلها الوكيل.
كيانات وموضوعات موثّقة
المصادر والمراجع4 مصادر
المراجع الخارجية المستخدمة لدعم المعلومات الواردة في هذا المقال.
نشر بواسطة
مكتب نيو تقنية – الذكاء الاصطناعي
فريق تحريري مؤسسي تابع لنيو تقنية