DEF CON 23 - Patrick Wardle - DLL Hijacking on OS X
جدول المحتويات:
تمثل مكتبة الارتباط الحيوي مكتبات الارتباط الديناميكي وهي أجزاء خارجية من التطبيقات التي تعمل على Windows أو أي أنظمة تشغيل أخرى. معظم التطبيقات ليست كاملة في حد ذاتها ورمز المتجر في ملفات مختلفة. إذا كانت هناك حاجة للرمز ، يتم تحميل الملف المرتبط في الذاكرة واستخدامه. هذا يقلل من حجم ملف التطبيق مع تحسين استخدام ذاكرة الوصول العشوائي. يشرح هذا المقال ما هو DLL Hijacking وكيفية اكتشافه ومنعه.
ما هي ملفات DLL أو مكتبات الارتباط الديناميكي
هي ملفات DLL مكتبات الارتباط الديناميكي كما هو واضح من الاسم ، هي ملحقات من التطبيقات المختلفة. أي تطبيق نستخدمه قد يستخدم أو لا يستخدم بعض الرموز. يتم تخزين هذه الرموز في ملفات مختلفة ويتم استدعاؤها أو تحميلها في ذاكرة الوصول العشوائي فقط عندما تكون الشفرة ذات الصلة مطلوبة. وبالتالي ، فإنه يحفظ ملف تطبيق من أن يصبح كبيرًا جدًا ومنع قصور الموارد بواسطة التطبيق.
يتم تعيين مسار ملفات DLL بواسطة نظام التشغيل Windows. يتم تعيين المسار باستخدام المتغيرات البيئية العالمية. بشكل افتراضي ، إذا طلب تطبيق ملف DLL ، يبحث نظام التشغيل في نفس المجلد الذي تم تخزين التطبيق فيه. إذا لم يتم العثور عليه ، فإنه يذهب إلى مجلدات أخرى كما هو محدد بواسطة المتغيرات العالمية. هناك أولويات تعلق على المسارات ويساعد Windows في تحديد المجلدات التي يجب البحث عن DLLs. هذا هو المكان الذي يأتي فيه اختطاف DLL.
ما هو DLL Hijacking
نظرًا لأن DLL هي ملحقات وضرورية لاستخدام معظم التطبيقات على الأجهزة الخاصة بك ، فهي موجودة على الكمبيوتر في مجلدات مختلفة كما هو موضح. إذا تم استبدال ملف DLL الأصلي بملف DLL مزيف يحتوي على تعليمات برمجية ضارة ، فإنه يُعرف باسم DLL Hijacking.
كما ذكر سابقًا ، هناك أولويات حول مكان نظام التشغيل للبحث عن ملفات DLL. أولاً ، فإنه يبحث في نفس المجلد كمجلد التطبيق ثم يقوم بالبحث استناداً إلى الأولويات التي تم تعيينها بواسطة متغيرات البيئة الخاصة بنظام التشغيل. وبالتالي إذا كان ملف good.dll في مجلد SysWOW64 ووضع شخص ما bad.dll في مجلد له أولوية أعلى مقارنة بالمجلد SysWOW64 ، سيستخدم نظام التشغيل الملف bad.dll ، كما يحتوي على نفس الاسم مثل DLL طلب من قبل التطبيق. مرة واحدة في ذاكرة الوصول العشوائي ، فإنه يمكن تنفيذ التعليمات البرمجية الضارة الموجودة في الملف ، ويمكن أن تهدد جهاز الكمبيوتر الخاص بك أو الشبكات.
كيفية اكتشاف DLL Hijacking
أسهل طريقة للكشف ومنع اختطاف DLL هو استخدام أدوات لجهة خارجية. هناك بعض الأدوات المجانية الجيدة المتوفرة في السوق والتي تساعد في اكتشاف محاولة اختراق DLL.
أحد هذه البرامج هو DLL Hijack Auditor ولكنه يدعم تطبيقات 32 بت فقط. يمكنك تثبيته على جهاز الكمبيوتر الخاص بك ومسح كافة تطبيقات Windows الخاصة بك لمعرفة ما هي كافة التطبيقات عرضة إلى اختطاف DLL. الواجهة بسيطة وتوضيح نفسها. العيب الوحيد لهذا التطبيق هو أنه لا يمكنك تفحص تطبيقات 64 بت.
برنامج آخر ، للكشف عن DLL hijacking ، DLL_HIJACK_DETECT ، يتوفر عبر GitHub. يتحقق هذا البرنامج من التطبيقات لمعرفة ما إذا كان أي منها عرضة للاختراق DLL. إذا كان كذلك ، يقوم البرنامج بإعلام المستخدم. يحتوي التطبيق على نسختين - x86 و x64 بحيث يمكنك استخدام كل منهما لفحص كلا من تطبيقات 32 بت و 64 بت على التوالي.
وتجدر الإشارة إلى أن البرامج المذكورة أعلاه تقوم فقط بفحص التطبيقات على نظام Windows للحصول على نقاط الضعف ولا تقوم منع الاستيلاء على ملفات DLL.
كيفية منع DLL Hijacking
يجب معالجة المشكلة من قبل المبرمجين في المقام الأول حيث لا يوجد الكثير الذي يمكنك القيام به باستثناء تعزيز أنظمة الأمان الخاصة بك. إذا بدأ المبرمجون ، بدلاً من المسار النسبي ، باستخدام المسار المطلق ، فسيتم تقليل الثغرة الأمنية. قراءة المسار المطلق ، لن يعتمد Windows أو أي نظام تشغيل آخر على متغيرات النظام الخاصة بالمسار وسيتم الانتقال مباشرةً إلى DLL المقصود ، وبالتالي استبعاد فرص تحميل نفس اسم DLL في مسار أولوية أعلى. هذه الطريقة أيضا ، ليست خالية من الفشل لأنه إذا تم اختراق النظام ، والمجرمون الإلكترونيون يعرفون بالضبط مسار DLL ، فسوف يحل محل DLL الأصلي مع DLL المزيف. قد يكون ذلك الكتابة فوق الملف بحيث يتم تغيير DLL الأصلي في التعليمات البرمجية الضارة. ولكن مرة أخرى ، سيحتاج المجرم الإلكتروني إلى معرفة المسار المطلق المذكور في التطبيق الذي يستدعي DLL. هذه العملية صعبة على المجرمين الإلكترونيين ومن ثم يمكن الاعتماد عليها.
بالعودة إلى ما يمكنك القيام به ، فقط حاول تحسين أنظمة الأمان لديك لتأمين نظام Windows بشكل أفضل. استخدم جدار حماية جيد. إذا كان ذلك ممكنًا ، فاستخدم جدار حماية الأجهزة أو شغّل جدار حماية جهاز التوجيه. استخدم أنظمة الكشف عن التطفل جيدًا حتى تعرف ما إذا كان أي شخص يحاول اللعب مع الكمبيوتر الخاص بك.
إذا كنت في استكشاف أخطاء أجهزة الكمبيوتر وإصلاحها ، يمكنك أيضًا إجراء ما يلي للحفاظ على الأمان:
- تعطيل تحميل DLL من مشاركات الشبكة البعيدة
- تعطيل تحميل ملفات DLL من WebDAV
- تعطيل خدمة WebClient تمامًا أو ضبطها على الدليل
- حظر منافذ TCP 445 و 139 نظرًا لأنه يتم استخدامها بشكل كبير من أجل تسوية أجهزة الكمبيوتر
- تثبيت آخر التحديثات على التشغيل نظام الأمان والبرامج.
أصدرت Microsoft أداة لمنع هجمات الاستيلاء على تحميل DLL. تعمل هذه الأداة على تقليل مخاطر هجمات الاستيلاء على مكتبة الارتباط الحيوي (DLL) عن طريق منع التطبيقات من تحميل التعليمات البرمجية بشكل غير آمن من ملفات DLL.
إذا كنت ترغب في إضافة أي شيء إلى المقالة ، فيرجى التعليق أدناه.
Brute Force Attacks - Definition and Prevention
What are Brute Force Attacks؟ اكتشف ماذا يعني "هجوم القوة العنيفة" ، المدة التي يستغرقها اختراق كلمة المرور وأساليب الوقاية والحماية الأساسية.
Cyber Attacks - Definition، Types، Prevention
تشرح هذه المقالة ماهية الهجمات السيبرانية وتعريفها وأنواعها ومحادثاتها حول كيفية منعها إذا كان الهجوم عبر الإنترنت هو هجوم بدأ من جهاز كمبيوتر ضد كمبيوتر آخر أو موقع ويب ، وذلك بهدف المساس بنزاهة أو سرية أو إتاحة الهدف والمعلومات المخزنة فيه. . تشرح هذه المقالة ما هي
What is Man In The Browser attack - Prevention and Detection
MitB or Man In The Browser attack is very graper as it can see be detected بسهولة - ولا توجد حماية كافية. اقرأ هذه المقالة للحصول على تقرير مفصل.