الصورة الرمزية بيت


لقد قمنا بمراجعة Gradio 5 حتى تكون تطبيقات التعلم الآلي الخاصة بك آمنة!

في السنوات القليلة الماضية، أصبحت Gradio (أكثر من 6 ملايين عملية تثبيت Pypi شهرية) هي الطريقة الافتراضية لبناء تطبيقات الويب للتعلم الآلي في Python. في بضعة أسطر فقط من التعليمات البرمجية، يمكنك إنشاء واجهة مستخدم لتطبيق إنشاء الصور، أو chatbot، أو أي نوع آخر من تطبيقات ML و شاركه مع الآخرين باستخدام روابط المشاركة المضمنة في Gradio أو Hugging Face Spaces.

import gradio as gr
def generate(seed, prompt):  
    ...  
    return image
    

gr.Interface(
    generate,   
    inputs=[gr.Slider(), gr.Textbox()],  
    outputs=[gr.Image()]
).launch(share=True

هدفنا مع Gradio هو السماح للمطورين بإنشاء تطبيقات ويب تعمل بشكل رائع خارج الصندوق لحالات استخدام التعلم الآلي. وهذا يعني السماح لك، كمطور، ببناء التطبيقات التي:

  • التوسع بسهولة لأعداد كبيرة من المستخدمين المتزامنين
  • يمكن الوصول إليها لأكبر عدد ممكن من المستخدمين
  • توفير واجهة مستخدم وتجربة مستخدم وميزات متسقة
  • العمل بشكل موثوق عبر عدد كبير من المتصفحات والأجهزة

…حتى لو لم تكن خبيرًا في التوسع أو إمكانية الوصول أو واجهة المستخدم/تجربة المستخدم!

والآن نقوم بإضافة الويب حماية إلى هذه القائمة. لقد طلبنا من شركة Trail of Bits، وهي شركة معروفة في مجال الأمن السيبراني، إجراء تدقيق مستقل لـ Gradio. تم إصلاح جميع المشكلات الأمنية التي اكتشفوها قبل إصدار Gradio 5.

وهذا يعني أن تطبيقات التعلم الآلي أنت تبني مع جراديو 5 سوف نتبع أفضل الممارسات عندما يتعلق الأمر بأمن الويب دون أي تغييرات كبيرة على التعليمات البرمجية الخاصة بك.

لماذا التدقيق الأمني؟

في العامين الماضيين، عمل فريق Gradio مع المجتمع لتصحيح الثغرات الأمنية عند اكتشافها. ولكن مع تزايد شعبية Gradio (مع وجود أكثر من 470.000 تطبيق Gradio حاليًا على Hugging Face Spaces)، أصبح ضمان الأمان أكثر أهمية.

لذلك في Gradio 5، قررنا أن نتبع نهجًا مختلفًا — قم بـ استباقي التدقيق الأمني ​​لقاعدة بيانات Gradio بحيث تكون تطبيقات التعلم الآلي المبنية مع Gradio 5 آمنة بشكل افتراضي.

لقد طلبنا من Trail of Bits إجراء تدقيق مستقل وشامل لـ Gradio. حدد فريق الخبراء في الذكاء الاصطناعي وأمن التطبيقات المخاطر الأمنية في قاعدة بيانات Gradio في أربعة سيناريوهات عامة:

  • تطبيقات Gradio تعمل محليا
  • يتم نشر تطبيقات Gradio على Hugging Face Spaces أو خوادم أخرى
  • تمت مشاركة تطبيقات Gradio مع روابط المشاركة المضمنة
  • نقاط الضعف في سلسلة التوريد الناشئة عن خط أنابيب Gradio CI

بعد ذلك، عملنا بشكل وثيق مع Trail of Bits لتحديد استراتيجيات التخفيف لكل من هذه المخاطر. إن بساطة Gradio وسهولة استخدامه، على الرغم من كونها مفيدة للمطورين، إلا أنها قدمت أيضًا تحديات أمنية فريدة من نوعها، حيث لم نرغب في أن يحتاج المطورون إلى إعداد إجراءات أمنية معقدة مثل سياسات CORS وCSP.

وبحلول نهاية التعاون، قمنا بإصلاح جميع المخاطر الأمنية التي تم تحديدها بواسطة Trail of Bits. تم التحقق من صحة كافة الإصلاحات بواسطة Trail of Bits، وتم تضمينها في إصدار Gradio 5.0. على الرغم من أنه من المستحيل إثبات عدم وجود ثغرات أمنية، إلا أن هذه خطوة كبيرة في توفير الطمأنينة بأن تطبيقات Gradio الخاصة بك آمنة.

النتائج الرئيسية

نوضح أدناه الثغرات الأمنية الرئيسية التي اكتشفها Trail of Bits والتي تتوافق مع السيناريوهات الأربعة المذكورة أعلاه. ومن أجل الشفافية وروح المصدر المفتوح، فإننا ننشر تقرير الأمان الكامل للعامة، ويمكن العثور على مزيد من التفاصيل حول كل من هذه المشكلات في التقرير.

تطبيقات Gradio تعمل محليا

  • توب-جراديو-1 و توب-جراديو-2: التكوينات الخاطئة في سياسة CORS الخاصة بالخادم والتي، في سياق خادم Gradio المعتمد، ستسمح للمهاجمين بسرقة رموز الوصول والاستيلاء على حسابات الضحية عند زيارتهم لموقع الويب الضار الخاص بهم.

يتم نشر تطبيقات Gradio على Hugging Face Spaces أو خوادم أخرى

  • توب-جراديو-3: قراءة كاملة لـ SSRF المستندة إلى GET والتي من شأنها أن تسمح للمهاجمين بتقديم طلبات وقراءة الاستجابات من نقاط النهاية العشوائية، بما في ذلك تلك الموجودة على الشبكة الداخلية للمستخدم.

  • توب-جراديو-10: عمليات تحميل عشوائية لأنواع الملفات التي من شأنها أن تسمح للمهاجم باستضافة حمولات XSS على خادم Gradio الخاص بالمستخدم. في سياق خادم Gradio المعتمد، يمكن للمهاجم استخدام هذا للاستيلاء على حسابات المستخدمين عندما يصل الضحية إلى موقع الويب الضار الخاص بالمهاجم.

  • توب-جراديو-13: حالة سباق تسمح للمهاجم بإعادة توجيه حركة مرور المستخدم إلى الخادم الخاص به وسرقة الملفات التي تم تحميلها أو محادثات chatbot.

  • توب-جراديو-16: قد تسمح وظائف ما بعد المعالجة للعديد من المكونات للمهاجمين بتسريب ملفات عشوائية في تكوينات خادم Gradio البسيطة جدًا.

تمت مشاركة تطبيقات Gradio مع روابط المشاركة المضمنة

  • توب-جراديو-19: تنفيذ التعليمات البرمجية عن بعد (RCE) مع المستخدم الجذر على Gradio API Server عبر تكوين nginx الخاطئ الذي كشف واجهة برمجة تطبيقات عامل الإرساء غير المصادق عليها. سمح هذا للمهاجم بتوفير مضيف ومنفذ ضار في الخطوة 2 من الرسم التخطيطي وإعادة توجيه جميع أنفاق frp إلى خادم ضار يسجل كل حركة مرور المستخدم، بما في ذلك الملفات التي تم تحميلها ومحادثات مربعات الدردشة.

  • توب-جراديو-11: عدم وجود تشفير قوي في الاتصالات بين عميل frp وخادم frp، مما يسمح للمهاجمين الذين هم في وضع يسمح لهم باعتراض الطلبات (تلك الواردة في الخطوتين 6 و7 في الرسم البياني أعلاه) لقراءة وتعديل البيانات التي تنتقل من وإلى خادم frp.

نقاط الضعف في سلسلة التوريد الناشئة عن خط أنابيب Gradio CI

  • توب-جراديو-25: تستخدم العديد من مسارات عمل GitHub Actions في مستودع Gradio إجراءات الجهات الخارجية المثبتة على العلامات أو أسماء الفروع بدلاً من SHAs الالتزام الكامل. قد يسمح هذا للجهات الفاعلة الضارة بتعديل الإجراءات بصمت، مما قد يؤدي إلى التلاعب بإصدارات التطبيقات أو تسريب الأسرار.

  • بشكل منفصل، أفاد أحد الباحثين الأمنيين في GitHub أن إجراءات GitHub الخاصة بنا يمكن أن تسمح بتنفيذ تعليمات برمجية غير موثوقة والتسلل السري إذا قام مهاجم بتشغيل سير عمل وإغراق ذاكرة مشغلي GitHub بذكاء.

المضي قدما

نحن ممتنون جدًا لشركة Trail of Bits لإجراء التدقيق الأمني ​​الشامل لـ Gradio وللتحقق من صحة إجراءات التخفيف التي وضعناها في Gradio 5.

للمضي قدمًا، نخطط لمواصلة العمل مع مجتمع الأمان لتحديد المشكلات الأمنية وتخفيفها في Gradio. لقد أضفنا أيضًا اختبارات وحدة الأمان إلى مجموعة الاختبار لدينا، واختبارات غامضة مصممة خصيصًا لتحديد نقاط الضعف المحتملة، ونستخدم أدوات التحليل الثابتة مثل Semgrep في CI الخاص بنا لاكتشاف مشكلات الأمان الشائعة في التعليمات البرمجية الخاصة بنا ومنع التراجعات الأمنية.

نحن ملتزمون بضمان أنه بينما نواصل تطوير Gradio 5 (ولدينا الكثير من الخطط!)، فإننا نفعل ذلك بطريقة تعطي الأولوية للأمان حتى نتمكن من القيام بدورنا في جعل تطبيقات التعلم الآلي أفضل وأكثر أمانًا.

قم بتثبيت Gradio 5 اليوم:

pip install --upgrade gradio

وابدأ في إنشاء أول تطبيق Gradio 5 لك.

شاركها.
اترك تعليقاً