المدونة

تدقيق WordPress؟ ابدأ بإضافاتك

توقف عن تدقيق نواة WordPress وابدأ بتدقيق إضافاتك: تدقيق أمني عملي يركز على الإضافات للفرق الصغيرة.

ملخص

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

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

الأرقام تدعم ذلك. وجدت ورقة بيضاء من SANS حول فحص إضافات WordPress أن أكثر من 96% من الثغرات في نظام WordPress البيئي تنشأ في إضافات الطرف الثالث، مع 4% للقوالب وأقل من 1% للنواة. ويمكن استغلال نحو 43% من تلك العيوب دون أي مصادقة. لذا عندما ينفق تدقيقك معظم طاقته على النواة، فأنت تفحص الأشجار بينما تبدأ حرائق الغابات في مجلد الإضافات المجاور.

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

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

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


جرد الإضافات هو سياسة الأمان الخاصة بك

قم بجرد كل إضافة وكل قالب. اكتب الإصدار وتاريخ آخر تحديث وما إذا كان البائع لا يزال نشطًا وما إذا كان أي شخص يستخدمه فعليًا. ثم صنّف كل واحد في فئة: مُحدَّث ومُستخدم، مُحدَّث وغير مُستخدم، مهجور لكن مُستخدم، مهجور وغير مُستخدم. أزل غير المستخدمة فورًا. تجاهل دفاع "إنها 50 دولارًا فقط شهريًا" — الإضافة غير المستخدمة التزام وليست ميزة. بالنسبة للمهجورة لكن المستخدمة، قرر: استبدلها، أو اقبل المخاطرة واكتبها في سجل مخاطر اطلع عليه مديرك.

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

سطح الهجومحصة ثغرات WordPress المعروفةأولوية التدقيق
إضافات الطرف الثالثأكثر من 96%الأعلى — جرد، فحص، اختبار، استبدال
القوالبحوالي 4%متوسطة — فقط إذا كانت مخصصة أو قديمة
نواة WordPressأقل من 1%منخفضة — حافظ على التحديث، وتابع

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


اختبرها كغريب: الـ43% التي لا تحتاج إلى كلمة مرور

لقد أخبرك الماسح الضوئي بالفعل أنه لا يوجد خطأ. الآن افعل ما لا يستطيع فعله: اختبر الموقع من الخارج، دون تسجيل دخول. ابدأ بكل حقل تحميل ملفات، وكل نموذج يعالج POST، وكل نقطة نهاية admin-ajax. هل يتحقق التحميل فعليًا من محتوى الملف أم الامتداد فقط؟ أين تذهب الملفات المرفوعة، وهل يمكن لخادم الويب تنفيذ PHP في ذلك الدليل؟ عادةً ما توجد نسبة 43% من عيوب الإضافات التي لا تتطلب مصادقة في هذه الأماكن بالضبط: XSS مخزنة غير مصادق عليها، تحميل ملفات عشوائي، وحقن كائن PHP.

إضافة نموذج الاتصال تتيح للزوار إرفاق سيرة ذاتية. تعيد تسمية الملف باستخدام اسم الملف الأصلي للزائر، لذا ترفع "resume.php" ويتم حفظه في مجلد /uploads/contact/ القابل للكتابة حسب التصميم. إذا كان الخادم يسمح أيضًا بتشغيل PHP في ذلك الدليل، فقد حصل المهاجم للتو على شيل ويب. وثقت Fastly استغلالًا نشطًا لثغرات XSS المخزنة غير المصادق عليها في إضافات WordPress — هذه ليست مخاطرة عرض شرائح متخصصة. اختبارك بسيط: أنشئ ملفًا بمحتوى معروف، وارفعه، ولاحظ ما إذا كان يعود باسمه ونوعه الأصليين. ثم حاول رفع ملف .php. إذا عاد كـ .php، فقد وجدت للتو ثغرة قابلة للاستغلال.

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


ما لا يراه الماسح الضوئي: المستخدمون والسجلات والكود القديم

الاختبارات الديناميكية تلتقط ما هو مكشوف الآن. المراجعة اليدوية تلتقط ما هو موجود بالفعل في الداخل. ابدأ بحسابات المستخدمين: افتح قائمة المشرفين وابحث عن حسابات لم تنشئها. حساب مشرف باسم "support" مع عنوان بريد مجاني ولا يقف خلفه إنسان هو باب خلفي، وليس زميلًا. تحقق من الطوابع الزمنية للملفات في wp-content/uploads بحثًا عن أي شيء تم تعديله مؤخرًا وليس من المحتوى الخاص بك. افحص سجل وصول الخادم بحثًا عن طلبات تبدو كأوامر curl لروبوت وليس متصفح شخص.

إضافة الأحداث تحتوي على حقل تحميل "صورة المتحدث" يحفظ في uploads/event-headshots/. أثناء الاختبار تجد ملفًا ليس من ملفاتك — ملف PHP صغير باسم عشوائي المظهر. هذا هو شيل الويب الخاص بك. وصل إلى هناك من خلال نفس عيب التحميل الذي اختبرته قبل أسبوعين، وحتى الآن لن "يراه" الماسح الضوئي لأنه ليس ثغرة إضافة؛ إنه دليل على واحدة. المراجعة اليدوية تجده وتحذفه وتفحص السجل بحثًا عن عنوان IP الذي وضعه هناك. لاحظت Invicti أن حقن كائن PHP في الإضافات في ازدياد، وأنه شبه غير مرئي للفحوصات الصندوق الأسود لأن الكائن الخبيث يظهر فقط أثناء التنفيذ. الطريقة الوحيدة لرصده هي قراءة الكود بحثًا عن أنماط خطيرة مثل استدعاء unserialize() على مدخلات يقدمها المستخدم. قراءة بضع مئات من الأسطر من الإضافة المخصصة أرخص من دفع رسوم استبقاء لخدمات الاستجابة للحوادث.

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


إخبار مديرك بالحقيقة دون إثارة الذعر

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

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


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

Sources (5)