ما هو هجوم تضمين الملف؟

نشرت: 2023-03-31

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

في هذا الدليل الكامل لهجمات تضمين الملفات ، سنستكشف الطرق التي يستغل بها المتسللون التعقيم الضعيف لإدخال المستخدم والتحقق من صحته لحقن البرامج الضارة وإرسال تعليمات سيئة لاقتحام مواقع WordPress.

سوف تتعلم كيف تحدث هجمات تضمين ملفات WordPress وما يمكنك القيام به لحماية موقع الويب الخاص بك من الوقوع ضحية لها.

هجوم تضمين الملف

ما هو ملف تضمين؟

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

إدراجات الملف ضرورية للغاية. يستخدمها المطورون عادةً للأغراض التالية:

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

أنواع تضمين الملف

باستخدام تقنية تضمين الملف ، يمكن للمطورين إضافة ملفات وبرامج نصية إلى صفحة ويب إما بشكل ثابت أو ديناميكي.

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

تقبل إدخالات الملف الديناميكي إدخال المستخدم في وقت التشغيل. يشير المستخدم إلى الإخراج المطلوب عن طريق تمرير المسار إلى ملف معين. عادةً ما يتم تمرير إدخال المستخدم كمعامل في عنوان URL أو إرسال نموذج. على سبيل المثال ، قد يختار المستخدم "الإنجليزية" من قائمة اللغات المختارة المنسدلة ، والتي تنقله إلى إصدار باللغة الإنجليزية للصفحة التي يتصفحها عن طريق تغيير عنوان URL مثل هذا: /page.php?language=english . إذا استبدل شخص ما كلمة " english " بعنوان URL لملف بعيد ، فقد يتمكن من إدخال غلاف ويب باعتباره بابًا خلفيًا و / أو برامج ضارة أخرى في الموقع المستهدف إذا لم تكن هناك عمليات تدقيق لمنع ذلك.

كيف يتم تطبيق تضمين الملف في ووردبريس؟

يمكن لجميع تطبيقات الويب الديناميكية المكتوبة بلغة PHP - مثل WordPress - استخدام تضمين الملف بأمان. في التطبيقات المكتوبة بلغة PHP ، يقوم المطورون بإدراج الملف باستخدام عبارات include require . يستخدم المطورون كلا العبارتين لإدراج محتويات أحد نصوص PHP في أخرى. يحدث هذا قبل تنفيذ الكود على الخادم.

إذا نظرت إلى بعض ملفات WordPress الأساسية ، فالكثير منها يشير إلى نصوص برمجية أساسية أخرى. عندما يتم تحميلهم جميعًا معًا ، يقومون ببناء بنية موقعك وإنشاء صفحات الويب الفردية التي يطلبها الزائر. يشير index.php الرئيسي إلى wp-blog-header.php ، والذي يقوم بتحميل بيئة WordPress وقالب القالب - wp-load.php و template-loader.php ، على التوالي.

يستخدم ملف index.php الخاص بـ WordPress تضمين الملف.

بالإضافة إلى WordPress الأساسية ، تستخدم المكونات الإضافية والقوالب أيضًا تضمين الملف لأداء المهام الضرورية. ومع ذلك ، مع توفر عشرات الآلاف من مكونات WordPress الإضافية ، لم يتم اختبارها جميعًا جيدًا كما هو الحال في WordPress الأساسية.

تتسبب إدخالات الملفات في مخاطر أمنية خطيرة عندما لا يقوم المطورون بتأمينها بشكل صحيح. إذا كانت الشفرة التي تستخدمها لا تتحقق من صحة إدخال المستخدم وتعقمه ، فيمكن للقراصنة استغلاله. يمكنهم استخدامه لتثبيت البرامج الضارة وسرقة المعلومات الحساسة - ربما معلوماتك أو عملائك!

ما هو هجوم تضمين الملف؟

هناك نوعان محتملان من هجمات تضمين الملفات: تضمين الملف المحلي (LFI) أو تضمين الملفات عن بُعد (RFI).

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

هجمات تضمين الملفات المحلية والبعيدة

مواقع الويب وتطبيقات الويب التي تعتمد على إدراجات ديناميكية للملفات لتمكين ميزات معينة قد تتعرض لهجمات تضمين الملفات عن بُعد وهجمات تضمين الملفات المحلية.

تضمين الملف المحلي (LFI)

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

يمكن أن تسمح هجمات تضمين الملفات المحلية أيضًا لشخص ما بالوصول إلى بيانات حساسة خارج موقع الويب المستهدف. يتضمن ذلك ملفات تكوين الخادم مثل /etc/passwd أو ملفات تكوين موقع ويب آخر مثل wp-config.php . من المهم ملاحظة ، مع ذلك ، أن الملفات المستهدفة يجب أن تكون قابلة للقراءة للمستخدمين غير المتميزين - على سبيل المثال ، الملف /etc/passwd على أنظمة Linux مملوك من قبل الجذر ، ولكن مع أذونات الملفات المحددة على 644 ، فإن جميع مستخدمي النظام الآخرين يمكن مشاهدته.

للتنقل عبر نظام الملفات ، يستخدم المهاجمون مسار الدليل ، وهي تقنية للوصول إلى الملفات خارج دليل العمل الحالي من خلال معالجة تسلسلات اجتياز مسار الدليل مثل ../../../ .

تضمين الملف البعيد (RFI)

تستهدف هجمات تضمين الملفات عن بُعد مواقع الويب والتطبيقات التي تستدعي الملفات المستضافة على خادم آخر. من خلال استغلال تضمين الملف البعيد ، يمكن للمهاجم الاعتماد على التعليمات البرمجية الضارة المستضافة في مكان آخر. يجب أن توجد ثغرة أمنية على الخادم المستهدف ، لكن المهاجم سيستخدمها لتنفيذ تعليمات برمجية ضارة مستضافة في مكان آخر.

في هجمات تضمين الملفات عن بُعد ، يستفيد المتسللون من أمر "تضمين الملف الديناميكي" في تطبيقات الويب. يمكن للقراصنة استغلال تطبيقات الويب التي تقبل مدخلات المستخدم ، مثل عناوين URL وقيم المعلمات ، وتمريرها إلى آليات "تضمين الملف" دون التعقيم المناسب. في هذا النوع من الثغرات الأمنية ، يمكن للمهاجمين استغلال تطبيق الويب لتضمين ملفات بعيدة بنصوص ضارة.

لماذا تحدث هجمات تضمين ملف WordPress؟

تشكل مواقع WordPress 43٪ من الإنترنت ، لذا فهي هدف كبير للمهاجمين. يوضح تقريرنا السنوي عن ثغرات WordPress لعام 2022 أن أكثر من 90٪ من جميع الثغرات الأمنية في WordPress التي تم اكتشافها العام الماضي كانت في المكونات الإضافية والسمات. عادةً ، رأينا عيبًا أمنيًا جديدًا على الأقل يتم الإبلاغ عنه أسبوعيًا في 20 إلى 50 مكونًا إضافيًا.

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

احصل على تقرير ثغرات WordPress الأسبوعي الذي يتم تسليمه إلى صندوق الوارد الخاص بك كل يوم أربعاء.
إشترك الآن

كيفية الكشف عن هجوم تضمين ملف WordPress

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

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

كيفية الدفاع ضد هجمات تضمين ملف WordPress؟

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

فيما يلي أهم ثلاث توصيات أمان في WordPress لحماية موقع الويب الخاص بك من هجمات تضمين الملفات.

حافظ على تحديث جميع البرامج

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

اعتد على إجراء تحديثات منتظمة بنفسك أو قم بتنشيط التحديثات التلقائية لضمان عدم تشغيل موقع الويب الخاص بك أبدًا لأي رمز ضعيف. يمكن أن يعتني iThemes Security Pro بتحديثات WordPress الأساسية والمكونات الإضافية والسمات نيابة عنك.

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

إذا كان لديك العديد من مواقع WordPress تحت سيطرتك ، يمنحك iThemes Sync Pro واجهة واحدة لإدارتها جميعًا. تقدم المزامنة أيضًا مراقبة متقدمة لوقت التشغيل وتعليقات تحسين محركات البحث.

تعطيل تضمين الملفات عن بعد في PHP

من الممكن أن يشير موقع ويب إلى الملفات البعيدة من عنوان URL خارجي إذا تم تمكين خيار allow_url_fopen في بيئة PHP. يمكن أن يؤدي ذلك إلى زيادة مخاطر هجمات تضمين الملفات عن بُعد. يؤدي تعطيل allow_url_fopen بشكل فعال إلى القضاء على إمكانية قيام شخص ما بتشغيل تعليمات برمجية ضارة تم تحميلها من مكان بعيد على موقع WordPress الخاص بك.

يمكنك تعطيل allow_url_fopen في التكوين العام لـ PHP أو عن طريق تعيين allow_url_fopen إلى 0 في ملف .user.ini أو php.ini محلي تم إنشاؤه لمجلد ويب فردي. يمكنك التحقق مما إذا كان الخيار معطلاً في بيئة PHP الخاصة بك عن طريق إنشاء صفحة معلومات PHP بسيطة باستخدام وظيفة phpinfo() ، كما هو موضح أدناه.

يمكنك منع هجوم تضمين ملف عن طريق تعطيل allow_furl_open في إعدادات بيئة PHP الخاصة بك.

تنفيذ رؤوس أمان WordPress

يمكن لرؤوس استجابة HTTP مثل سياسة أمان المحتوى (CSP) و Set-Cookie إضافة طبقة دفاع ضد تضمين الملف وهجمات الحقن الأخرى إلى موقع WordPress الخاص بك.

تجعل رؤوس أمان WordPress من الممكن تقليل أو حظر الموجهات التي يمكن أن تحدث بها هجمات تضمين الملفات عن بُعد والبرمجة النصية عبر المواقع (XSS) من خلال إنشاء قائمة بالمصادر الموثوقة والبرامج النصية والمحتويات الأخرى التي يمكن تحميلها. سيتم رفض جميع المصادر الأخرى. علاوة على ذلك ، يمكن أن تساعدك رؤوس استجابة HTTP في إضافة حماية ضد تزوير الطلبات عبر المواقع (CSRF) والقرصنة.

قم بحماية موقع WordPress الخاص بك من هجمات الحقن باستخدام iThemes Security Pro

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

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

iThemes Security Pro هو حل أمان WordPress قوي يسمح لك باعتماد أفضل ممارسات أمان WordPress لحماية موقع الويب الخاص بك من الهجمات الإلكترونية الأكثر تعقيدًا. من خلال المراقبة المتقدمة لسلامة الملفات ، ومسح الثغرات الأمنية ، والتخفيف التلقائي من الهجمات ، يتخذ iThemes Security Pro خيارًا ممتازًا إذا كنت تبحث عن طريقة فعالة وموثوقة لحماية موقع WordPress الخاص بك.