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

Control Flow Graph Recovery for Dynamically Loaded Code via Symbolic Library Resolution

تقترح هذه الورقة تقنية تحليل قائمة على التنفيذ الرمزي الآمن تجمع بين التحميل المسبق للمكتبات التخميني والخطافات المخصصة لاستعادة الرسوم البيانية لتدفق التحكم من الكود المحمل ديناميكيًا، مما يحقق تحسينات كبيرة في استعادة العقد والحواف مقارنة بالتحليل الساكن مع الحفاظ على دقة واستدعاء بنسبة 100% في اكتشاف المكتبات.

المؤلفون الأصليون: Oleksandr Mostovyi

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

المؤلفون الأصليون: Oleksandr Mostovyi

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

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

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

المشكلة: الأجزاء غير المرئية

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

هذه مشكلة كبيرة للأمن؛ فإذا لم تتمكن من رؤية المسارات المخفية، فلن تتمكن من معرفة ما إذا كانت الآلة آمنة أم أنها فخ.

الحل: المحقق "الافتراضي"

قام مؤلف هذه الورقة البحثية، أو. إس. موستوفي (O. S. Mostovyi)، ببناء نوع جديد من أدوات التحقيق. بدلاً من مجرد النظر إلى المخططات، يعمل هذا النوع من الأدوات كـ محاكي للسفر عبر الزمن.

إليك كيف يعمل، باستخدام تشبيه بسيط:

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

كيف يتعامل مع الحيل الملتوية

توضح الورقة البحثية أن الجهات السيئة تستخدم طرقاً عديدة لإخفاء عملية التحميل الخاصة بها، وقد صُممت الأداة للإيقاع بها جميعاً:

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

النتائج: ملء الخريطة المفقودة

لاختبار ذلك، أنشأ المؤلف 16 "فخاً" مختلفاً (معايير اختبار) استخدمت تقنيات إخفاء متنوعة، من الحيل البسيطة إلى التشفير متعدد المراحل والمعقد.

كانت النتائج واضحة جداً:

  • الاكتمال: وجدت الأداة 29.8% أكثر من المسارات (العُقد/nodes) و 26.5% أكثر من الاتصالات (الحواف/edges) مما وجدته الأدوات الساكنة التقليدية. لقد ملأت الفراغات في الخريطة.
  • الدقة: كانت دقتها 100%. في كل مرة قالت فيها إنها وجدت مكتبة مخفية، كانت محقة. لم تطلق أي إنذارات خاطئة.
  • الأمان: نظرًا لأنها استخدمت المحاكاة (التنفيذ الرمزي) بدلاً من تشغيل الكود الخطير فعلياً، استطاعت الأداة تحليل هذه البرامج الملتوية بأمان دون خطر هروب البرمجيات الخبيثة أو التسبب في أضرار.

القيود

المؤلف صريح بشأن ما لا تستطيع الأداة فعله حتى الآن:

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

الملخص

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

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

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

جرّب Digest →