← أحدث الأبحاث
💻 computer science

PyPitfall: Dependency Chaos and Software Supply Chain Vulnerabilities in Python

تقدم هذه الورقة PyPitfall، وهي دراسة كمية تحلل هياكل التبعية لأكثر من 378,000 حزمة من حزم PyPI للكشف عن الانتشار الواسع للتبعيات الضعيفة والمخاطر الأمنية المتعدية ضمن سلسلة توريد برمجيات بايثون.

المؤلفون الأصليون: Jacob Mahon, Chenxi Hou, Zhihao Yao

نُشر 2026-03-11
📖 4 دقيقة قراءة☕ قراءة في استراحة قهوة

المؤلفون الأصليون: Jacob Mahon, Chenxi Hou, Zhihao Yao

البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل

تخيل أنك تقوم ببناء قلعة ضخمة ومعقدة. بدلاً من نحت كل طوبة ونافذة وباب من الصفر، قررت شراء وحدات جاهزة من سوق عملاق مفتوح يسمى PyPI (فهرس حزم بايثون). لقد اشتريت "وحدة باب"، و"وحدة جدار"، و"وحدة سقف".

لكن هنا تكمن المشكلة: "وحدة الباب" التي اشتريتها لا تقف هناك فحسب؛ بل صممها شخص آخر استخدم "وحدة مفصلات"، والتي استخدمت بدورها "وحدة برغي"، والتي استخدمت "وحدة سبائك معدنية". هذا هو ما يسمى بـ سلسلة توريد البرمجيات.

ورقة البحث "PyPitfall" هي بمثابة مفتش سلامة ضخم دخل إلى هذا السوق، وفحص ما يقرب من 380,000 تصميم مختلف للقلع (حزم بايثون)، وطرح سؤالاً مرعباً: "كم عدد هذه القلاع المبنية فوق أجزاء مكسورة أو صدئة أو خطيرة نعرفها بالفعل؟"

إليك تفصيل نتائجهم باستخدام تشبيهات بسيطة:

1. "متاهة" التبعيات

عندما تشتري وحدة جاهزة، غالباً لا تدرك أنها تأتي مع أعبائها الخاصة.

  • التبعيات المباشرة: هي الأجزاء التي طلبتها صراحة (مثل: "أريد باباً").
  • التبعيات المتعدية (غير المباشرة): هي الأجزاء المخفية التي يحتاجها الباب ليعمل (مثل: الباب يحتاج مفصلات، والمفصلات تحتاج براغي).

وجد الباحثون أن بعض هذه السلاسل يمكن أن تكون عميقة للغاية. إحدى الحزم التي وجدوها كانت تشبه دمية "الماتريوشكا" الروسية ذات 23 طبقة. قد تكون تبني قلعة، ولكن في الطبقة العشرين بالأسفل، يوجد برغي معروف بأنه معيب. إذا انكسر هذا البرغي، يمكن لقلعتك بأكملها أن تنهار، رغم أنك لم تلمس ذلك البرغي أبداً.

2. مشكلة "الأجزاء المكسورة"

الباحثون لم يخترعوا أجزاءً مكسورة جديدة؛ بل نظروا فقط إلى قائمة الأجزاء التي يعرف الجميع بالفعل أنها مكسورة (تسمى CVEs، أو الثغرات والتعرضات الشائعة). وتحققوا مما إذا كان لا يزال هناك من يحاول البناء باستخدامها.

ووجدوا نوعين من الخطر:

  • "الفخ المضمون" (4,655 حزمة): هذه تشبه طلب "باب" يأتي فقط مع مفصلة مكسورة. إذا حاولت بناء هذه القلعة، فأنت مضطر لاستخدام الجزء المكسور. لا توجد طريقة لإصلاحه دون كسر الباب تماماً.
  • "الفخ المحتمل" (141,044 حزمة): هذه تشبه طلب "باب" قد يأتي بمفصلة مكسورة، ولكنه قد يأتي أيضاً بمفصلة جيدة. الأمر يعتمد على من يورد القطع. إذا نفد من المورد المفصلات الجيدة، فستحصل قلعتك على المفصلة المكسورة. إنها مقامرة، وغالباً ما تكون الاحتمالات في صالح الجزء المكسور.

3. "المتاهة الدائرية"

أحياناً تصبح التعليمات مربكة لدرجة أن الأجزاء تبدأ في مطاردة ذيولها.

  • التشبيه: تخيل باباً يقول: "أنا أحتاج إلى مفصلة"، والمفصلة تقول: "أنا أحتاج إلى باب".
  • وجد الباحثون أكثر من مليون من هذه الحلقات المفرغة. إذا حاول جهاز كمبيوتر بناء هذه الأجز، فسيظل عالقاً في حلقة لانهائية، مثل كلب يطارد ذيله، حتى يتوقف عن العمل (يتعطل). بعض هذه الحلقات كانت مخفية ببراعة لدرجة أنها كانت تُستخدم فعلياً للعب لعبة السودوكو!

4. "ارتباك الإصدارات"

في العالم الحقيقي، إذا كان الجزء مكسوراً، فعادة ما يقول المصنع: "لا تستخدم الإصدار 1.0، استخدم الإصدار 2.0". لكن القواعد في عالم بايثون فوضوية.

  • بعض الحزم تقول: "أحتاج الإصدار من 1.0 إلى 1.5".
  • وأخرى تقول: "أحتاج الإصدار من 1.4 إلى 2.0".
  • الإصدار "المكسور" قد يكون 1.45.
  • ولأن القواعد معقدة للغاية، غالباً ما يختار الكمبيوتر الإصدار المكسور لأنه يناسب الحسابات الرياضية، حتى لو كان هناك إصدار آمن متاح.

5. الخلاصة الكبرى

تخلص الورقة إلى أنه بينما يجعل استخدام الأجزاء الجاهزة بناء البرمجيات سريعاً وسهلاً (مثل شراء قطع الليغو)، إلا أنه يخلق خطراً خفياً.

  • النطاق: نظروا في ما يقرب من 380,000 حزمة.
  • النتيجة: الآلاف مجبرون على استخدام أجزاء مكسورة، وأكثر من 140,000 حزمة معرضة لخطر استخدامها.
  • العمق: الأجزاء المكسورة غالباً ما تكون مدفونة بعمق داخل السلسلة (متوسط العمق من 4 إلى 6 طبقات)، مما يجعل من الصعب رؤيتها.

لماذا يجب أن تهتم؟

فكر في الأمر مثل سلامة الغذاء. إذا اشتريت شطيرة، فأنت تثق في الخبز واللحم والجبن. ولكن إذا كانت المزرعة التي زرعت القمح قد استخدمت تربة مسمومة، فإن شطيرتك ستكون غير آمنة، حتى لو لم تكن أنت من زرع القمح بنفسك.

PyPitfall تخبرنا: "مهلاً، سلسلة التوريد لبرمجيات بايثون مليئة بالقمح المسموم. نحن بحاجة للبدء في فحص مكونات المكونات، وليس فقط المنتج النهائي".

لقد شارك المؤلفون نتائجهم مع المسؤولين عن السوق (PyPI) حتى يتمكنوا من محاولة إصلاح القواعد وتحذير المطورين قبل أن تنهار "قلاعهم".

غارق في أبحاث مجالك؟

تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.

جرّب Digest →