خلاصة القول
قامت Anthropic عن طريق الخطأ بشحن ملف .map مع حزمة Claude Code npm، مما كشف الكود المصدري الكامل القابل للقراءة لأداة CLI الخاصة بهم. يكشف هذا التسريب عن آليات مقاومة الاستخلاص (anti-distillation) عبر حقن أدوات وهمية، ومحرك تعبيرات عادية (regex) لاكتشاف الإحباط، و"وضع التخفي" الذي يخفي تأليف الذكاء الاصطناعي في التزامات المصدر المفتوح، ووضع وكيل مستقل غير مطروح يسمى KAIROS. في هذا المقال ستتعرف عمليًا على الآليات الداخلية التي تستخدمها أدوات الترميز بالذكاء الاصطناعي، وكيف يمكن للمطورين الاستفادة منها في إدارة وتطوير واجهات برمجة التطبيقات (API).
مقدمة
في 31 مارس 2026، اكتشف الباحث الأمني تشاوفان شو (Chaofan Shou) أن Anthropic أصدرت ملف خريطة مصدر (.map) ضمن حزمة Claude Code npm. ملفات خرائط المصدر هي ملفات تصحيح تربط الكود المصغّر بالكود المصدري البشري، وكان يجب حذفها قبل النشر.
لكن تم شحنها بالخطأ. وأصبح الكود المصدري الكامل مع جميع التعليقات والتفاصيل الداخلية متاحًا لأي شخص حمل الحزمة.
انتشر الاكتشاف بسرعة عبر Hacker News وReddit وTwitter، وقامت Anthropic بسحب الحزمة، لكن الكود تم نسخه وتحليله بالفعل.
💡 ملاحظة مهمة: إذا كنت تستخدم Claude Code أو Cursor أو GitHub Copilot أو منصة Apidog لتطوير API، فهذا التسريب يمنحك رؤية نادرة لآليات عمل أدوات الترميز بالذكاء الاصطناعي. معرفة هذه التفاصيل تساعدك في اتخاذ قرارات تقنية حول الأدوات التي تثق بها في قاعدة بياناتك البرمجية.
فيما يلي تحليل عملي لأهم النتائج الفنية وكيفية استفادة مطوري API منها.
كيف تسرب الكود المصدري
السبب الجذري: خطأ في أداة بناء Bun
Claude Code مبني على Bun، بيئة تشغيل بديلة لـ JavaScript. في مارس 2026، تم الإبلاغ عن خطأ في Bun (oven-sh/bun#28001) يسمح بتضمين خرائط المصدر في وضع الإنتاج، رغم أن التوثيق يقول غير ذلك.
نتيجة ذلك، تضمنت عملية بناء Anthropic ملف .map ضمن توزيع npm. أي شخص نفذ:
npm pack @anthropic-ai/claude-code
أو استعرض محتوى الحزمة سيجد الكود المصدري كاملًا وغير مصغر.
ماذا تم كشفه عمليًا؟
- الكود المصدري الكامل لـ TypeScript لكل الوحدات
- تعليقات هندسية تشرح القرارات
- علامات ميزات وتكوينات تجريبية
- قوالب موجه النظام وآليات الأمان
- أسماء رمزية داخلية لميزات غير صادرة
- تفاصيل أداء ومقاييس
ملاحظة: التسريب ليس نسخة منقحة أو مفتوحة المصدر — بل قاعدة إنتاجية كاملة.
مقاومة الاستخلاص: تقنيات عملية لحماية النماذج
حقن الأدوات الوهمية
من أبرز التقنيات: عند تفعيل العلامة ANTI_DISTILLATION_CC في claude.ts، يتم إرسال:
anti_distillation: ['fake_tools']
في طلبات API، مما يدفع الخادم لحقن تعريفات أدوات وهمية (decoy tools) في موجه النظام. الهدف هو تسميم بيانات التدريب لأي منافس يسجل حركة المرور ويستخدمها لتدريب نماذجه.
تجميع نص الموصل (Connector-text summarization)
في betas.ts، يقوم النظام بتخزين نص المساعد وتلخيصه ثم إعادة الملخص مع توقيع تشفيري. من يلتقط حركة المرور سيحصل فقط على الملخص وليس النص الكامل، ما يصعّب عكس هندسة الأنماط الداخلية.
هل يمكن تجاوز هذه الآليات؟
- يمكن لوسيط (proxy) إزالة حقل
anti_distillation - تعيين متغير البيئة
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETASيعطل نظام الحماية - الحماية تعمل ضد التسجيل السلبي، وليس ضد الاستخدام النشط للـAPI
خلاصة: هذه تدابير ترفع تكلفة الاستخلاص، لكنها ليست مانعة تمامًا.
وضع التخفي: إخفاء تأليف الذكاء الاصطناعي
ما الذي يفعله وضع التخفي؟
في undercover.ts، عند العمل خارج مستودعات Anthropic، يمنع النظام:
- ذكر الأسماء الرمزية الداخلية مثل "Capybara"
- الإشارة لقنوات Slack أو مستودعات خاصة
- ظهور عبارة "Claude Code" في المخرجات
التأثير العملي
أي كود ينتجه الذكاء الاصطناعي في مستودعات مفتوحة المصدر لن يعلن نفسه بأنه مكتوب بواسطة Claude Code. وهذا يعقّد سياسات الإفصاح في مشاريع المصدر المفتوح.
اكتشاف الإحباط عبر التعبيرات العادية (regex)
كيف يعمل؟
ملف userPromptKeywords.ts يستخدم regex للبحث عن ألفاظ نابية أو مصطلحات عاطفية في مدخلات المستخدم لتحديد الإحباط.
مثال عملي:
const frustrated = /غاضب|محبط|مستاء|.../i;
if (frustrated.test(userInput)) {
// التعامل مع الإحباط
}
سبب هندسي: regex أسرع وأرخص من استخدام نماذج LLM لتحليل كل إدخال مستخدم.
تصديق العميل الأصلي
التحقق التشفيري من الطلبات
في system.ts، تُرسل طلبات API محدد مكان cch=554eb، ويقوم مكدس HTTP في Bun بكتابة مفتاح تجزئة خاص قبل مغادرة الطلب.
الخادم يستخدم هذا المفتاح للتحقق من أن الطلب صادر من ملف Claude Code الثنائي الأصلي.
لماذا يهم ذلك؟
آلية تصديق العميل تحمي من الاستخدام غير المصرح به، ويمكن تعطيلها أو تعديلها بعلامات ميزات أو إعدادات.
تطبيق عملي: إذا كنت تبني API مع تصديق على مستوى العميل، يمكنك استخدام أدوات مثل Apidog للتحقق من صحة التدفقات البرمجية والتصديق عبر إعدادات متعددة.
KAIROS: وضع وكيل مستقل قيد التطوير
ما كشفه الكود
- مهمة
/dreamلاستخلاص الذاكرة - تسجيل يومي
- اشتراكات GitHub webhook
- عوامل ديمون تعمل بفواصل كرون 5 دقائق
ماذا يعني ذلك؟
KAIROS وكيل يعمل باستمرار، يراقب المستودعات وينفذ تغييرات دون تدخل المستخدم، مثل اقتراح أو تنفيذ تعديلات الكود تلقائيًا.
نصيحة عملية: إذا كنت تدير تطوير API، اعتمد منصات متكاملة (مثل Apidog) تحافظ على مزامنة المواصفات، والاختبارات، والمحاكيات، والوثائق حتى مع التعديلات التلقائية.
تحسينات الأداء: دروس عملية
تقنيات عرض الطرفية
ملفات ink/screen.ts وink/optimizer.ts توضح استخدام:
- مجمعات أحرف مدعومة بـ
Int32Arrayلتحسين الذاكرة - تحسين الترقيع لخفض عمليات تحديث العرض بمقدار 50 مرة في تدفق الرموز
اقتصاديات ذاكرة التخزين المؤقت للموجه
ملف promptCacheBreakDetection.ts يتتبع 14 متجهًا لكسر الكاش، باستخدام "مزالج لاصقة" لمنع إبطال الكاش غير الضروري، ما يقلل تكاليف التوكنات.
معالجة فشل الضغط التلقائي (autocompact)
في autoCompact.ts:
const MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3;
هذا التغيير البسيط أوقف هدر مئات آلاف مكالمات API يوميًا عند فشل ضغط السياق.
تفاصيل تعزيز الأمان
أمان Bash: 23 فحصًا مرقمًا
ملف bashSecurity.ts ينفذ 23 فحصًا ضد:
- استغلال وظائف Zsh
- حقن مسافات Unicode عديمة العرض
- حقن null-byte في IFS
- حمايات إضافية من مراجعات الأمان
تطبيق عملي: إذا كنت تدير أدوات تنفذ أوامر shell (مثل سكربتات API)، راجع دائمًا طبقة أمان التنفيذ أو استخدم أدوات تتحقق من ذلك تلقائيًا.
ما يجب أن يستخلصه مطورو API عمليًا
1. افهم ما تفعله أدوات الترميز بالذكاء الاصطناعي داخليًا
راجع دائمًا ما تجمعه الأدوات من بيانات وما ترسله للخارج، وتحقق إن كانت تخفي تورطها في الكود.
2. سلسلة أدوات البناء (build toolchain) = سطح هجوم
- راجع تبعيات خط أنابيب البناء
- تحقق من عدم نشر ملفات حساسة (مثل
.mapأو.env) - استخدم منصات تقلل الاعتماد على جهات خارجية
3. أدوات الترميز تتجه نحو التشغيل المستقل
جهّز دورة حياة API متكاملة، وتأكد أن أي تعديل من وكيل أو إنسان يحافظ على تزامن المواصفات والاختبارات.
4. شفافية الكود المصدري مهمة
يفضل اختيار أدوات يمكنك فحص كودها أو الاعتماد على منصات ذات سمعة موثوقة، مع مراعاة المخاطر.
الأسئلة الشائعة
هل Claude Code آمن للاستخدام بعد التسريب؟
نعم، التسريب كشف الكود وليس بيانات المستخدم. الميزات التي ظهرت (مكافحة الاستخلاص، اكتشاف الإحباط، وضع التخفي) خيارات معمارية وليست ثغرات.
ما هو "وضع التخفي" في Claude Code؟
يمنع الكشف عن أسماء المشاريع الداخلية أو هوية Claude Code عند العمل خارج Anthropic.
ما هي الأدوات الوهمية في Claude Code؟
تعريفات أدوات وهمية تُحقن تلقائيًا لتسميم بيانات التدريب في حال تم تسجيل حركة المرور لاستخلاص سلوك النظام.
ما هو KAIROS في Claude Code؟
وضع وكيل مستقل لم يُصدر بعد، يعمل في الخلفية لمراقبة وتعديل المستودعات تلقائيًا.
كيف تسرب الكود المصدري لـ Claude Code؟
بسبب خطأ في Bun أُدرجت خرائط المصدر في حزمة npm، ما كشف الكود الكامل.
هل يؤثر التسريب على مستخدمي Claude API؟
لا. التأثير محصور في أداة CLI وليس واجهة API أو بيانات المستخدم.
هل يجب أن أقلق من اكتشاف الإحباط في أدوات الترميز؟
الأمر شخصي. Claude Code يستخدم regex لاكتشاف الإحباط لتحسين المنتج. أدوات أخرى قد تطبق آليات مشابهة دون إعلان.
كيف يرتبط هذا بهجوم Axios npm؟
حدثا في نفس اليوم لكن لا علاقة بينهما. تسريب Claude Code خطأ بنائي، بينما هجوم Axios كان اختراقًا متعمدًا.
النقاط الرئيسية
- تسرب مصدر Claude Code بسبب خطأ في Bun أدى لشحن خرائط source map في npm
- آليات مكافحة الاستخلاص تَحقن أدوات وهمية وتلخّص الاستنتاجات
- وضع التخفي يخفي تورط Claude Code في مستودعات المصدر المفتوح
- اكتشاف الإحباط يتم عبر regex وليس LLM
- بنية KAIROS تكشف عن وضع وكيل مستقل يعمل في الخلفية
- تصديق العميل يضمن أن الطلبات من ثنائي أصلي
- التسريب يؤكد أهمية الأدوات الشفافة والقابلة للفحص في تطوير API
فهمك لعمل أدوات الترميز بالذكاء الاصطناعي من الداخل يمنحك قدرة أكبر على اتخاذ قرارات واعية حول الأمان والخصوصية وسير العمل. بالنسبة لفرق تطوير API، الدرس العملي: أدواتك جزء من سطح الأمان. اختر أدوات يمكن التحقق منها، وابنِ سير عمل يظل ثابتًا سواء أتى التغيير من مطور أو وكيل ذكاء اصطناعي.
Top comments (0)