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

Vulnerability Abundance: A formal proof of infinite vulnerabilities in code

تقدم هذه الورقة برهاناً رسمياً على أن برنامجاً واحداً بلغة C يمكن أن يحتوي على مجموعة غير منتهية قابلة للعد من الثغرات المتميزة والقابلة لتخصيص معرف CVE، مما يقدم مفهوم "وفرة الثغرات" لتحليل توزيع العيوب الأمنية والتمييز بين اللانهاية النظرية للثغرات وبين المجموعة المحدودة من الاستغلالات الفعلية.

المؤلفون الأصليون: Eireann Leverett, Jeroen van der Ham-de Vos

نُشر 2026-04-10
📖 5 دقيقة قراءة🧠 قراءة متعمّقة

المؤلفون الأصليون: Eireann Leverett, Jeroen van der Ham-de Vos

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

الفكرة الكبرى: آلة الثغرات اللانهائية

تخيل أن لديك مصنعاً سحرياً. تغذيه بزر واحد، فيخرج لك برنامجاً برمجياً جديداً وفريداً. لكن إليك المفاجأة: كل برنامج يصنعه يحتوي على فخ مخفي.

لقد بنى مؤلفو هذه الورقة برنامجاً حاسوبياً حقيقياً يعمل يسمى "مصنع الثغرات" (Vulnerability Factory). لقد أثبتوا رياضياً أن هذا المصنع يمكنه الاستمرار في إنتاج برامج جديدة إلى الأبد، وكل واحد منها يحتوي على خلل أمني متميز وقابل للإصلاح.

ولأن المصنع يمكنه العمل إلى الأبد، فهذا يثبت أن الثغرات البرمجية لانهائية. لا يوجد "نهاية" لعدد الأخطاء التي يمكننا العثين عليها في الأكواد.

المصنع في العمل: تشبيه قطاعة البسكويت

فكر في "مصنع الثغرات" مثل قطاعة بسكويت عالية التقنية.

  • العجينة: هي هيكل الكود الأساسي.
  • القطاعة: هي جزء "الثغرة".
  • العملية: في كل مرة تعمل فيها الآلة، تغير حجم قطعة البسكويت قليلاً (ربما 16 بوصة، ثم 17، ثم 18).

في عالم أمن البرمجيات، إذا كان لديك خطأ من نوع "تجاوز سعة المخزن المؤقت" (Buffer Overflow) - وهو نوع كلاسيكي من الثغرات حيث تفيض البيانات خارج حدودها - فإنه يحدث عادةً لأن البرنامج يحاول وضع كمية كبيرة من الماء في كوب.

  • تشغيل الآلة رقم 1: يصنع كوباً يتسع لـ 16 أونصة. إذا صببت 17، سينكسر.
  • تشغيل الآلة رقم 2: يصنع كوباً يتسع لـ 17 أونصة. إذا صببت 18، سينكسر.

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

بما أن الآلة يمكنها صنع أكواب بحجم 16، 17، 18... وصولاً إلى اللانهاية، فهي تخلق عدداً لانهائياً من الأخطاء المتميزة.

تشبيه "الوفرة الكيميائية"

تقدم الورقة مفهوماً جديداً يسمى "وفرة الثغرات" (Vulnerability Abundance). لفهم هذا، تخيل كون الكيمياء.

  • الهيدروجين موجود في كل مكان. إنه العنصر الأكثر شيوعاً.
  • الذهب نادر.
  • الأكسجين شائع في القشرة الأرضية ولكنه نادر في الفضاء العميق.

يقول المؤلفون إن البرمجيات هي نفسها.

  • أخطاء الذاكرة (مثل تجاوز سعة المخزن المؤقت) هي "الهيدروجين" للبرمجة بلغات C و C++. هي موجودة في كل مكان لأن هذه اللغات تسمح لك بالعبث بالذاكرة مباشرة.
  • الأخطاء المنطقية قد تكون هي "الذهب" للغات Python أو Java. هي أندر في تلك اللغات لأن هذه اللغات تمنعك من ارتكاب أخطاء الذاكرة، ولكن لا يزال بإمكانك ارتكاب أخطاء منطقية.

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

الخدعة: ثغرات لانهائية مقابل استغلالات محدودة

هذا هو الجزء الأهم في الورقة، وهو أمر يبعث على الارتياح قليلاً.

مجرد وجود ثغرات لانهائية لا يعني وجود مخترقين لانهائيين أو هجمات لانهائية.

فكر في الأمر كغابة مليئة بالأشجار اللانهائية.

  • الثغرات: كل شجرة في الغابة هي مكان محتمل لاختباء نمر. هناك أشجار لانهائية، لذا هناك أماكن اختباء لانهائية.
  • الاستغلالات: النمور (المخترقون) نادرون. هم يصطادون فقط الأشجار القريبة من الطريق (البرامج الشهيرة) أو الأشجار سهلة التسلق.

تشير الورقة إلى حقيقة قاسية:

  1. معظم الثغرات لا تُستخدم أبداً. حوالي 6% فقط من أخطاء البرمجيات المعروفة يتم استغلالها فعلياً من قبل المخترقين.
  2. المخترقون كسالى (أو كفؤون). هم لا يحتاجون للعثور على كل ثغرة. هم فقط بحاجة للعثور على الثغرات الموجودة في البرامج التي يستخدمها الجميع.

إذا كان 90% من العالم يستخدم نظام Windows، وكان هناك ثغرة واحدة في Windows، فإن هذه الثغرة الواحدة أخطر من مليون ثغرة في برنامج صغير وغير معروف يستخدمه خمسة أشخاص فقط.

مبدأ "الأسطول الصغير"

يستخدم المؤلفون استعارة رائعة لهذا الأمر:
تخيل أن محيطات العالم مليئة بالجزر (الثغرات). هناك جزر لانهائية.

  • لكن أسطول القراصنة (المخترقين) صغير.
  • القراصنة لا يبحرون إلى كل جزيرة. هم يبحرون فقط إلى أكبر ثلاث جزر حيث يوجد الكنز.

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

ماذا يجب أن نفعل؟

تخلص الورقة إلى تغيير في الاستراتيجية:

  1. توقف عن محاولة إيجاد "كل" الثغرات. بما أنها لانهائية، فلن تنهي المهمة أبداً. الأمر يشبه محاولة عد كل حبة رمل على شاطئ يستمر في النمو.
  2. ابدأ بقياس "الوفرة". بدلاً من مجرد عد الأخطاء، يجب أن نسأل: "ما هي أنواع الأخطاء الأكثر شيوعاً في البرمجيات التي نستخدمها؟"
  3. غيّر "المكونات". إذا كنا نعلم أن لغات C و C++ "غنية" بأخطاء الذاكرة الخطيرة، فيجب أن ننتقل إلى لغات مثل Rust أو Go، وهي لغات "فقيرة" في تلك الأخطاء المحددة. هذا يغير التركيبة الكيميائية لبرمجياتنا، مما يجعل "الهيدروجين" الخاص بالخطر أقل وفرة بكثير.

الملخص

  • الإثبات: بنينا آلة تثبت وجود عدد لانهائي من الثغرات البرمجية.
  • المفهوم: يجب أن نقيس "وفرة" أنواع مختلفة من الأخطاء، تماماً كما يقيس الكيميائيون العناصر.
  • الواقع: الثغرات اللانهائية لا تعني خطراً لانهائياً. الخطر يأتي من الجمع بين الثغرات + البرمجيات الشهيرة.
  • الحل: لا تحاول سد كل ثغرة. بدلاً من ذلك، غير لغات البرمجة التي نستخدمها لجعل "العناصر الخطيرة" أقل وفرة في المقام الأول.

تنتهي الورقة بنكتة: إذا أعجبكم عملهم، فيجب أن تطلبوا من قاعدة بيانات CVE منحهم معرف ثغرة يسمى CVE-2026-Infinity.

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

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

جرّب Digest →