تخطي المصادقة الثنائية 2FA باستخدام هجوم Brute-force – كيف يحدث؟ وكيف تتجنب ذلك؟
MR_ROBOT
هل المصادقة الثنائية (2FA) آمنة دائمًا؟ وكيف يمكن اختراقها؟
المصادقة الثنائية (2FA) هي طبقة أمان إضافية تمنع الوصول غير المصرح به حتى في حال تسريب بيانات تسجيل الدخول. لكنها قد تكون غير آمنة في بعض الحالات، مما يجعلها عرضة لهجمات Brute-force، التي تعتمد على تخمين رموز التحقق حتى العثور على الكود الصحيح.
متى تكون المصادقة الثنائية قابلة للاختراق؟
كود تحقق قصير:
إذا كان الكود مكونًا من 4 أو 6 أرقام فقط، فإن احتمالات التخمين تكون محدودة، مما يسهل على المهاجم تجربة جميع الأكواد المحتملة خلال فترة قصيرة.
عدم وجود قيود على عدد المحاولات:
بعض الأنظمة تسمح بإدخال عدد غير محدود من الأكواد دون فرض حظر مؤقت أو تأخير زمني، مما يتيح تنفيذ الهجمات بسرعة كبيرة.
عدم مراقبة الأنشطة المشبوهة:
إذا لم يكن هناك نظام لاكتشاف المحاولات الفاشلة المتكررة، يمكن للمهاجم تجربة آلاف الأكواد دون أن يتم حظره.
إمكانية إعادة المحاولة بعد الطرد:
بعض الأنظمة تقوم بطرد المستخدم بعد عدة محاولات خاطئة، لكنها لا تنهي الجلسة بالكامل، مما يسمح للمهاجم بتكرار العملية دون قيود.
كيف يتم اختبار ضعف المصادقة الثنائية؟
محاكاة هجوم Brute-force باستخدام Burp Suite
1- اعتراض طلب المصادقة الثنائية:
تشغيل Burp Suite وتفعيل Intercept ON.
تسجيل الدخول بحساب تجريبي في بيئة اختبارية.
عند طلب إدخال رمز التحقق، إدخال كود عشوائي واعتراض الطلب باستخدام Burp.
2- ضبط تسجيل الدخول التلقائي بعد الطرد:
إذا كان النظام يقوم بطرد المستخدم بعد عدد معين من المحاولات الفاشلة، يمكن ضبط Burp Suite لإعادة تسجيل الدخول تلقائيًا عبر:
الانتقال إلى Project Options > Sessions.
إضافة قاعدة جديدة لمعالجة الجلسات.
تحديد Include all URLs ضمن نطاق القواعد.
ضبط Macro لتسجيل الدخول تلقائيًا عند الطرد، مع إضافة الطلبات التالية:
GET /login
POST /login
GET /login2
3- تنفيذ هجوم Brute-force لاختراق 2FA:
إرسال الطلب POST /login2 إلى Burp Intruder.
تحديد حقل كود 2FA كنقطة إدخال للهجوم.
ضبط Numbers Payload Type وتجربة جميع القيم بين 000000 و 999999 (إذا كان الكود مكونًا من 6 أرقام).
ضبط Resource Pool بحيث يكون Maximum concurrent requests = 1 لضمان تنفيذ الطلبات بالتسلسل الصحيح.
بدء الهجوم ومراقبة الاستجابات بحثًا عن طلب يحمل 302 Redirect، مما يشير إلى نجاح تسجيل الدخول.
فتح الطلب الصحيح في المتصفح للتحقق من الوصول إلى الحساب المستهدف.
كيفية الحماية من هذا الهجوم
استخدام أكواد تحقق أطول وأكثر تعقيدًا (مثل 8 أرقام أو رموز قائمة على الوقت TOTP).
فرض حد أقصى للمحاولات الفاشلة قبل قفل الحساب أو طلب تسجيل دخول جديد.
إضافة تأخير زمني بين المحاولات لمنع الهجمات السريعة.
تفعيل اكتشاف الأنشطة المشبوهة، مثل مراقبة المحاولات الفاشلة من نفس عنوان IP.
إرسال إشعارات أمان عند المحاولات المشبوهة لإعلام المستخدم بأي نشاط غير طبيعي.
خلاصة
المصادقة الثنائية (2FA) تعتبر من أهم وسائل الأمان، لكنها إذا لم تُنفذ بشكل صحيح، يمكن أن تصبح عديمة الفائدة بل وسهلة الاختراق. لذلك، يجب التأكد من تنفيذها بطريقة آمنة لحماية الحسابات من الهجمات السيبرانية.