كيف يعمل CSRF؟
هجوم CSRF أو Cross-Site Request Forgery هو نوع من هجمات الويب التي تستغل ثقة الموقع الإلكتروني في المتصفح الخاص بالمستخدم. ببساطة، يقوم المهاجم بخداع المستخدم لإرسال طلبات غير مرغوب فيها إلى تطبيق ويب حيث يكون المستخدم مسجلاً دخوله، مما يؤدي إلى تنفيذ إجراءات ضارة دون علم المستخدم.
آلية عمل هجوم CSRF
لفهم كيفية عمل CSRF، من المهم معرفة كيف يتم التحقق من هوية المستخدم في التطبيقات الإلكترونية. عادةً، بعد تسجيل الدخول، يحتفظ الموقع الإلكتروني بملف تعريف الارتباط (كوكيز) الذي يحدد هوية المستخدم. عندما يرسل المستخدم طلبًا إلى الموقع، يرفق المتصفح هذا الملف تلقائيًا، مما يسمح للموقع بالتحقق من هوية المستخدم وتنفيذ الطلب بدلاً عنه.
يقوم المهاجم في هجوم CSRF بإنشاء طلب مزيف موجه لموقع مستهدف حيث المستخدم مسجل دخوله بالفعل. هذا الطلب يمكن أن يكون على سبيل المثال طلب تحويل أموال، تغيير كلمة المرور، أو أي إجراء آخر.
كيف يتم إرسال هذا الطلب؟ يستطيع المهاجم تضمين روابط أو صور أو نماذج HTML مخفية في صفحة ويب خبيثة أو رسالة بريد إلكتروني. عندما يزور المستخدم هذه الصفحة أو يضغط على الرابط، يقوم المتصفح بإرسال الطلب المزيف إلى الموقع المستهدف مع تضمين ملفات تعريف الارتباط الخاصة بالمستخدم تلقائيًا، وهذا يجعل الموقع يعتقد أن الطلب جاء من المستخدم الفعلي.
مثال على هجوم CSRF
تخيل أن لديك حساب بنكي إلكتروني، وأنت مسجل دخولك في الموقع. إذا قمت بزيارة صفحة ويب تحتوي على نموذج مخفي يطلب تحويل مبلغ مالي إلى حساب المهاجم، فإن طلب التحويل سيُرسل باستخدام معلومات الجلسة الخاصة بك بمجرد تحميل الصفحة أو القيام بفعل معين مثل الضغط على زر.
الموقع البنكي يتلقى هذا الطلب، ويرى ملفات تعريف الارتباط التي تثبت أنك مستخدم مسجل دخول، لذلك ينفذ طلب التحويل بدون طلب تأكيد إضافي، مما يؤدي إلى خسائر مالية مباشرة.
كيف تحمي نفسك من هجمات CSRF؟
هناك عدة طرق لتقليل خطر هذه الهجمات، من بينها:
- استخدام رموز CSRF (CSRF Tokens): وهي رموز فريدة تُضاف للنماذج تُستخدم لمصادقة الطلبات، مما يصعب على المهاجم تقليدها.
- التحقق من المصادر (Referer Header): بعض المواقع تتأكد من أن الطلبات تأتي من نفس النطاق أو من مصادر موثوقة.
- تنفيذ الإجراءات الحساسة عبر طلبات POST فقط، وليس GET.
- استخدام الحماية على مستوى المتصفح مثل سياسة SameSite للكوكيز.
بالنسبة للمستخدمين، يُنصح بعدم زيارة روابط غير موثوقة أثناء تسجيل الدخول إلى حسابات مهمة، وعدم فتح رسائل من مصادر مشبوهة، وتسجيل الخروج من الحسابات بعد الانتهاء من استخدامها.