طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 243 · أمن الويب
الدرس 5 · الوحدة 3: تطبيق مبادئ أمن الويب

نمذجة التهديدات وتحليل المخاطر

كيف نكتشف المخاطر قبل أن يكتشفها المهاجم؟ نفكّر كمهاجم على الورق. ⏱ نحو 45 دقيقة.

بعد هذا الدرس ستستطيع أن:
  • تشرح معنى التصميم غير الآمن والفرق بينه وبين خطأ الكود.
  • ترسم تدفق البيانات وتحدّد حدود الثقة.
  • تستخدم STRIDE لتعداد أنواع التهديدات.
  • ترتّب التهديدات بالاحتمال والأثر وتختار الضوابط.

١بعض الثغرات في التصميم لا في الكود

فئة A04 في OWASP هي التصميم غير الآمن: خلل لا يُصلحه تنقيح سطر، لأنه في القرار نفسه. مثال: نظام يرسل رمز استعادة كلمة المرور في رسالة، لكنه يسمح بعدد غير محدود من المحاولات لإدخاله. الكود سليم، والتصميم معيب.

الدواء أن نفكّر في الأمن قبل كتابة الكود، بعملية منهجية اسمها نمذجة التهديدات Threat Modeling، تجيب عن أربعة أسئلة: ماذا نبني؟ وما الذي قد يسوء؟ وماذا نفعل حياله؟ وهل أحسنّا؟

٢ارسم التدفق وحدّد حدود الثقة

تبدأ بمخطط تدفق البيانات: من يرسل ماذا إلى أين. ثم ترسم حدود الثقة: الخطوط التي تعبرها البيانات من طرف غير موثوق إلى موثوق. كل سهم يعبر حدًّا هو موضع فحص وتهديد محتمل:

طلب تسجيل

طلب مزوّر

استعلام

دفع

المتدرب

خادم الويب

المهاجم

قاعدة البيانات

بوابة الدفع

الأطراف الحمراء خارجية غير موثوقة؛ كل سهم منها يعبر حدّ ثقة ويحتاج ضوابط.

في هذا المخطط: المتدرب والمهاجم والدفع أطراف خارجية. أخطر المواضع حيث يعبر مدخل خارجي إلى الخادم أو قاعدة البيانات؛ هناك تُركّز الدفاعات.

٣STRIDE: تذكرة أنواع التهديدات

كي لا تنسى نوعًا، تمرّ على ستة أنواع من التهديدات تختصرها STRIDE، ولكل نوع ضدّه من المثلث الأمني وما بعده:

الحرفالتهديدمثالالضابط المضاد
Sانتحال الهوية Spoofingالدخول باسم غيركمصادقة قوية
Tالعبث Tamperingتعديل بيانات في الطريقتوقيع، HTTPS
Rالإنكار Repudiationإنكار فعل قمت بهسجلّات موثوقة
Iكشف المعلومات Information Disclosureتسريب بياناتتشفير، صلاحيات
Dحجب الخدمة DoSإسقاط الخدمةتحديد المعدل
Eرفع الصلاحية Elevationمستخدم يصير مديرًاتفويض دقيق

لكل عنصر في مخططك، اسأل: أيّ من STRIDE ينطبق عليه؟ فتكتشف تهديدات ما كنت لتنتبه لها.

٤رتّب المخاطر: الاحتمال × الأثر

لا تُعالَج كل التهديدات بالدرجة نفسها. رتّبها بتقدير بسيط: الخطر = الاحتمال × الأثر، وابدأ بالأعلى:

التهديدالاحتمالالأثرالأولوية
حقن SQL في تسجيل الدخولعالٍعالٍ (سيطرة كاملة)🔴 أولًا
رؤية طلب عميل آخر (IDOR)عالٍمتوسط🟠 ثانيًا
حجب خدمة بطلبات كثيرةمتوسطمتوسط🟡 ثالثًا
تخمين كلمة مرور معقّدةمنخفضعالٍ🟡 راقِب

توقّع وتحقّق

نمذجة التهديدات تحدث:

«مستخدم عادي يصبح مديرًا» أي حرف من STRIDE؟

حدّ الثقة هو:

أولوية المعالجة تُحسب بـ:

الخلاصة

تحدٍّ تصميمي: نموذج تهديدات لتسجيل الدخول

متوسط

ابنِ نموذج تهديدات مصغّرًا لصفحة تسجيل الدخول في متجر «رفيق» (المتدرب يرسل اسمًا وكلمة مرور، فيتحقق الخادم من قاعدة البيانات ويعيد جلسة).

المطلوب:
  • حدّ ثقة واحد على الأقل في هذا التدفق.
  • ثلاثة تهديدات من STRIDE مختلفة الأحرف، كل تهديد في سطر مع حرفه.
  • لكل تهديد ضابطه المضاد (كل ضابط في سطر).
  • أي التهديدات أعلى أولوية ولماذا.
✓ التحقق الآلي: يفحص المختبر بنية مستندك وصياغته (لا يحكم على جودة الفكرة؛ هذا دور معلمك)
  • حدّ بين المتصفح والخادم
  • ثلاثة تهديدات
  • كل تهديد بحرف STRIDE
  • ثلاثة ضوابط
  • الأولوية تذكر الحقن أو الأثر العالي

💡 تلميح 1
حدّ الثقة هنا بين المتصفح غير الموثوق والخادم الموثوق.
💡 تلميح 2
اختر ثلاثة أحرف مختلفة من STRIDE: مثلًا S (انتحال) و T (عبث) و E (رفع صلاحية).
💡 تلميح 3
الأولوية للأعلى في الاحتمال × الأثر؛ حقن SQL غالبًا الأعلى.

نموذج واحد من إجابات كثيرة صحيحة.

حدّ الثقة
الحدّ بين المتصفح (غير موثوق) والخادم: بيانات الدخول تعبره، فتُفحص هناك.
ثلاثة تهديدات (حرف STRIDE + وصف، سطر لكل)
S انتحال الهوية: الدخول باسم مستخدم آخر بتخمين كلمته أو سرقتها.
T العبث: تعديل بيانات الطلب في الطريق على شبكة غير مشفّرة.
E رفع الصلاحية: حقن SQL يتجاوز التحقق فيدخل المهاجم مديرًا.
الضوابط المضادة (سطر لكل)
مصادقة قوية وتحديد معدل المحاولات ضد التخمين.
استخدام HTTPS لتشفير البيانات في الطريق.
استعلام معلَّم يمنع حقن SQL.
الأعلى أولوية وسببه
حقن SQL أعلى أولوية: احتماله عالٍ وأثره كامل (سيطرة على الحساب والقاعدة).
انتقل إلى تقييم الدرساختيار من متعدد، وصح وخطأ، وأكمل الفراغ، وتتبّع الناتج.ابدأ التقييم ←

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس