ما هو تزوير طلبات المواقع المتقاطعة (CSRF)؟
نشرت: 2023-04-12نادرًا ما تكون الثغرات الأمنية عبر طلب التزوير (CSRF أو XSRF) عالية أو حرجة في تصنيفات الخطورة. ومع ذلك ، لا يزال بإمكانهم إحداث الكثير من الضرر. لقد كانوا ثاني أكثر نقاط الضعف شيوعًا في WordPress في السنوات الأخيرة بعد ثغرات البرمجة عبر الموقع (XSS). ستفهم كيفية حماية موقع الويب الخاص بك بشكل أفضل إذا كنت تعرف ما هي ثغرة CSRF وكيف يستغلها المهاجمون عادة.
الالتفاف حول سياسة نفس الأصل
تجعل ثغرة CSRF من الممكن للمهاجم التحايل على ميزة متصفح قياسية تسمى سياسة نفس المصدر. تتبع جميع متصفحات الويب هذه القاعدة لمنع نوع التداخل الذي تمكّن CSRFs. عادةً عندما تقوم بتحميل صفحة ويب ، يتفاعل متصفحك فقط مع مجال أو مجال فرعي واحد ، بصرف النظر عن أي استثناءات مسموح بها. وسيقبل المحتوى عبر بروتوكول واحد فقط ، HTTP أو HTTPS (وليس كلاهما) ، دون تحذيرك من وجود مشكلة. إذا تجاوز الأفراد الضارون سياسة المصدر نفسه ، فقد يخدعونك أيضًا للنقر على الروابط التي تؤدي إجراءات غير مرغوب فيها من خلال التفاعل بشكل غير متوقع مع موقع مختلف.
بصريًا ، سيكون لديك القليل من القرائن أو لا توجد أدلة على أنك تتفاعل مع موقع آخر بطريقة غير مرغوب فيها. Clickjacking يعمل مثل هذا. إذا تم استغلال موقع WordPress الخاص بك من خلال ثغرة في CSRF ، فقد تتعرض أنت وزوارك للتصيد الاحتيالي ، والقرصنة ، وما هو أسوأ.
في هذا الدليل ، سنبحث في تفاصيل عمليات تزوير الطلبات عبر المواقع. سننظر في مثال محدد لثغرة CSRF حتى تفهم كيفية عملها. ثم سنوضح لك ما يمكنك فعله لمنع ظهور ثغرات CSRF على موقعك. سنقترح أيضًا بعض الطرق لإبطال أو الحد من الضرر الذي يمكن أن يحدثه استغلال ناجح لـ CSRF عن طريق تقوية موقعك ضد هذه الأنواع وغيرها من الهجمات.
لنلقي نظرة.
كيف يؤثر هجوم التزوير عبر الموقع (CSRF) على موقع WordPress الخاص بك؟
عندما ينجح هجوم CSRF ، يصرح ضحاياه عن غير قصد بإجراء ضار ، مثل تحديث بيانات اعتماد تسجيل الدخول الخاصة بهم. قد يتم خداعهم للسماح للمهاجمين بالاستيلاء على حساب المستخدم الخاص بهم. والأسوأ من ذلك ، أن ضحية استغلال CSRF قد يسمح للمهاجمين ببدء تحويلات مالية نيابة عنهم.
إذا كان أحد المكونات الإضافية على موقع WordPress الخاص بك يحتوي على ثغرة في CSRF ، فقد يتمكن المهاجم من اختطاف بعض حسابات المستخدمين. سيكون هذا أحد أسوأ السيناريوهات. إذا كان للحساب المسروق دور إداري في WordPress أو إذا أعاد المستخدم استخدام كلمة المرور الخاصة به على مواقع أخرى ، فقد يكون الضرر كبيرًا.
كيف يعمل هجوم CSRF؟
يجب أن توجد ثلاثة شروط مختلفة للمتسلل حتى يتمكن من تنفيذ هجوم CSRF. إذا فهمتها على المستوى العام ، فسيكون لديك فهم عملي جيد لبعض أساسيات أمان الويب.
1. معالجة الجلسة المستندة إلى ملفات تعريف الارتباط
مثل التطبيقات الأخرى عديمة الحالة ، يعتمد WordPress على ملفات تعريف الارتباط للجلسة لتحديد هوية المستخدمين. في ظل ظروف الأمان المنخفضة أو المعرضة للخطر ، قد يتمكن المهاجم من إعداد بعض ملفات تعريف الارتباط المزيفة للجلسة أو التلاعب بمستخدم قام بتسجيل الدخول لاتخاذ بعض الإجراءات غير المرغوب فيها. سيقبل WordPress الطلبات المزورة والمعروفة التي تظهر أو تظهر من مستخدم قام بتسجيل الدخول.
في حين أن عمليات استغلال CSRF غالبًا ما تستهدف معالجة الجلسة المستندة إلى ملفات تعريف الارتباط ، فإن هذا ليس هدفها الوحيد. يمكن أن تكون هجمات CSRF فعالة ضد أي تطبيق يقوم تلقائيًا بإضافة بيانات اعتماد المستخدم إلى الطلبات. المصادقة المستندة إلى الشهادة ومصادقة HTTP الأساسية عرضة أيضًا لنقاط ضعف CSRF لهذا السبب.
2. يمكن استهداف الإجراء ذي الصلة
يجب أن يكون هناك بعض الإجراءات داخل التطبيق المستهدف يمكن خداع الضحايا لاتخاذها. قد يكون هذا إجراءً مميزًا مثل تغيير أذونات المستخدم. قد يكون مرتبطًا ببيانات خاصة بالمستخدم ، مثل تحديث كلمة مرور المستخدم. هذه إجراءات شائعة في جميع تطبيقات الويب ، بما في ذلك WordPress. لديهم قيمة كأهداف للمتسللين لأنهم قد يفتحون لهم طريقًا لسرقة حسابات المستخدمين والبحث بشكل أعمق عن طرق للانخراط في السرقة أو الاحتيال أو أي نشاط ضار آخر.
3. لا توجد معلمات طلب غير متوقعة
يجب أن تكون الطلبات التي تؤدي الإجراء المستهدف معروفة أو يمكن التنبؤ بها. إذا لم تكن الطلبات المستهدفة بحاجة إلى احتواء المعلمات التي لا يستطيع المهاجم تحديد قيمها أو تخمينها ، فهي أكثر عرضة للتلاعب.
على سبيل المثال ، إذا كان يجب أن يتضمن طلب تغيير كلمة المرور الصالح كلمة المرور الحالية ، فهو آمن - طالما أن المهاجم لا يعرف كلمة المرور. تضيف رموز CSRF وملفات تعريف ارتباط SameSite المزيد من العقبات للمهاجمين عندما يستخدمها المطورون لتأمين التعليمات البرمجية الخاصة بهم. لكن في بعض الأحيان لا يقوم المطورون بتنفيذ طرق الأمان هذه بشكل صحيح أو على الإطلاق. (هذا هو السبب في أهمية مصادقة المستخدم القوية بدون كلمة مرور.)
استغلال ثغرة CSRF لتغيير رسائل البريد الإلكتروني لحساب المستخدم - مثال
إليك مثال أكثر تفصيلاً. لن تنجح في الواقع ، لكنها توضح المفاهيم الرئيسية في اللعب لاستغلال CSRF الفعال.
النظر في طلب تغيير البريد الإلكتروني. عندما يقوم المستخدم بهذا الإجراء ، فإنه يقدم طلب HTTP يبدو مثل هذا إلى خادم الويب الذي يستقبله:
POST /test HTTP/1.1 Host: yourwebsite.com Content-Type: application/x-www-form-urlencoded Content-Length: 60 Cookie: session=yvthgjrudhgeQkAPzeQ5gHgTvlyxHfsAfE;[email protected]
لماذا يعمل
هذا يفي بالشروط المطلوبة لـ CSRF إذا / بسبب:
- يستخدم الموقع / التطبيق المستهدف ملف تعريف ارتباط الجلسة لتحديد المستخدم الذي أصدر الطلب ، ولا توجد رموز أو آليات أخرى لتتبع جلسات المستخدم. لهذا السبب يجب على المطورين استخدام رموز CSRF و / أو ملفات تعريف ارتباط SameSite.
- يعد تغيير عنوان البريد الإلكتروني للمستخدم إجراءً ذا صلة لصالح المهاجم. فمن المؤكد! إذا كان بإمكانك تغيير عنوان البريد الإلكتروني للمستخدم إلى عنوان آخر تتحكم فيه ، يمكنك التحكم بشكل كامل في حسابه.
- يعرف المهاجم معلمات الطلب التي يحتاجون إليها لتغيير عنوان البريد الإلكتروني للمستخدم ويمكنه إنشاء قيم صالحة لهم. هذه المعلمات ليست سرية ، وليس من الصعب تحديد عناوين البريد الإلكتروني التي يستخدمها العديد من الأشخاص لحساباتهم عبر الإنترنت. ملف تعريف ارتباط الجلسة أكثر تعقيدًا.
كيف يمكن للمهاجم سرقة ملفات تعريف الارتباط الخاصة بالجلسة
العقبة الرئيسية للمهاجم هي تحديد القيم الفعلية للمعلمات التي ستصل إلى حساب مستخدم معين. قد يفعلون ذلك من خلال بناء صفحة ويب تستهدف مستخدمي الموقع المستهدف. قد يحتوي هذا الموقع المخادع على روابط أو أزرار يبدو أن لها غرضًا مشروعًا ، مثل طلب هدايا مجانية. في الواقع ، إذا نقرت على تلك الروابط أو الأزرار ، فإن الشخص الوحيد الذي يحصل على بعض الأشياء الجيدة مجانًا هو المهاجم.
عند النقر فوق هذه الروابط الاحتيالية ، سيقدمون طلب تغيير العنوان إلى الموقع المستهدف والمعرض للخطر CSRF. إذا قمت بتسجيل الدخول إلى هذا الموقع ، فسيكون الطلب صالحًا. تمت سرقة حسابك - قمت بتسليم مفاتيحك.
مستخدمي موقع WordPress الذين ظلوا مسجلين الدخول لديهم ملف تعريف ارتباط نشط للجلسة في متصفحهم يستمر حتى عندما يكونون على موقع مختلف. سيقوم المستعرض الخاص بهم تلقائيًا بتضمين ملف تعريف ارتباط الجلسة هذا ضمن طلب مزور. قد يرى WordPress هذا على أنه طلب تغيير صالح تمامًا - على الرغم من أنه قادم من موقع آخر وليس لدى المستخدم أي فكرة عن أنه يقوم بذلك.
بافتراض عدم وجود تدابير أمنية أخرى ، مثل سمة ملف تعريف الارتباط SameSite ، سيعالج الموقع المستهدف الضعيف طلبًا مزورًا مثل طلب صالح. إذا لم يفرض موقع الويب المستهدف خطوة تأكيد تغيير العنوان ، أو إذا كان لدى المهاجم طريقة للتغلب عليها ، فسيقوم المهاجم بتغيير عنوان المستخدم بنجاح إلى أي عنوان يختاره المهاجم.
كيف يتم تسليم هجوم CSRF إلى موقع ويب ضعيف
تتشابه آليات تسليم هجمات CSRF وهجمات البرمجة النصية عبر المواقع المنعكسة (Reflected XSS).
في معظم الحالات ، يضع المهاجمون شفراتهم الضارة على موقع مخادع يتحكمون فيه. قد يكون هذا موقعًا شرعيًا قاموا باختراقه بالفعل ، ولهذا السبب تحتفظ Google بقائمة مواقع خادعة. ستحذر جميع المتصفحات مستخدميها بعيدًا إذا كنت مدرجًا في هذه القائمة! هذا هو السبب في أن iThemes Security يتحقق كل يوم للتأكد من أن موقعك لم يصبح أداة مخترق.
إن الحصول على ضحايا محتملين لزيارة موقع ويب مخادع هو ببساطة مسألة تتعلق بوسائل التواصل الاجتماعي الأساسية والتسويق عبر البريد الإلكتروني. في بعض الأحيان ، يتم وضع الشفرة الضارة ببساطة على موقع مشهور في منطقة نشطة.
قد لا يحتاج المهاجم حتى إلى موقع ويب لجذب ضحاياهم. تستخدم بعض عمليات استغلال CSRF البسيطة طريقة GET. هذا ما يفعله متصفحك عند النقر فوق ارتباط أو إدخال عنوان URL في شريط العناوين. يقوم بإجراء طلب GET باستخدام عنوان URL الموجود في الرابط أو الذي تقدمه. في بعض الأحيان ، يمكن تنفيذ هجوم CSRF بالكامل من خلال طلب GET واحد إلى موقع ويب ضعيف. في مثل هذه الحالات ، قد لا يحتاج المهاجم إلى استخدام موقع ويب مخادع. يمكنهم ببساطة إطعام ضحاياهم عنوان URL ضار مباشرة.
حماية موقعك من هجمات التزوير عبر الموقع (CSRF)
تظهر ثغرات CSRF بشكل متكرر في المكونات الإضافية والسمات في بعض الأحيان. عندما يستهدفهم المتسللون ، ليس من الصعب حماية نفسك. استخدم المكونات الإضافية والسمات عالية الجودة التي تثق بها ، وقم بإزالة المكونات التي لا تستخدمها ، وحافظ على تحديث جميع برامجك . يجب عليك أيضًا تنفيذ سياسة أمان مستخدم مدروسة جيدًا والتفكير في عدم استخدام كلمة مرور. إذا تم استغلال ثغرة في CSRF (أو أي ثغرة أخرى) على موقعك للوصول إلى حسابات المستخدمين ، فلن يفيد المهاجم كثيرًا إذا كنت تستخدم مفاتيح المرور. لا أحد يستطيع أن يسرق ما هو غير موجود.
بالإضافة إلى إدارة التحديثات وتحذيرك بشأن المكونات الإضافية والسمات الضعيفة ، يسهل iThemes Security Pro إعداد وإدارة قواعد الأمان القائمة على المستخدم والأدوار. تفويض الامتيازات بناءً على مبدأ الامتياز الأقل. قم بتأمين تسجيل الدخول واستعادة كلمة المرور ونماذج الاتصال باستخدام CAPTCHA. لا تمنح المستخدمين قدرات أكبر مما يحتاجون إليه. اطلب من المستخدمين ذوي الامتيازات الأعلى استخدام أساليب مصادقة أقوى. وبالتأكيد اعتمد الطريقة الأكثر ملاءمة وبسيطة لتسجيل الدخول إلى WordPress بدون كلمة مرور: مفاتيح المرور!
أفضل مكون إضافي لأمن WordPress لتأمين وحماية WordPress
يشغل WordPress حاليًا أكثر من 40٪ من جميع مواقع الويب ، لذا فقد أصبح هدفًا سهلاً للمتسللين ذوي النوايا الخبيثة. يزيل المكون الإضافي iThemes Security Pro التخمين من أمان WordPress لتسهيل حماية موقع WordPress الخاص بك وحمايته. يشبه الأمر وجود خبير أمان بدوام كامل بين الموظفين الذين يراقبون ويحمون موقع WordPress الخاص بك باستمرار.
دان كناوس هو اختصاصي المحتوى الفني في StellarWP. لقد كان كاتبًا ومدرسًا ومستقلًا يعمل في مصدر مفتوح منذ أواخر التسعينيات ومع WordPress منذ عام 2004.