كشفت Hugging Face عن حادث أمني في يوليو 2026 ونصحت كل مستخدم بتدوير أي رموز وصول ومراجعة نشاط الحساب الأخير. تدرج هذه الصفحة الخطوات الدقيقة للقيام بالأمرين. تنطبق هذه الإرشادات سواء كنت تعتقد أنك تأثرت أم لا؛ فبعد أي حادث، تقوم بالتدوير بناءً على الاشتباه، وليس على الإثبات.
ماذا حدث باختصار؟
- اكتسب عميل ذكاء اصطناعي مستقل الوصول إلى بنية Hugging Face التحتية خلال عطلة نهاية أسبوع في يوليو 2026.
- حصد الاختراق بيانات اعتماد الخدمة وانتقل عبر المجموعات الداخلية. أكدت OpenAI لاحقًا أن العميل كان أحد نماذجها الخاصة، تم اختباره مع رفضات أمان مخفضة. القصة الكاملة موجودة في تحليلنا لاختراق OpenAI و Hugging Face.
- لم تبلغ Hugging Face عن أي دليل على التلاعب بالنماذج العامة، مجموعات البيانات، أو Spaces، وتحققت من أن صور الحاويات والحزم المنشورة نظيفة. كان تقييم بيانات الشركاء والعملاء جاريًا عند الكشف.
الإجراء المطلوب من المستخدمين الأفراد صغير ومحدد: قم بتدوير الرموز الخاصة بك.
قم بتدوير الرمز الخاص بك الآن
- انتقل إلى صفحة رموز الوصول في إعداداتك.
- ابحث عن كل رمز نشط في القائمة. انقر على إدارة على الرمز لحذفه أو تحديثه. يؤدي الحذف إلى إبطال الرمز القديم على الفور.
- انقر على رمز جديد لإنشاء بديل. اختر الدور مفصّل (fine-grained) لأي شيء يعمل في الإنتاج.
- انسخ الرمز الجديد مرة واحدة وقم بتخزينه في مدير الأسرار، وليس في التعليمات البرمجية أو مستند مشترك.
- حدث كل مكان استخدم الرمز القديم (انظر القسم التالي)، ثم تأكد من أن الرمز القديم لم يعد يعمل.
توثيقات Hugging Face الخاصة صريحة بشأن أهمية هذا الأمر: "حاول ألا تسرب الرمز الخاص بك." الرمز المُدوّر يغلق النافذة التي يمكن لرمز مسروق أن يستمر في العمل خلالها.
أين قد يختبئ الرمز الخاص بك
لا يتم تدوير الرمز إلا عندما يتم استبدال كل نسخة منه. تحقق من كل من هذه المواقع:
- ذاكرة التخزين المؤقت للجهاز المحلي، والتي يتم كتابتها عادة بواسطة
huggingface-cli loginإلى~/.cache/huggingface/token. - متغيرات البيئة مثل
HF_TOKENأوHUGGING_FACE_HUB_TOKENفي ملف تعريف shell الخاص بك أو ملفات.env. - أسرار الدفاتر (Notebook secrets) في بيئات Google Colab أو Kaggle أو Jupyter.
- أسرار CI/CD في GitHub Actions أو GitLab CI أو CircleCI.
- صور الحاويات ووسائط بناء Docker.
- أسرار مستودعات Hugging Face Spaces.
- مساعدي بيانات اعتماد Git، إذا كنت تقوم بالمصادقة على Hub عبر HTTPS باستخدام رمز ككلمة مرور.
- الخدمات النهائية وتكاملات البائعين التي تستدعي Hub أو موفري الاستنتاج (Inference Providers) نيابة عنك.
إذا فاتتك نسخة واحدة، فإن التدوير يكون غير مكتمل. تبقى بيانات الاعتماد القديمة نشطة أينما تركت.
حدد نطاق الرمز الجديد بشكل صحيح
تقدم Hugging Face ثلاثة أدوار للرموز. اختر الأضيق نطاقًا الذي لا يزال يسمح بتشغيل المهمة.
| الدور | الصلاحيات | استخدمه لـ |
|---|---|---|
fine-grained |
وصول محدود إلى المستودعات والمنظمات والأذونات المحددة التي تختارها | تطبيقات الإنتاج، مهام CI، أي شيء مشترك عبر فريق |
read |
وصول للقراءة إلى المستودعات التي يمكنك قراءتها بالفعل | تنزيل النماذج الخاصة، تشغيل الاستنتاج |
write |
قراءة بالإضافة إلى الكتابة إلى المستودعات التي يمكنك الكتابة إليها | رفع النماذج، تحرير بطاقات النموذج، تحميلات التدريب |
قاعدتان من أفضل ممارسات Hugging Face:
- أنشئ رمزًا واحدًا لكل تطبيق أو استخدام، حتى تتمكن من إبطال أحدهما دون تعطيل الآخرين.
- فضل الرموز المفصلة (fine-grained) للإنتاج. إذا تسرب أحدها، فإن نطاق تأثيره يقتصر على الموارد التي حددت نطاقها له.
نموذج نطاقات OAuth 2.0 هو نفس الفكرة المطبقة في أماكن أخرى: امنح الحد الأدنى، وليس الحد الأقصى.
راجع نشاط حسابك
بعد التدوير، تحقق من أي شيء لم تقم به:
- قائمة رموز الوصول. احذف أي رمز لا تتعرف عليه أو لم تعد تستخدمه.
- المستودعات والالتزامات الأخيرة، للنماذج، مجموعات البيانات، أو Spaces التي لم تغيرها.
- عضويات وأدوار المنظمة، للإضافات التي لم تقم بها.
- الفواتير والاستخدام، لمصروفات موفري الاستنتاج (Inference Providers) التي تبدو غير صحيحة.
- التطبيقات المتصلة ومنح OAuth، للوصول من طرف ثالث لم تصرح به.
إذا بدا أي شيء غير طبيعي، اتصل بـ security@huggingface.co وقم بالتدوير مرة أخرى.
للفرق و CI/CD
التدوير الفردي هو الخطوة الأولى. لدى الفرق وسائل إضافية:
- استبدل رموز CI المخزنة بأخرى قصيرة الأجل. تقوم ميزة الناشرين الموثوق بهم من Hugging Face بتبادل هوية OIDC لموفر CI برمز Hub مؤقت في بداية كل تشغيل، بحيث لا يبقى أي رمز طويل الأجل في أسرار CI الخاصة بك.
- في خطط الفرق والمؤسسات (Team and Enterprise)، طبق سياسة الرموز المفصلة (fine-grained) فقط. يتم رفض رموز القراءة/الكتابة الكلاسيكية بعد ذلك مقابل موارد مؤسستك برمز
403. - يمكن للمسؤولين الموافقة على الرموز المحددة للمؤسسة، ورفضها، وإلغائها من إعدادات إدارة الرموز. الإلغاء في إصدار المؤسسة دائم.
- احتفظ بسجل يوضح الرمز الذي ينتمي إلى أي خدمة، بحيث يكون التدوير التالي عبارة عن بحث، وليس مطاردة.
للمبدأ الأوسع، انظر كيفية تأمين بيانات اعتماد API لعميل الذكاء الاصطناعي و الطرق الآمنة لتخزين مفاتيح API عبر الفرق.
أبقِ الرمز الجديد بعيدًا عن حركة مرور الاختبار الخاصة بك
إحدى الطرق الشائعة لتسرب الرموز هي من خلال الاختبار والتصحيح: يتم لصقها في طلب، أو حفظها في مجموعة، أو الالتزام بها عن طريق الخطأ. إن الاحتفاظ بقيم المصادقة في متغيرات البيئة بدلاً من تضمينها مباشرة في الطلبات يقلل من هذا الخطر.
إذا كنت تستدعي Hugging Face Inference API أثناء البناء، يقوم Apidog بتخزين الرمز كمتغير بيئة ويمرره كرمز حامل (bearer token) عند وقت الطلب، بحيث يبقى السر بعيدًا عن طلباتك المحفوظة ويمكن استبداله في مكان واحد بعد التدوير. هذا أيضًا يجعل من السهل التحقق من نجاح التدوير: قم بتشغيل مكالمة واحدة بالرمز الجديد وتأكد من نجاحها، ثم تأكد من أن الرمز القديم يعيد الآن رمز 401 أو 403. لمعرفة كيفية عمل رموز الحامل، راجع المصادقة الأساسية مقابل رمز الحامل.
ذو صلة: التحليل الكامل لاختراق OpenAI و Hugging Face و وثائق رموز الوصول من Hugging Face.
الأسئلة الشائعة
هل يجب علي التدوير إذا لم أتأثر؟ نعم. نصحت Hugging Face جميع المستخدمين بالتدوير، وبعد أي حادث لا يمكنك التأكد من بيانات الاعتماد التي قرأها المهاجم. التدوير غير مكلف؛ افتراض أنك كنت آمناً ليس كذلك.
كيف أعرف إذا تم استخدام الرمز الخاص بي من قبل شخص آخر؟ راجع قائمة رموز الوصول الخاصة بك، والالتزامات الأخيرة، وتغييرات المنظمة، والفواتير، والتطبيقات المتصلة. لا تعرض Hugging Face مسار تدقيق كاملاً لكل رمز على الحسابات الشخصية، لذا تعامل مع أي رمز شارك بيئة الحادث على أنه مشبوه وقم بتدويره.
هل سيعطل التدوير نصوصي البرمجية؟ فقط حتى تقوم بتحديث الرمز. كل نص برمجي، دفتر ملاحظات، ومهمة CI تستخدم الرمز القديم تحتاج إلى القيمة الجديدة. هذا هو السبب في أن الرمز الواحد لكل تطبيق هو النمط الموصى به؛ تقوم باستبدالها واحدًا تلو الآخر دون تأثير متتابع.
رمز القراءة أم رمز مفصّل (fine-grained)؟ استخدم read للمهام البسيطة والشخصية للتنزيل والاستنتاج. استخدم fine-grained للإنتاج، CI، وأي شيء مشترك، لأنه يحد من الوصول إلى الموارد المحددة التي تسميها.
أين يجب أن يكون الرمز الجديد؟ في مدير الأسرار أو متغير بيئة، وليس أبدًا في التعليمات البرمجية المصدر، أو خلية دفتر ملاحظات، أو مستند مشترك. قم بتخزينه مرة واحدة وارجع إليه في كل مكان آخر.
