Claude Code يحفظ كلمات المرور في ملف عند الضغط على «عدم السؤال مجددا» — تسريب 2539 سرا على GitHub
عند اختيار «نعم، لا تسأل مجددا»، يحفظ Claude Code الأمر كاملا، بما في ذلك كلمات المرور والمفاتيح المضمنة فيه، داخل الملف .claude/settings.local.json. وإذا وصل الملف إلى مستودع عام، تصبح الأسرار مرئية للجميع. عثرت Apiiro على 2539 سرا في 1994 مستودعا، ولا يفيد حذف الملف لأن Git يحتفظ بالسجل.
معالج بواسطة الذكاء الاصطناعي من TG: @neuraldvig (Нейродвиж)؛ بتحرير Hamidun News
يوفر زر «نعم، لا تسأل مجددا» بضع ثوان، لكنه قد يكلفك لاحقا مفاتيح خدماتك السحابية. اكتشف باحثو Apiiro أن Claude Code، عند الحصول على هذا التأكيد، يسجل الأمر المسموح به كاملا في ملف الإعدادات. وإذا كان الأمر يتضمن أسرارا، فإنها تبقى هناك كنص صريح.
كيف يحدث ذلك
تخيل أنك تطلب من الوكيل الاتصال بقاعدة بيانات. ينشئ أمرا مثل psql مع كلمة المرور مباشرة داخل سلسلة الاتصال، أو يشغل curl مع رمز وصول في الترويسة. يطلب Claude Code الإذن، فتضغط على «نعم، لا تسأل مجددا». ولتجنب تكرار السؤال مستقبلا، يحفظ الوكيل قاعدة السماح في .claude/settings.local.json. وتتضمن القاعدة الأمر حرفيا، بما في ذلك كلمة المرور.
بعد ذلك يؤدي السهو البشري المعتاد دوره. يكون الملف داخل المشروع، وينفذ المطور git add . ثم git push، فينتقل السر إلى مستودع عام. وتخلق كلمة local في اسم الملف انطباعا زائفا بأنه لن يغادر الجهاز أبدا، لكن عمليا كثيرا ما لا يتذكر أحد استبعاده من الفهرس.
حجم المشكلة
عثرت Apiiro على 2539 سرا في 1994 مستودعا. وشملت هذه الأسرار كلمات مرور لقواعد بيانات وبيانات وصول SSH ومفاتيح AWS. هذا ليس سيناريو نظريا، بل تسريبات حدثت بالفعل، كما أن روبوتات جمع البيانات تعثر على هذه المعلومات بسرعة كبيرة داخل المستودعات العامة.
هناك مشكلة إضافية تتمثل في أن حذف الملف في الالتزام التالي لا يحل شيئا. يحتفظ Git بالسجل كاملا، ويظل السر متاحا في الالتزامات القديمة. والطريق الموثوق الوحيد هو اعتبار المفتاح مخترقا، وإلغاؤه فورا، وإصدار مفتاح جديد. ويظل تنظيف السجل باستخدام filter-repo ضروريا، ولكن بوصفه إجراء إضافيا فقط.
ما يجب فعله الآن
- افحص مستودعاتك بحثا عن .claude/settings.local.json وراجع ما هو مسجل داخله.
- أضف هذا الملف إلى .gitignore، والأفضل إضافته إلى ملف gitignore العام على الجهاز.
- فعل خطافات pre-commit وأدوات فحص الأسرار مثل gitleaks، أو push protection على GitHub.
- لا تمرر الأسرار داخل الأوامر: استخدم متغيرات البيئة ومديري الأسرار وملفات تعريف AWS.
- إذا كان الملف قد نشر بالفعل، فبدل فورا جميع المفاتيح وكلمات المرور الواردة فيه.
القيود والخلاصة
لا توجد في هذه القصة نية خبيثة لدى النموذج؛ إنها مشكلة في تصميم ميزة مريحة تحفظ الإذن على هيئة السطر الكامل. ويبقى السؤال هو مدى سرعة تعديل Anthropic لهذا السلوك، كأن تبدأ مثلا بحفظ قالب الأمر من دون الوسائط أو بإخفاء القيم الحساسة. وحتى يحدث ذلك، تقع المسؤولية على عاتق الفريق.
أما بالنسبة إلى فرق المنتجات والمؤسسين، فالخلاصة أوسع: أي أداة تتضمن وظيفة «تذكر اختياري» تنشئ عنصرا جديدا قد يحتوي على بيانات حساسة. ويجب أخذه في الحسبان ضمن نموذج التهديدات تماما مثل السجلات وملفات التفريغ وملفات .env. نحن نمنح الوكلاء مزيدا من صلاحيات الوصول، بينما لا تزال ممارسات النظافة الأمنية المحيطة بملفات إعداداتهم متأخرة. خصص عشر دقائق لإجراء تدقيق اليوم، قبل أن يقوم شخص آخر بذلك نيابة عنك.
- 8 نوفمبر 2026AWS تشغّل Claude Code عن بُعد: microVM مستقلة لكل مهمة
- 8 نوفمبر 2026باحثون من Fudan وAnt Group يجعلون نموذجًا لغويًا كبيرًا يتبع إجراءً قانونيًا محددًا بواسطة رسم بياني
- 8 نوفمبر 2026مطوّر ينقل مصادقة Claude Code إلى خادم VDS مع إبقاء المشاريع على جهاز Mac
- 8 نوفمبر 2026Thinking Machines تطلق Inkling 2 Small: أفضل نموذج مفتوح من خارج الصين
أسئلة وأجوبة حول الخبر
ما أبرز التفاصيل حول كيف يحدث ذلك؟
تخيل أنك تطلب من الوكيل الاتصال بقاعدة بيانات. ينشئ أمرا مثل psql مع كلمة المرور مباشرة داخل سلسلة الاتصال، أو يشغل curl مع رمز وصول في الترويسة. يطلب Claude Code الإذن، فتضغط على «نعم، لا تسأل مجددا». ولتجنب تكرار السؤال مستقبلا، يحفظ الوكيل قاعدة السماح في .claude/settings.local.json. وتتضمن القاعدة الأمر حرفيا، بما في ذلك كلمة المرور. بعد ذلك يؤدي السهو البشري المعتاد دوره. يكون الملف داخل المشروع، وينفذ المطور git add . ثم git push، فينتقل السر إلى مستودع عام.
ما أبرز التفاصيل حول حجم المشكلة؟
عثرت Apiiro على 2539 سرا في 1994 مستودعا. وشملت هذه الأسرار كلمات مرور لقواعد بيانات وبيانات وصول SSH ومفاتيح AWS. هذا ليس سيناريو نظريا، بل تسريبات حدثت بالفعل، كما أن روبوتات جمع البيانات تعثر على هذه المعلومات بسرعة كبيرة داخل المستودعات العامة. هناك مشكلة إضافية تتمثل في أن حذف الملف في الالتزام التالي لا يحل شيئا. يحتفظ Git بالسجل كاملا، ويظل السر متاحا في الالتزامات القديمة. والطريق الموثوق الوحيد هو اعتبار المفتاح مخترقا، وإلغاؤه فورا، وإصدار مفتاح جديد.
ما أبرز التفاصيل حول ما يجب فعله الآن؟
افحص مستودعاتك بحثا عن .claude/settings.local.json وراجع ما هو مسجل داخله. أضف هذا الملف إلى .gitignore، والأفضل إضافته إلى ملف gitignore العام على الجهاز. فعل خطافات pre-commit وأدوات فحص الأسرار مثل gitleaks، أو push protection على GitHub. لا تمرر الأسرار داخل الأوامر: استخدم متغيرات البيئة ومديري الأسرار وملفات تعريف AWS. إذا كان الملف قد نشر بالفعل، فبدل فورا جميع المفاتيح وكلمات المرور الواردة فيه.
Build & Ship Production AI Agents Without Boilerplate Code
Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.
أهم ما في عالم الذكاء الاصطناعي — مرة كل أسبوع
سبع قصص مهمة فعلاً هذا الأسبوع، مختارة بعناية. بلا ضجيج ولا بيانات صحفية.
تم! تحقق من بريدك للتأكيد.