Password Attacks - هجمات كلمة المرور
Last updated
Last updated
بعد ما المهاجم (attacker) يجمع اسماء المستخدمين (usernames enumeration) بيبدأ يدور علي كلمات المرور علشان يقدر يستولي علي حساب المستخدم (account takeover) , هشرح ايه اشهر الطرق المستخدمة في معرفة كلمات المرور وايه الطرق المستخدمة لتجنب حدوث الهجمات دي
ال password brute forcing هو هجوم بيعتمد علي تجربة عدد كبير من كلمات المرور (password lists) ضد اسم مستخدم (username) واحد او اكثر لمعرفة كلمة المرور الصحيحة, في ادوات كتير ممكن نستخدمها في العملية دية زي thc-hydra, brupsuite, wfuzz
هنستخدم في الشرح دا ال burpsuite intruder
الintruder بياخد قائمة كلمات المرور (password list)
بنحدد مكان الباسورد في ال request عشان يتم استبدالة بكلمة مرور من القائمة المستخدمة في كل طلب (HTTP Request) الintruder هيبعته للخادم (server)
الintruder جرب كل كلمات المرور, هنلاقي هنا كلمة المرور الصحيحة test
علي عكس ال password brute forcing في ال password spraying احنا مش بنجرب كلمات مرور كتير ضد مستخدم واحد, احنا بنجرب كلمة مرور (password) واحدة او مجموعة صغيرة من كلمات المرور الشائعة (علي حسب الحد المسموح بيه في تطبيق معين) ضد عدد كبير من المستخدمين علشان نتجنب تعليق حساب المستخدم (account lockout)
تعليق حساب المستخدم هي وسيلة امان لحماية حساب المستخدم ضد هجمات ال password brute forcing
في الهجوم دا استبدلنا قائمة كلمات المرور (password lists) بقائمة اسماء المستخدمين اللي عرفناها من خلال عملية تعداد المستخدمين (users enumeration)
بنحدد لل intruder مكان اسم المستخدم في ال request وبنخلي الباسورد ثابت
ال intruder جرب البسورد ضد قائمة المستخدمين والمستخدم azayed
هو صاحبب كلمة المرور
الهجوم دا بيعتمتد علي جمع اسماء المستخدمين وكلمات المرور من قواعد بيانات مسربة خاصة بتطبيقات تانية وتجربتها في تطبيق معين علي أمل ان المستخدم يكون بيستخدم نفس الباسورد في التطبيق المستهدف
1- حد معدل الطلبات (rate limiting) : عن طرق حظر تسجيل الدخول من عنوان (IP address) معين
2- تعطيل حساب المستخدم بشكل مؤقت (account lockout) لاكن تجنب التعطيل لمدة طويلة علشان الattacker ميستغلش الاَلية دي في منع المستخدمين من الوصول لحساباتهم بما يسمي هجوم الحرمان الخدمة (denial of service attack)
استخدام المصادقة متعددة العوامل (multi factor authentication) بجانب الباسورد : زي استخدام كلمات مرور مؤقته (OTPs) التطبيق بيبعتها للمستخدم علي الايميل الخاص بيه او رقم الموبايل, او استخدام ال biometric authentication زي استخدام بصامت الاصابع او الوجه لمصادقة المستخدمين
1- عدم السماح للمستخدم بتعيين كلمة مرور طولها اقل من 8 حروف
2- كلمة المرور لازم تتكون من حروف ورموز وارقام
3- عدم السماح للمستخدم بتعيين كلمات مرور شائعة او مسربة: ممكن نتحقق من كلمات المرور المسربة باستخدام ال API الخاصة بموقع HaveIbeenPwned او باي خدمات بديلة
4- تخزين كلمات المرور بشكل اَمن في قاعدة البيانات عن طرق تحويلها ل hash بدل تخزينها بصورة واضحة (plain text) لتجنب كسر كلمات المرور في حالة حدوث تسريب لقاعدة البيانات
-- استخدم hash algorithm قوية زي (Argon2id, PBKDF2)
-- استخدم ال salt مع الباسورد: الsalt دا قيمة عشوائية فريدة بيتم اضافتها لكلمة المرور قبل تمريرها علي ال hashing function لزيادة صعوبة كسر كلمة المرور في حالة حدوث تسريب للبيانات
5- استخدام ال CAPTCHA لمنع عمليات تسجيل الدخول الاَلية
1- https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html