Cyber Security Academy · درس

هجمات الرموز وتقويتها

حماية تدفقات المصادقة من إساءة الاستخدام.

الدرس 4 من 413 خطوة

هجمات الرموز وتقويتها درس مجاني في Cyber Security Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cyber Security Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.

الرموز المميّزة بوصفها بيانات اعتماد

في أنظمة المصادقة الحديثة، الرموز المميّزة هي بيانات اعتماد. ويُعامل حائز أي رمز مميّز صالح على أنه الطرف الذي تمت مصادقته حتى انتهاء صلاحية الرمز أو إلغائه.

  • لذلك تُعادل سرقة الرمز المميّز سرقة بيانات الاعتماد.
  • تركّز إجراءات التقوية على تقليص عمر الرمز المميّز، وربطه بحائزه، وتمكين إلغائه بسرعة.

يتناول هذا الدرس الهجمات على رموز OAuth/OIDC/SAML المميّزة ووسائل الحماية التي تواجهها.

التباس خوارزمية JWT

يستغل أحد هجمات JWT التقليدية ترويسة alg.

  • إذا جرى قبول alg: none، فسيتمكن المهاجم من تزوير رموز مميّزة غير موقّعة.
  • في حالة الخلط بين RS256 وHS256، يعيد المهاجم توقيع الرمز المميّز باستخدام مفتاح RSA العام بوصفه سر HMAC.

وسيلة الدفاع: ثبّتوا الخوارزمية المتوقعة على الخادم، ولا تسمحوا للرمز المميّز مطلقًا بتحديد مسار التحقق الذي سيُنفّذ.

Vulnerable: verify(token, key)  // alg taken from header
Hardened:   verify(token, key, { algorithms: ["RS256"] })
// reject alg:none, reject HS* when RS* expected

سرقة الرموز المميّزة عبر XSS والسجلات

أكثر حالات اختراق الرموز المميّزة شيوعًا هي السرقة المباشرة لرمز صالح.

  • يقرأ XSS الرموز المميّزة من localStorage أو من الذاكرة.
  • تتسرّب الرموز المميّزة الموجودة في عناوين URL عبر سجل المتصفح وترويسات المُحيل وسجلات الخادم.
  • التسجيل التفصيلي لترويسات Authorization.

فضّلوا استخدام ملفات تعريف الارتباط httpOnly وSecure وSameSite لجلسات المتصفح، ونقّحوا الرموز المميّزة من السجلات وعناوين URL.

Set-Cookie: session=...; HttpOnly; Secure; SameSite=Lax
// keeps JS (and thus XSS) from reading the token

هجمات إعادة التشغيل

تعيد هجمة إعادة التشغيل استخدام رمز مميّز صالح جرى التقاطه للتصرّف نيابةً عن الضحية.

  • يمكن الحد منها باستخدام فترات انتهاء قصيرة، وnonce للاستخدام مرة واحدة (OIDC)، وتعقّب معرّف التأكيد (SAML).
  • يمنع TLS الالتقاط السلبي عبر الشبكة.
  • تمنع الرموز المميّزة المقيّدة بالمرسل إعادة الاستخدام حتى عند سرقتها.
Replay defenses:
  short exp + nonce/jti uniqueness
  TLS everywhere
  sender-constrained tokens (mTLS / DPoP)

الرموز المميّزة المقيّدة بالمرسل

يمكن لأي شخص يحوز الرموز المميّزة الحاملة استخدامها. أما الرموز المميّزة المقيّدة بالمرسل فتربط الرمز المميّز بمفتاح عميل محدد.

  • تربط الرموز المميّزة المقيّدة بـ mTLS (RFC 8705) الرمز المميّز بشهادة TLS الخاصة بالعميل.
  • يربط DPoP (RFC 9449) الرمز المميّز بمفتاح إثبات الحيازة الذي يوقّع به العميل كل طلب.

وبذلك يصبح الرمز المميّز المسروق عديم الفائدة من دون المفتاح الخاص المطابق.

DPoP: each request carries a signed proof JWT
  DPoP: <proof-jwt signed with client private key>
  Authorization: DPoP <access_token>

أعمار قصيرة وتدوير رموز التحديث

قلّلوا مدة الاستفادة من أي رمز مميّز مسروق.

  • اجعلوا رموز الوصول قصيرة العمر، بحيث تستمر صلاحيتها لدقائق.
  • استخدموا تدوير رمز التحديث: يُصدر كل تحديث رمز تحديث جديدًا ويلغي الرمز القديم.
  • اكتشفوا إعادة استخدام رمز تحديث جرى تدويره بوصفها مؤشرًا على السرقة، وألغوا السلسلة بأكملها.
On /token refresh:
  issue new RT, invalidate old RT
  if old RT presented again -> breach -> revoke family

إلغاء الرموز المميّزة وفحصها

تظل JWTs ذاتية الاكتفاء صالحة حتى انتهاء صلاحيتها، مما يعقّد عملية الإلغاء. وفّروا آليات لقطع الوصول بسرعة.

  • تلغي نقطة إلغاء الرموز (RFC 7009) صلاحية رموز التحديث والوصول.
  • يتيح الفحص (RFC 7662) لخادم الموارد التحقق من حالة الرمز المميّز في الوقت الفعلي.
  • احتفظوا بـ قائمة حظر حسب jti لعمليات الإلغاء الحرجة.
POST /introspect  token=...
  -> { "active": true, "sub": "...", "scope": "read" }
POST /revoke      token=...

فرض الجمهور والنطاق

لا يعني كون الرمز المميّز صالحًا أنه مُخوّل تلقائيًا للوصول إلى واجهة API الخاصة بكم. افرضوا الغرض المقصود.

  • تحققوا من aud حتى لا يمكن إعادة استخدام رمز مميّز أُصدر لخدمة أخرى مع خدمتكم.
  • افرضوا scope لكل نقطة نهاية؛ ولا تفترضوا أن الرمز المميّز الصالح يمنح وصولًا كاملًا.
  • تحققوا من iss لحظر الرموز المميّزة الصادرة عن جهات إصدار غير موثوقة.

يمنع ذلك إعادة استخدام الرموز المميّزة بين الخدمات وإساءة استخدام الوكيل المربك.

هجمات الخلط والهجمات العابرة لموفّري الهوية

عندما يدعم العميل عدة موفّري هوية، يمكن لهجمات الخلط أن تخدعه لإرسال رمز أو رمز مميّز أصدره أحد IdP إلى نقطة نهاية أخرى يختارها المهاجم.

  • يفقد العميل تتبّع AS الذي جاءت منه الاستجابة.
  • وسيلة الدفاع: اربطوا الاستجابات بجهة الإصدار باستخدام المَعلمة iss (RFC 9207)، وتحققوا من state لكل موفّر.
/authorize ... &state=<provider-bound>
callback must include &iss=<expected-AS>
client verifies iss matches the AS it started with

التخزين والنقل الآمنان

يحدد مكان وجود الرموز المميّزة وطريقة تخزينها مدى تعرضها للخطر.

  • جلسات المتصفح: استخدموا ملفات تعريف الارتباط httpOnly وSecure وSameSite، وتجنبوا localStorage.
  • الأجهزة المحمولة: استخدموا سلسلة مفاتيح/مخزن مفاتيح نظام التشغيل، ولا تستخدموا ملفات نصية صريحة مطلقًا.
  • الخوادم: استخدموا مدير أسرار، مع تشفير البيانات أثناء السكون وتطبيق أقل الصلاحيات بنطاق محدد.
  • استخدموا TLS دائمًا أثناء النقل، ولا تضمّنوا الرموز المميّزة مطلقًا في سلاسل الاستعلام.

قائمة تحقق لتقوية الرموز المميّزة

اجمعوا وسائل الحماية في خط أساس تشغيلي.

  • ثبّتوا الخوارزميات، وارفضوا alg: none وهجمات الخلط.
  • تحققوا من iss, aud, exp, signature, nonce/state.
  • استخدموا مدة صلاحية قصيرة لرمز الوصول، إلى جانب تدوير رمز التحديث مع اكتشاف إعادة الاستخدام.
  • فضّلوا الرموز المميّزة المقيّدة بالمرسل (DPoP/mTLS) لواجهات API عالية القيمة.
  • ادعموا الإلغاء والفحص.
  • خزّنوا الرموز المميّزة بأمان، وأبقوها خارج عناوين URL والسجلات.
Hardening baseline:
  [ ] alg pinned, none rejected
  [ ] iss/aud/exp/sig/nonce validated
  [ ] short TTL + RT rotation + reuse detection
  [ ] DPoP/mTLS for sensitive scopes
  [ ] revoke + introspect available

تحقق سريع: تحييد الرموز المميّزة المسروقة

اختاروا وسيلة الحماية التي تحدّ بأفضل شكل من ضرر سرقة الرمز المميّز نفسها.

مراجعة: هجمات الرموز المميّزة وتقويتها

أهم النقاط:

  • الرموز المميّزة هي بيانات اعتماد؛ وسرقتها تعني الاستيلاء على الحساب.
  • احموا JWTs عبر تثبيت الخوارزميات والتحقق من iss, aud, exp, signature, nonce.
  • قلّلوا التعرض للخطر باستخدام أعمار قصيرة وتدوير رموز التحديث مع اكتشاف إعادة الاستخدام.
  • تحيّد الرموز المميّزة المقيّدة بالمرسل (DPoP/mTLS) خطر الرموز المميّزة الحاملة المسروقة.
  • وفّروا الإلغاء والفحص، وأبقوا الرموز المميّزة خارج عناوين URL والسجلات وlocalStorage.
البدء مجانًا

تعلم Cyber Security Academy مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
76
الدروس
303

الأسئلة الشائعة

هل درس «هجمات الرموز وتقويتها» مجاني؟

نعم — نص درس «هجمات الرموز وتقويتها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cyber Security Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.

ماذا ستتعلم في «هجمات الرموز وتقويتها»؟

حماية تدفقات المصادقة من إساءة الاستخدام. تتمرن على Cyber Security Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cyber Security Academy؟

لا تُشترط خبرة سابقة. Cyber Security Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «هجمات الرموز وتقويتها»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cyber Security Academy هذا؟

نعم. كل درس في Cyber Security Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تدفقات OAuth 2.0
  2. OpenID Connect (OIDC)
  3. SAML والاتحاد
  4. هجمات الرموز وتقويتها
← العودة إلى Cyber Security Academy