أمن وكلاء الذكاء الاصطناعي: عندما يحفظ المساعد السريّ في مستودع عام
تقرير أمني يكشف أن خاصية «لا تسأل مجددًا» في Claude Code أدت إلى حفظ مئات كلمات المرور ومفاتيح API في مستودعات GitHub عامة — ولماذا لم تكتشفها أدوات الفحص الشائعة.
في الأشهر الأخيرة، تحوّل وكلاء الذكاء الاصطناعي من أدوات تجريبية إلى جزء ثابت من سير عمل البرمجة في آلاف الشركات. تقرأ هذه الأنظمة الشيفرة، وتنفّذ الأوامر في الطرفية، وتفتح طلبات السحب، وتتخذ إجراءات نيابة عن المبرمج. لكن تقريرًا أمنيًا نُشر في مطلع نوفمبر 2026 كشف مشكلة لم تكن في الحسبان: قد يحفظ الوكيل نفسه كلمات المرور ومفاتيح الوصول في ملف عادي داخل المشروع، ثم ينتهي الأمر بهذا الملف في مستودع عام على GitHub حيث يمكن لأي شخص قراءته.
ماذا حدث بالضبط؟
كشفت شركة الأمن السيبراني Apiiro، في تقرير أعدّه الباحثان Shmulik Cohen وMatan Giladi ونُشر في 5 نوفمبر 2026، أن خاصية «نعم، ولا تسأل مجددًا» (Yes, and don't ask again) في أداة Claude Code — وهي أداة البرمجة من Anthropic — تحفظ الأمر الكامل الذي وافق عليه المستخدم كقاعدة سماح دائمة في ملف إعدادات محلي داخل مجلد المشروع.
المشكلة أن هذا الملف، الذي يُسمى .claude/settings.local.json، يحتوي على الأمر كما هو، حرفًا بحرف، بما في ذلك أي كلمة مرور أو مفتاح واجهة برمجة (API key) كان جزءًا منه. ومع أن الأداة تضيف هذا الملف إلى قائمة الاستثناءات العامة للمستخدم (global git excludes)، فإنها لا تضيفه إلى ملف .gitignore الخاص بالمشروع نفسه. والنتيجة: عندما يدفع المبرمج الشيفرة إلى مستودع عام، يُدفع الملف معه، وتبقى الأسرار متاحة لأي شخص يعرف أين يبحث. وفي بعض الحالات، ظهر Claude Code نفسه كمؤلف مشارك (co-author) في الالتزامات (commits) التي تحمل هذه الملفات.
الأرقام بالتفصيل
فحصت Apiiro كل نسخة عامة من الملف أمكنها العثور عليها على GitHub بين 1 و3 نوفمبر 2026: 104,185 نسخة موزّعة على 103,617 مستودعًا عامًا. من بينها، احتوت 1,122 نسخة — أي نحو 1.1% — على سرّي واحد على الأقل، بمجموع 1,379 سرًا مميّزًا.
وتتكشف خطورة التسريب في التفاصيل: 379 من هذه الأسرار هي كلمات مرور لقواعد بيانات، و43 بيانات دخول SSH لخوادم عامة، و42 رمزًا (token) لأنظمة GitHub وGitLab وnpm، و23 مفتاحًا لخدمات AWS. وُجدت الأسرار في مستودعات تابعة لـ63 منظمة، معظمها شركات برمجيات. وبتوسيع البحث ليشمل سجل Git وملفات الإعدادات المشتركة وسجلات محادثات الوكيل المحفوظة داخل المستودعات، يصل العدد الإجمالي إلى 2,539 سرًا في 1,994 مستودعًا.
والأكثر إثارة للقلق هو مدة التعرّض: بلغ متوسط مدة بقاء الملفات المكشوفة على الفرع الافتراضي للمستودع 217 يومًا، وفي 118 مستودعًا ظل الملف هناك لأكثر من عام. أي أن هذه الأسرار لم تكن تسربًا لحظيًا يُكتشف ويُعالج، بل كانت تجلس في العلن لأشهر طويلة.
لماذا لم تكتشفها أدوات الفحص؟
قالت Apiiro إن أداتي الفحص الأشهر في السوق، gitleaks وTruffleHog، لم تلتقطا كل الملفات: الأولى حدّدت 564 ملفًا والثانية 643، بينما هناك 215 ملفًا لم تكتشفها أي منهما. السبب أن هذه الأدوات تبحث عن أنماط معروفة للأسرار — مثل صيغة مفاتيح AWS أو كلمات المرور المكتوبة بجانب متغيرات بيئة — في حين أن ملف إعدادات Claude Code يحفظ الأمر كنص عادي داخل بنية JSON، ما يجعله يبدو كملف إعدادات عادي لا كسطر سريّ.
هذه النقطة مهمة لكل فريق يعتمد على الفحص الآلي كخط دفاع أخير: الفحص القائم على الأنماط لا يلتقط الأسرار التي تُخزَّن في سياقات جديدة. وما إن تظهر صيغة تخزين جديدة إلا وتُصبح كل الفحوصات الحالية عمياء عنها حتى يتم تحديثها.
ماذا يجب على الفرق أن تفعل؟
أولًا، يجب أن يُضاف ملف .claude/settings.local.json — وأي ملف إعدادات محلي مشابه تنتجه أدوات البرمجة — إلى ملف .gitignore الخاص بالمشروع نفسه، وليس فقط إلى الاستثناءات العامة للمستخدم. فالمشكلة الجوهرية أن الحماية لا تسافر مع المستودع.
ثانيًا، يجب تدوير (rotate) أي سرّي اشتُبه في تعرّضه فورًا، باعتباره مسمومًا حتى لو لم يُثبت استغلاله. فكلمات مرور قواعد البيانات ومفاتيح AWS لا تحتاج إلى دليل استغلال لتُعامل بجدّية.
ثالثًا، يجب على الفرق التي تستخدم وكلاء الذكاء الاصطناعي في بيئات الإنتاج أن تفترض أن أي أمر وافق عليه الوكيل قد يُحفظ كنص عادي في مكان ما، وأن تحدّ من الصلاحيات الممنوحة لهذه الأدوات، وتفصل بين بيئات التطوير وبيئات الإنتاج، وتتجنب إدخال الأسرار في سطر الأوامر أصلًا.
الدرس الأوسع
هذه الحادثة ليست عن ثغرة في أداة واحدة، بل عن نمط أعمق: الأدوات التي تحفظ «ما أعجبك» لتوفر عليك عناء السؤال المتكرر قد تحفظ أكثر مما ينبغي. عندما يُصمَّم وكيل ليتذكر الأوامر، تصبح الذاكرة نفسها سطحًا جديدًا للهجوم.
والمبرمجون الذين يضغطون زر «لا تسأل مجددًا» لا يفكرون عادة في أن هذا القرار البسيط سيُخزَّن في ملف قد يسافر مع الشيفرة إلى مستودع عام ويبقى هناك سنوات. حتى تصدر أدوات أكثر أمانًا — تفصل بين قواعد السماح والمحتوى الحساس، أو تشفّر الأجزاء السرية — يبقى الاحتياط هو الحل: احفظ الأسرار في أنظمة مخصصة لإدارتها، لا في سطر الأوامر، واعتبر أن أي شيء يمكن للوكيل قراءته يمكن أن يُسرب.
وفي سياق متصل، ظهر في الأيام نفسها نقاش واسع حول ثقة المستخدمين في هذه الأدوات، أبرزه منشور بعنوان «وداعًا كلود، مرحبًا باي» (Goodbye Claude, hello Pi) الذي تحدث فيه مطور عن انتقاله من أداة إلى أخرى. الرسالة المشتركة واضحة: الراحة التي توفرها الوكلاء لا يجب أن تأتي على حساب أمان الشيفرة والبيانات.
لماذا يضغط المبرمجون الزر؟
السر في تصميم واجهات الأذونات الحديثة. عندما يطلب وكيل الذكاء الاصطناعي الموافقة على أمر، فإنه عادة ما يفعل ذلك في لحظة تركيز عالية: المبرمج في منتصف سلسلة منطقية، ويريد إنجاز المهمة والعودة إليها. الخيار الأسهل هو «نعم، ولا تسأل مجددًا»، لأنه يبدو وكأنه مجرد توفير لثوانٍ من الأسئلة المتكررة. ولا تظهر في تلك اللحظة أي إشارة تحذير تقول إن نص الأمر سيُخزَّن كما هو، كلمة المرور ومفتاح الواجهة وكل شيء.
هذه الظاهرة معروفة في أمن المعلومات باسم «إرهاق التنبيهات» (alert fatigue): كلما زادت المطالبات بالموافقة، زاد ميل المستخدم إلى الموافقة دون قراءة. وهي الثغرة البشرية التي تستغلها التصاميم السيئة، بغض النظر عن مدى قوة التشفير أو العزل في الخلفية.
كيف تعرف أنك متأثر؟
الخطوة العملية الأولى هي البحث في مستودعاتك أنت وفريقك عن الملف .claude/settings.local.json، والتأكد من أنه غير متتبَّع (tracked) في Git. إذا كان الملف موجودًا في مستودع عام، فاعتبر كل أسراره مسمومة وقم بتدويرها. ونفس الأمر ينطبق على أي ملف إعدادات محلي تنتجه أدوات برمجة أخرى تعتمد على نفس نمط «احفظ الأمر لتنفيذ مشابه في المستقبل».
ومن المهم أيضًا مراجعة سجل Git نفسه، لأن الأسرار قد تظل موجودة في الالتزامات القديمة حتى بعد حذف الملف من الفرع الحالي. حذف الملف من الالتزام الأخير لا يمحوه من التاريخ، وتدوير الأسرار هو الحل الوحيد الموثوق.
المصادر: تقرير Apiiro (عبر The Hacker News وAviatrix Threat Research)؛ aiweekly.co؛ byteherald.com؛ dev.to.
ذو صلة
عرض الكل →مصنّف العائلة في أجهزة ماك: ما الذي تعرفه آبل عن علاقاتك؟
باحثان يفكّان بناء الرسم المعرفي الشخصي في macOS ويكشفان عن مصنّف يقرر من هم أفراد عائلتك من 144 إشارة سلوكية — مع ثغرات في ما لم يعرفاه الباحثان أيضًا.
How a Trend Actually Spreads Online
From a single post to a global conversation — the mechanics of virality, explained simply.