هجمات الثغرات الأمنية لاختطاف DLL والوقاية والكشف

(DLL)يرمز DLL إلى مكتبات الارتباط الديناميكي(Dynamic Link Libraries) وهي أجزاء خارجية من التطبيقات التي تعمل على Windows أو أي نظام تشغيل آخر. معظم التطبيقات ليست كاملة في حد ذاتها وتخزن الكود في ملفات مختلفة. إذا كانت هناك حاجة إلى الكود ، يتم تحميل الملف ذي الصلة في الذاكرة واستخدامه. يؤدي ذلك إلى تقليل حجم ملف التطبيق أثناء تحسين استخدام ذاكرة الوصول العشوائي(RAM) . تشرح هذه المقالة ما هو DLL Hijacking وكيفية اكتشافه ومنعه.

ما هي ملفات(Files) DLL أو مكتبات الارتباط الديناميكي(Dynamic Link Libraries)

اختطاف DLL

ملفات DLL(DLL) هي مكتبات ارتباط ديناميكي(Dynamic Link Libraries) وكما يتضح من الاسم ، فهي امتدادات لتطبيقات مختلفة. أي تطبيق نستخدمه قد يستخدم أو لا يستخدم رموزًا معينة. يتم تخزين هذه الرموز في ملفات مختلفة ويتم استدعاؤها أو تحميلها في ذاكرة الوصول العشوائي(RAM) فقط عندما يكون الرمز المرتبط مطلوبًا. وبالتالي ، فإنه يحفظ ملف التطبيق من أن يصبح كبيرًا جدًا ولمنع استنزاف الموارد بواسطة التطبيق.

يتم تعيين مسار ملفات DLL بواسطة نظام التشغيل Windows . يتم تعيين المسار باستخدام المتغيرات البيئية العالمية(Global Environmental Variables) . بشكل افتراضي ، إذا طلب أحد التطبيقات ملف DLL ، فإن نظام التشغيل يبحث في نفس المجلد الذي تم تخزين التطبيق فيه. إذا لم يتم العثور عليه هناك ، فإنه ينتقل إلى مجلدات أخرى كما تم تعيينها بواسطة المتغيرات العامة. هناك أولويات مرتبطة بالمسارات وهي تساعد Windows في تحديد المجلدات التي تبحث عن مكتبات DLL(DLLs) . هذا هو المكان الذي يأتي فيه اختطاف DLL .

ما هو اختطاف DLL

نظرًا لأن DLLs هي امتدادات وضرورية لاستخدام جميع التطبيقات تقريبًا على أجهزتك ، فهي موجودة على الكمبيوتر في مجلدات مختلفة كما هو موضح. إذا تم استبدال ملف DLL الأصلي بملف DLL مزيف يحتوي على تعليمات برمجية ضارة ، يُعرف باسم DLL Hijacking .

كما ذكرنا سابقًا ، هناك أولويات فيما يتعلق بالمكان الذي يبحث فيه نظام التشغيل عن ملفات DLL . أولاً(First) ، يبحث في نفس المجلد مثل مجلد التطبيق ثم يذهب للبحث ، بناءً على الأولويات التي تحددها متغيرات البيئة لنظام التشغيل. وبالتالي ، إذا كان ملف good.dll موجودًا في مجلد SysWOW64 وقام شخص ما بوضع bad.dll في مجلد له أولوية أعلى مقارنة بمجلد SysWOW64 ، فسيستخدم نظام التشغيل ملف bad.dll ، لأنه يحمل نفس اسم DLL طلبها التطبيق. بمجرد دخوله إلى ذاكرة الوصول العشوائي(RAM) ، يمكنه تنفيذ التعليمات البرمجية الضارة الموجودة في الملف وقد يعرض جهاز الكمبيوتر أو الشبكات للخطر.

كيفية اكتشاف اختطاف DLL

أسهل طريقة لاكتشاف ومنع اختطاف DLL هي استخدام أدوات الجهات الخارجية. هناك بعض الأدوات المجانية الجيدة المتوفرة في السوق والتي تساعد في اكتشاف محاولة اختراق DLL ومنعها.

أحد هذه البرامج هو DLL Hijack Auditor ولكنه يدعم تطبيقات 32 بت فقط. يمكنك تثبيته على جهاز الكمبيوتر الخاص بك ومسح جميع تطبيقات Windows الخاصة بك لمعرفة ما هي جميع التطبيقات المعرضة لاختطاف DLL . الواجهة بسيطة وواضحة. العيب الوحيد لهذا التطبيق هو أنه لا يمكنك فحص تطبيقات 64 بت.

يتوفر برنامج آخر لاكتشاف اختطاف  DLL ، DLL_HIJACK_DETECT ، عبر GitHub . يتحقق هذا البرنامج من التطبيقات لمعرفة ما إذا كان أي منها عرضة لاختطاف DLL . إذا كان الأمر كذلك ، يقوم البرنامج بإعلام المستخدم. يحتوي التطبيق على إصدارين - x86 و x64 بحيث يمكنك استخدام كل منهما لفحص تطبيقات 32 بت و 64 بت على التوالي.

تجدر الإشارة إلى أن البرامج المذكورة أعلاه تقوم فقط بفحص التطبيقات الموجودة على نظام Windows(Windows) الأساسي بحثًا عن نقاط الضعف ولا تمنع بالفعل اختطاف ملفات DLL .

كيفية منع اختطاف DLL

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

بالعودة إلى ما يمكنك القيام به ، ما عليك سوى محاولة توسيع نطاق أنظمة الأمان لديك لتأمين نظام Windows(secure your Windows system) بشكل أفضل . استخدم جدار حماية(firewall) جيد . إذا أمكن ، استخدم جدار حماية للأجهزة أو قم بتشغيل جدار حماية جهاز التوجيه. استخدم أنظمة كشف التسلل الجيدة حتى تعرف ما إذا كان أي شخص يحاول اللعب بجهاز الكمبيوتر الخاص بك.

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

  1. تعطيل تحميل DLL من مشاركات الشبكة البعيدة
  2. تعطيل تحميل ملفات DLL من (DLL)WebDAV
  3. قم بتعطيل خدمة WebClient تمامًا أو قم بتعيينها يدويًا
  4. (Block)قم بحظر منفذي TCP 445 و 139 حيث يتم استخدامهما في الغالب لتسوية أجهزة الكمبيوتر
  5. قم بتثبيت آخر التحديثات لنظام التشغيل وبرامج الأمان.

(Microsoft)أصدرت Microsoft أداة لمنع هجمات اختطاف تحميل DLL . تعمل هذه الأداة على التخفيف من مخاطر هجمات اختطاف DLL من خلال منع التطبيقات من تحميل التعليمات البرمجية بشكل غير آمن من ملفات DLL .

إذا كنت ترغب في إضافة أي شيء إلى المقال ، يرجى التعليق أدناه.(If you would like to add anything to the article, please comment below.)



About the author

أنا فني كمبيوتر عملت مع Android وبرامج المكتب لسنوات عديدة. لقد قمت أيضًا بتعليم الأشخاص كيفية استخدام أجهزة Mac على مدار السنوات الخمس الماضية أو نحو ذلك. إذا كنت تبحث عن شخص يعرف كيفية إصلاح الأشياء على جهاز الكمبيوتر الخاص بك ، فربما يمكنني مساعدتك!



Related posts