المصادقة المعطّلة وإلغاء التسلسل غير الآمن
استكشف كيف تتيح نقاط الضعف في إدارة الجلسات وحشو بيانات الاعتماد وإلغاء التسلسل غير الآمن للمهاجمين اختطاف الحسابات وتنفيذ التعليمات البرمجية.
المصادقة المعطّلة وإلغاء التسلسل غير الآمن درس مجاني في Cloud & IT Cert Prep على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cloud & IT Cert Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.
ما المقصود بالمصادقة المعطلة؟
تشير المصادقة المعطلة إلى نقاط الضعف في كيفية تحقّق التطبيق من هوية المستخدم وإدارته للجلسات. وعندما تكون المصادقة معطلة، يمكن للمهاجمين اختراق كلمات المرور أو المفاتيح أو رموز الجلسات لانتحال هويات مستخدمين آخرين. وتشمل هذه الفئة من قائمة OWASP للعشرة الأوائل مجموعة واسعة من العيوب: بيانات الاعتماد الضعيفة، وسوء إدارة الجلسات، وغياب المصادقة متعددة العوامل، وتخزين بيانات الاعتماد بطريقة غير آمنة.
حشو بيانات الاعتماد ورش كلمات المرور
يستخدم حشو بيانات الاعتماد قوائم كبيرة من أزواج أسماء المستخدمين وكلمات المرور المسرّبة من عمليات اختراق سابقة للبيانات، ويجربها على مواقع أخرى مستغلًا إعادة استخدام كلمات المرور. أما رش كلمات المرور فيتبع نهجًا معاكسًا: إذ يجرّب مجموعة صغيرة من كلمات المرور الشائعة (مثل Password1!) على حسابات كثيرة لتجنب بلوغ حدود قفل الحساب. وينجح الهجومان بسبب ضعف سياسات كلمات المرور وغياب المصادقة متعددة العوامل.
# Password spraying concept (defensive awareness)
# Attacker tries 'Password1!' against 10,000 accounts
# rather than trying 10,000 passwords against 1 account
# This avoids triggering lockout policies (e.g., 5 attempts/account)
# Defense: MFA + adaptive authentication + rate limitingضعف إدارة الجلسات
تربط الجلسات المستخدمين الموثَّقين بحالة التطبيق. وتشمل عيوب ضعف إدارة الجلسات: قيم رموز جلسات يمكن التنبؤ بها (معرّفات متسلسلة يستطيع المهاجمون تخمينها)، ورموزًا لا تنتهي صلاحيتها أبدًا، ورموزًا تُنقل عبر HTTP بدلًا من HTTPS، وعدم إبطال الرموز عند تسجيل الخروج. ويمكن للمهاجم الذي يحصل على رمز جلسة صالح انتحال شخصية المستخدم من دون معرفة كلمة مروره.
# Signs of weak session management:
# /login response sets:
# Set-Cookie: session=1042 (predictable, sequential)
# Missing: Secure; HttpOnly; SameSite flags
# Missing: session expiry / Max-Age
# Logout does NOT invalidate server-side sessionتثبيت الجلسة واختطافها
يفرض تثبيت الجلسة على الضحية استخدام معرّف جلسة يختاره المهاجم. فعلى سبيل المثال، يرسل المهاجم رابطًا يتضمن ملف تعريف ارتباط لجلسة محددًا مسبقًا؛ وبعد أن يوثّق الضحية هويته، يستخدم المهاجم معرّف الجلسة نفسه للوصول إلى الحساب. أما اختطاف الجلسة فيسرق رمز جلسة قائمًا عبر XSS، أو التنصت على الشبكة (عبر اتصالات غير مشفرة)، أو ملفات تعريف ارتباط مسروقة. والحل هو إعادة إنشاء معرّفات الجلسات بعد تسجيل الدخول واستخدام HTTPS في كل مكان.
تخزين كلمات المرور بطريقة غير آمنة
يُعد تخزين كلمات المرور بنص واضح أو باستخدام تجزئة ضعيفة (MD5 وSHA-1) إخفاقًا حرجًا في المصادقة. فعند اختراق قاعدة بيانات، تصبح كلمات المرور ذات النص الواضح والتجزئات الضعيفة قابلة للاستخدام فورًا. ويتطلب تخزين كلمات المرور بشكل آمن خوارزمية تجزئة تكيفية مصممة لكلمات المرور، مثل bcrypt أو Argon2 أو PBKDF2، مع قيمة ملح عشوائية لكل مستخدم. وتكون هذه الخوارزميات بطيئة عمدًا، مما يجعل التخمين دون اتصال مكلفًا حسابيًا.
# Python example — secure password hashing with bcrypt
import bcrypt
# Hash a password (includes random salt automatically)
password = b'UserSuperSecret123'
hashed = bcrypt.hashpw(password, bcrypt.gensalt(rounds=12))
# Verify
bcrypt.checkpw(password, hashed) # returns Trueما المقصود بإلغاء التسلسل غير الآمن؟
يحوّل التسلسل حالة كائن إلى تنسيق (JSON أو XML أو ثنائي) بغرض التخزين أو النقل. أما إلغاء التسلسل فيعيد إنشاء الكائن من ذلك التنسيق. ويحدث إلغاء التسلسل غير الآمن عندما يلغي التطبيق تسلسل بيانات يتحكم فيها المهاجم من دون التحقق منها، مما يتيح للمهاجمين تعديل الكائنات المتسلسلة للتلاعب بمنطق التطبيق، أو تصعيد الامتيازات، أو تنفيذ تعليمات برمجية عشوائية على الخادم.
مثال على هجوم إلغاء التسلسل
يتضمن نمط شائع من الهجمات كائنات متسلسلة تُمرَّر في ملفات تعريف الارتباط أو معلمات API. فعلى سبيل المثال، يمكن لتطبيق Java يستخدم ObjectInputStream.readObject() مع بيانات غير موثوقة أن يطلق تنفيذ التعليمات البرمجية عن بُعد (RCE) عبر سلاسل الأدوات في مكتبات شائعة (Apache Commons Collections). ينشئ المهاجم حمولة متسلسلة ضارة ويرسلها إلى التطبيق، فتُنفَّذ التعليمات البرمجية أثناء إلغاء التسلسل، وغالبًا قبل إجراء أي فحص للمصادقة.
# Insecure deserializing pattern (Python pickle — dangerous)
import pickle
# Attacker-controlled payload
class Exploit:
def __reduce__(self):
import os
return (os.system, ('id',)) # executes 'id' on server
payload = pickle.dumps(Exploit())
pickle.loads(payload) # RCE! Never deserialize untrusted data with pickleمنع إلغاء التسلسل غير الآمن
تشمل وسائل الدفاع ضد إلغاء التسلسل غير الآمن: عدم إلغاء تسلسل البيانات غير الموثوقة مطلقًا باستخدام تنسيقات خطرة مثل التسلسل الأصلي في Java أو pickle في Python. ويُفضّل استخدام تنسيقات للبيانات فقط (JSON وXML) بدلًا من التسلسل الثنائي. وإذا كان إلغاء التسلسل مطلوبًا، فنفّذ فحوصات سلامة (بتوقيع الكائن المتسلسل باستخدام HMAC)، واستخدم قوائم السماح لتقييد الفئات التي يمكن إلغاء تسلسلها، وشغّل تعليمات إلغاء التسلسل البرمجية في بيئات معزولة ومنخفضة الامتيازات.
# Safe approach: sign serialized data before transmitting
import hmac, hashlib, json
def serialize_safe(data, secret):
payload = json.dumps(data) # use JSON, not pickle
sig = hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest()
return payload + '.' + sigالمصادقة متعددة العوامل كإجراء تحكّم
تُعد المصادقة متعددة العوامل (MFA) الإجراء الواحد الأكثر تأثيرًا ضد المصادقة المعطلة. فحتى إذا اختُرقت بيانات الاعتماد عبر التصيد الاحتيالي، أو حشو بيانات الاعتماد، أو اختراق قاعدة بيانات، فلن يتمكن المهاجم الذي لا يملك العامل الثاني من إتمام المصادقة. وتفيد Microsoft بأن MFA تحظر أكثر من 99.9% من هجمات اختراق الحسابات المؤتمتة. وينبغي أن تكون MFA إلزامية للحسابات ذات الامتيازات، وأن يُشجَّع جميع المستخدمين على استخدامها.
قفل الحساب وتحديد معدل الطلبات
تعمل سياسات قفل الحساب على تعطيل الحساب مؤقتًا بعد عدد محدد من محاولات تسجيل الدخول الفاشلة، مما يبطئ هجمات القوة الغاشمة. إلا أن عمليات القفل قد تتيح تنفيذ حجب الخدمة ضد المستخدمين الشرعيين، إذ يتعمد المهاجمون تفعيل قفل الحسابات لمنع الوصول إليها. ويساعد تحديد معدل الطلبات (إبطاء الاستجابات بعد تكرار حالات الفشل باستخدام التراجع الأسي) وتحديات CAPTCHA على الحد من هجمات القوة الغاشمة مع تقليل مخاطر حجب الخدمة.
المصادقة المعطلة في قائمة OWASP لأهم 10 مخاطر
تدرج OWASP المصادقة المعطلة باعتبارها خطرًا بالغ الأهمية، لأن ثغرات المصادقة شائعة وتأثيرها كبير. وتشمل المؤشرات الرئيسية للمصادقة المعطلة: السماح بالهجمات المؤتمتة مثل حشو بيانات الاعتماد، والسماح بهجمات القوة الغاشمة أو غيرها من الهجمات المؤتمتة، والسماح باستخدام كلمات المرور الافتراضية أو الضعيفة أو الشائعة، واستخدام عمليات ضعيفة لاسترداد بيانات الاعتماد، واستخدام كلمات مرور بنص واضح أو تجزئتها بطريقة ضعيفة، وغياب المصادقة متعددة العوامل أو عدم فعاليتها.
تحقق سريع
اختبر مدى فهمك لمفاهيم CompTIA Security+ (SY0-701) الواردة في هذا الدرس.
مراجعة الدرس
تعلمت في هذا الدرس أن المصادقة المعطلة تشمل الجلسات الضعيفة وحشو بيانات الاعتماد وتخزين كلمات المرور بطريقة غير آمنة، وأن إلغاء التسلسل غير الآمن قد يؤدي إلى تنفيذ التعليمات البرمجية عن بُعد عبر كائنات متسلسلة خبيثة، وأن MFA وتجزئة كلمات المرور باستخدام bcrypt وتجديد الجلسة بعد تسجيل الدخول والبيانات المتسلسلة الموقعة تمثل وسائل دفاع رئيسية. بعد ذلك، سنتناول SDLC الآمن وأداتي SAST وDAST.
الأسئلة الشائعة
هل درس «المصادقة المعطّلة وإلغاء التسلسل غير الآمن» مجاني؟
نعم — نص درس «المصادقة المعطّلة وإلغاء التسلسل غير الآمن» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cloud & IT Cert Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.
ماذا ستتعلم في «المصادقة المعطّلة وإلغاء التسلسل غير الآمن»؟
استكشف كيف تتيح نقاط الضعف في إدارة الجلسات وحشو بيانات الاعتماد وإلغاء التسلسل غير الآمن للمهاجمين اختطاف الحسابات وتنفيذ التعليمات البرمجية. تتمرن على Cloud & IT Cert Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cloud & IT Cert Prep؟
لا تُشترط خبرة سابقة. Cloud & IT Cert Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «المصادقة المعطّلة وإلغاء التسلسل غير الآمن»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cloud & IT Cert Prep هذا؟
نعم. كل درس في Cloud & IT Cert Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- حقن SQL وحقن الأوامر
- البرمجة النصية عبر المواقع (XSS) وCSRF
- المصادقة المعطّلة وإلغاء التسلسل غير الآمن
- دورة حياة تطوير البرمجيات الآمنة وأدوات SAST وDAST