نمذجة التهديدات لفرق البرمجيات: اكتشاف الثغرات الأمنية قبل كتابة الكود

نمذجة التهديدات لفرق البرمجيات: اكتشاف الثغرات الأمنية قبل كتابة الكود

12

November 2026 Thursday

تُكتشف الثغرات الأمنية عادةً في وقت متأخر. فاختبار الاختراق يجدها قبيل الإطلاق، أو يجدها الماسح بعد النشر، أو يجدها مهاجم في الإنتاج. وعندها يعني الإصلاح غالبًا إعادة تصميم مسار مصادقة أو إعادة هيكلة تخزين البيانات أو إعادة كتابة تكامل، وهو أمر مكلف ومعطّل. وكثير من هذه العيوب لم تكن أخطاء برمجية أصلًا، بل قرارات تصميمية لم يفحصها أحد من منظور المهاجم.

تعالج نمذجة التهديدات (Threat Modeling) ذلك بنقل التفكير الأمني إلى بداية دورة الحياة. وهي نشاط منظم يفحص فيه الفريق تصميم النظام، ويسأل ما الذي قد يسوء، ويقرر ماذا يفعل حيال كل خطر، ثم يتحقق من فاعلية الاستجابة. ويلخص بيان نمذجة التهديدات، الذي نشرته مجموعة من الممارسين عام 2020، الغرض بأربعة أسئلة: على ماذا نعمل؟ ما الذي قد يسوء؟ ماذا سنفعل حيال ذلك؟ هل أحسنّا العمل بما يكفي؟

يشرح هذا المقال المنهج الأساسي، ويعرّف بالأطر الرئيسية، ويصف كيفية إدارة جلسات فعالة، ويبيّن كيفية دمج نمذجة التهديدات في التسليم الرشيق. ويطبّق مثال تطبيقي في النهاية المنهج على ميزة مشاركة الملفات.

لماذا تهم نمذجة التهديدات

ترتفع تكلفة إصلاح العيب بحدة كلما تأخر اكتشافه. العيب الذي يُحدَّد على السبورة يكلّف حوارًا. والعيب نفسه إذا وُجد بعد الإصدار قد يكلّف إعادة كتابة وإخطار عملاء وتدقيقًا تنظيميًا وفقدان ثقة. لذلك تُعد نمذجة التهديدات من أكثر الأنشطة الأمنية اقتصادية، لأنها تجد مشكلات على مستوى التصميم لا يكاد يكتشفها أي اختبار لاحق.

وهي تعالج كذلك فئة من المخاطر تفوتها الأدوات الآلية. فالتحليل الساكن يجد حقن SQL في سطر كود، لكنه لن يلاحظ أن واجهة داخلية تعرض عمليات إدارية دون التحقق من دور المستدعي، أو أن مسار إعادة تعيين كلمة المرور يمكن إساءة استخدامه لتعداد المستخدمين، أو أن خدمتين تثق كل منهما بالأخرى أكثر من اللازم. هذه ضعف معماري لا يراه إلا من يفهم كيف تتكامل الأجزاء.

وأخيرًا، تبني نمذجة التهديدات فهمًا مشتركًا. يغادر المطورون والمعماريون والمختبرون وملّاك المنتج الجلسة بصورة موحدة عن كيفية عمل النظام وأين هو هش. هذا التوافق قيّم بحد ذاته، ويساعد الفرق على ترتيب الأعمال الأمنية بالأدلة لا بالحدس.

الخطوة الأولى: فهم النظام

يُجاب عن السؤال الأول، على ماذا نعمل، بنموذج للنظام. والأداة الأكثر شيوعًا هي مخطط تدفق البيانات. يعرض الكيانات الخارجية كالمستخدمين والخدمات الخارجية، والعمليات كمكونات التطبيق، ومخازن البيانات كقواعد البيانات والطوابير، وتدفقات البيانات التي تربطها. ويحدد المخطط أيضًا حدود الثقة، وهي الخطوط التي يتغير عندها مستوى الثقة، مثل الحد بين الإنترنت وخادم الويب، أو بين طبقة الويب وقاعدة البيانات، أو بين شبكة الشركة ومزود السحابة.

وحدود الثقة هي أهم جزء في الصورة. فالهجمات تحدث عمومًا حيث تعبر البيانات أو التحكم إحدى هذه الحدود، لذا يستحق كل عبور تدقيقًا. ولا يحتاج المخطط إلى الكمال. رسم مقروء على السبورة يتفق الفريق على أنه يعكس الواقع أنفع بكثير من وثيقة رسمية لا يثق بها أحد. وأدرج كذلك الأصول المهمة، أي الأشياء التي يريدها المهاجم: بيانات العملاء، وبيانات الاعتماد، ومفاتيح التوقيع، وقدرات الدفع، أو القدرة على تعطيل الخدمة.

الخطوة الثانية: تحديد ما قد يسوء باستخدام STRIDE

أشهر تقنية لتوليد التهديدات هي STRIDE التي طورتها مايكروسوفت أواخر التسعينيات. وهي اختصار لست فئات من التهديدات، تقابل كل منها خاصية أمنية يجب أن يحافظ عليها النظام.

الانتحال (Spoofing) هو التظاهر بأنك شخص أو شيء آخر، وينتهك المصادقة. ومن أمثلته بيانات الاعتماد المسروقة والرموز المزورة وخدمة خبيثة تنتحل خدمة شرعية. العبث (Tampering) هو تعديل البيانات أو الكود دون إذن، وينتهك السلامة، كتغيير طلب أثناء النقل أو تعديل سجل في قاعدة بيانات أو حقن تبعية خبيثة. الإنكار (Repudiation) هو نفي القيام بإجراء حين لا يستطيع النظام إثبات خلاف ذلك، وينتهك عدم الإنكار، ويتصل بغياب سجلات التدقيق أو عدم موثوقيتها. كشف المعلومات (Information disclosure) هو إتاحة البيانات لمن لا ينبغي أن يراها، وينتهك السرية، عبر رسائل أخطاء مفصلة أو تخزين غير مشفر أو استجابات واجهة واسعة أكثر من اللازم. حجب الخدمة (Denial of service) هو جعل النظام غير متاح، وينتهك التوافرية، عبر استنزاف الموارد أو استعلامات مكلفة أو الاعتماد على مكون هش وحيد. رفع الامتيازات (Elevation of privilege) هو اكتساب قدرات لم تُمنح، وينتهك التفويض، كوصول مستخدم عادي إلى وظائف إدارية أو هروب حاوية إلى المضيف.

يمر الفريق على كل عنصر في المخطط ويسأل أي فئات STRIDE تنطبق. بعض العناصر عرضة لتهديدات معينة: الكيانات الخارجية يمكن انتحالها، وتدفقات البيانات يمكن العبث بها أو كشفها، ومخازن البيانات تعاني من العبث والكشف وحجب الخدمة، والعمليات قد تعاني من الفئات الست كلها. وهذا النهج عنصرًا بعنصر منظم وينتج قائمة جيدة دون أن يتطلب خبرة أمنية عميقة من كل مشارك.

أطر وأساليب أخرى

ليس STRIDE الخيار الوحيد، وتناسب الأساليب المختلفة سياقات مختلفة.

PASTA، أي عملية محاكاة الهجوم وتحليل التهديدات، منهجية من سبع مراحل محورها المخاطر، تربط أهداف الأعمال بالتهديدات التقنية وتتضمن محاكاة الهجوم. وهي أثقل وتناسب المؤسسات التي تحتاج تحليل مخاطر رسميًا.

ويركز LINDDUN على تهديدات الخصوصية بفئات مثل الربط والتعريف وعدم الإنكار والكشف وإفشاء البيانات وعدم الوعي وعدم الامتثال. وهو قيّم للأنظمة التي تعالج بيانات شخصية ويكمّل STRIDE.

وأشجار الهجوم تبدأ بهدف المهاجم جذرًا، مثل سرقة سجلات العملاء، وتقسمه إلى أهداف فرعية بديلة أو لازمة. وهي تعطي صورة واضحة للمسارات المؤدية إلى الهدف وممتازة لتوصيل المخاطر ولتقدير أرخص مسار للمهاجم.

وقاعدة معرفة MITRE ATT&CK تفهرس تكتيكات وتقنيات خصوم حقيقيين رُصدت في الواقع، وتساعد الفرق على تأسيس تحليلها على سلوك المهاجمين الفعلي. ويوسع MITRE ATLAS هذا التفكير إلى أنظمة التعلم الآلي، وتوفر قوائم OWASP العشرية، ومنها قوائم الواجهات البرمجية وتطبيقات النماذج اللغوية الكبيرة، قوائم تحقق عملية لنقاط الضعف الشائعة.

وللمبتدئين، الأفضل STRIDE مع مخططات تدفق البيانات، ثم إضافة تقنيات أخرى مع نضج الممارسة.

الخطوة الثالثة: تقرير ما يُفعل حيال كل تهديد

تحديد التهديدات نصف العمل فقط. لكل منها يختار الفريق استجابة، عادةً من أربع. التخفيف بإضافة ضابط يقلل الاحتمال أو الأثر، مثل المصادقة متعددة العوامل أو التحقق من المدخلات. الإزالة بحذف الميزة أو البيانات التي تخلق الخطر، فأأمن البيانات ما لم تجمعه أصلًا. النقل بتحويل الخطر إلى طرف آخر، كاستخدام مزود دفع حتى لا تلمس أرقام البطاقات أنظمتك أو بشراء تأمين. القبول بقرار واعٍ للتعايش مع الخطر، موثّق ومعتمد ممن يملك الصلاحية.

وللترتيب أهمية لأن الفرق تجد تهديدات أكثر مما تستطيع إصلاحه دفعة واحدة. تقيّم الأساليب الشائعة كل تهديد بالاحتمال والأثر بمقياس بسيط عالٍ ومتوسط ومنخفض، أو تستخدم نظام تسجيل مثل CVSS أو نموذج DREAD الأقدم. الدقة أقل أهمية من الاتساق والصدق. الهدف قائمة مرتبة توجه العمل لا رقم مثالي. وينبغي أن يسجل كل خطر مقبول من قبله ومتى سيُعاد النظر فيه.

ويجب تحويل إجراءات التخفيف إلى بنود عمل ملموسة قابلة للتتبع: قصص مستخدم أو تذاكر أو معايير قبول في سجل المهام الذي يستخدمه الفريق أصلًا. ونموذج التهديدات الذي يبقى في وثيقة ولا يصل إلى سجل المهام لا يحقق شيئًا.

الخطوة الرابعة: التحقق من النتيجة

يسأل السؤال الأخير هل كان العمل جيدًا بما يكفي. وللتحقق أشكال عدة. يستطيع المراجعون التأكد من أن كل عبور لحدود الثقة وكل أصل عالي الخطورة قد دُرس. ويستطيع المختبرون كتابة حالات اختبار أمنية من قائمة التهديدات، مثل محاولة الوصول إلى ملف مستخدم آخر أو إعادة تشغيل رمز منتهي. ويستطيع مختبرو الاختراق استخدام النموذج خريطةً والتركيز على المناطق الأكثر إثارة للقلق. ومع الوقت تكشف الحوادث والإنذارات الكاذبة فجوات في النموذج، ويجب أن تعود هذه الدروس إلى الجلسة التالية.

نموذج التهديدات أثر حي. ينبغي تحديثه عند تغير المعمارية، أو إضافة تكامل جديد، أو معرفة فئة هجوم جديدة، أو كشف حادث عن افتراض تبين خطؤه.

جعل نمذجة التهديدات تعمل في الفرق الرشيقة

اعتراض شائع أن نمذجة التهديدات بطيئة وتنتمي إلى النموذج الشلالي. عمليًا يمكن أن تكون خفيفة وتدريجية.

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

أشرك الفريق كله. يستطيع المتخصصون في الأمن التيسير، لكن المطورين يعرفون كيف يتصرف النظام فعلًا ويجب أن يكونوا المشاركين الرئيسيين. ويستطيع «بطل الأمن» في كل فريق، وهو مطور حاصل على تدريب أمني إضافي، قيادة الجلسات وربط الفريق بمجموعة الأمن المركزية. وعلى الميسّرين الحفاظ على نبرة بناءة، فالهدف تحسين التصميم لا انتقاده.

استخدم صيغًا خفيفة. تكفي سبورة مشتركة ومخطط في المستودع وقائمة قصيرة بالتهديدات والقرارات. ويشجع بيان نمذجة التهديدات على التعامل مع النماذج كالكود بمعنى إصدارها ومراجعتها. وتساعد أدوات مثل OWASP Threat Dragon وأداة مايكروسوفت لنمذجة التهديدات وIriusRisk، كما تتيح مقاربات «نمذجة التهديدات ككود» مثل pytm وصف النظام في نص برمجي وتوليد المخططات وقوائم التهديدات تلقائيًا بجانب المصدر.

وابنِ مكتبة معرفة قابلة لإعادة الاستخدام. فكثير من التهديدات يتكرر عبر الأنظمة، وكتالوج الأنماط الشائعة، مثل التخفيفات القياسية لرفع الملفات وإعادة تعيين كلمة المرور والوصول إلى بيانات متعددة المستأجرين، يسرّع الجلسات ويحسن الاتساق.

أخطاء شائعة

تقع الفرق الجديدة على نمذجة التهديدات في فخاخ متوقعة. تنمذج تفاصيل كثيرة، فتقضي ساعات في المخططات ولا تصل إلى التهديدات. أو تنمذج قليلًا فتركز على الكود وتتجاهل البنية التحتية والأطراف الخارجية والعمليات البشرية. تعاملها تمرين امتثال لمرة واحدة، فتنتج وثيقة للمدققين لا تُراجع. تركز على مهاجمين غرائبيين وتتجاهل الشائعين مثل حشو بيانات الاعتماد والتخزين سيئ الضبط. تفشل في المتابعة، فتسرد تخفيفات لا تصبح تذاكر. وتترك فريق الأمن يملك العملية كلها، فيتحول المطورون إلى متفرجين وتنشأ نقطة اختناق.

والعلاج جلسات قصيرة مركزة على ميزة أو تغيير محدد، يقودها من يبنون النظام، ومرتبطة مباشرة بسجل المهام.

مثال تطبيقي: مشاركة الملفات الآمنة

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

في الخطوة الأولى يرسم الفريق مخطط تدفق بيانات. يرسل متصفح المستخدم طلب الرفع إلى الواجهة عبر حد ثقة الإنترنت. تخزن الواجهة الملف في مخزن الكائنات وتكتب البيانات الوصفية في القاعدة. وعندما ينقر المستلم الرابط، تتحقق الواجهة من الأذونات وتعيد رابط تنزيل محدود المدة. وخدمة البريد طرف ثالث عبر حد ثقة آخر.

في الخطوة الثانية يطبقون STRIDE على كل عنصر. في الانتحال: يستطيع مهاجم استخدام رمز جلسة مسروق للرفع أو التنزيل بهوية آخر، وقد تخدع رسالة بريد مزورة مستخدمًا لينقر رابطًا خبيثًا. في العبث: قد يرفع مستخدم ملفًا لا يطابق نوعه المعلن محتواه، كملف تنفيذي متنكر في هيئة PDF، أو يعدّل معرّف الملف في طلب ليكتب فوق ملف مستخدم آخر. في الإنكار: قد ينكر مستخدم أنه شارك مستندًا سريًا إن لم تُسجَّل أحداث المشاركة. في كشف المعلومات: يمكن تعداد روابط مشاركة معرّفاتها قابلة للتخمين، وقد تُضبط الحاوية عامة بالخطأ، وقد تكشف رسائل الخطأ مسارات داخلية. في حجب الخدمة: قد يرفع مهاجم ملفات كبيرة جدًا أو كثيرة لاستنزاف التخزين والنطاق الترددي. وفي رفع الامتيازات: قد يستدعي مستخدم صلاحيته عرض فقط نقطتي الرفع أو الحذف مباشرة إذا كان التفويض يُفحص في واجهة المستخدم فقط.

في الخطوة الثالثة يقررون الاستجابات ويرتبونها. الأولوية القصوى للمراجع المباشرة غير الآمنة للكائنات وللتفويض المكسور، لأن عيبًا واحدًا قد يكشف كل مستند. التخفيفات: فحص التفويض على الخادم لكل طلب بالاعتماد على هوية الجلسة لا على جسم الطلب؛ وتوليد معرّفات طويلة عشوائية للملفات والروابط؛ وإبقاء الحاوية خاصة وتقديم التنزيلات عبر روابط موقّعة قصيرة العمر فقط؛ وإعطاء روابط المشاركة تواريخ انتهاء وإمكانية إلغاء. وللملف المتنكر: يتحققون من محتوى الملف بفحص التوقيع، ويقيّدون الأنواع المسموحة، ويفحصون الملفات المرفوعة بحثًا عن البرمجيات الخبيثة، ويقدمون الملفات بترويسة تنزيل ومن نطاق منفصل حتى لا تنفذ سكربتات في أصل التطبيق. ولحجب الخدمة: حدود للحجم وحصص لكل مستخدم وتقييد للمعدل. وللإنكار: سجلات تدقيق لأحداث الرفع والمشاركة والتنزيل مع المستخدم والوقت والعنوان المصدر، تُخزن حيث لا يستطيع كود التطبيق تعديلها. ولخطر البريد: لا تحتوي الدعوات محتوى حساسًا، وتؤدي الروابط إلى صفحة تتطلب مصادقة. كما قرروا إزالة خطر واحد: أُسقطت فكرة الروابط العامة المجهولة من الإصدار الأول، وسيُطلب من المستلمين تسجيل الدخول.

ويقبل الفريق خطرًا متبقيًا واحدًا هو أن مستلمًا شرعيًا قد يعيد توجيه ملف نزّله، إذ لا ضابط تقني يمنع ذلك. ويسجل مالك المنتج هذا القبول في النموذج.

في الخطوة الرابعة يصبح كل تخفيف تذكرة بمعايير قبول. ويضيف المختبرون حالات للوصول إلى معرّف ملف مستخدم آخر والروابط المنتهية والرفع الأكبر من الحد وعدم تطابق نوع الملف. ويُخزَّن المخطط وقائمة التهديدات في المستودع بجانب وثيقة التصميم، وتُضاف ملاحظة لمراجعتهما كلما تغير نموذج المشاركة. استغرقت الجلسة كلها تسعين دقيقة وأنتجت اثني عشر بندًا في السجل، ثلاثة منها منعت عيوبًا كانت على الأرجح خطيرة.

قياس التقدم

تستطيع المؤسسات تتبع صحة ممارستها بمؤشرات بسيطة: نسبة التغييرات المهمة التي نُمذجت تهديداتها، وعدد المشكلات على مستوى التصميم المكتشفة قبل التنفيذ، والزمن المستغرق لإغلاق إجراءات التخفيف المحددة، ونسبة الحوادث المرتبطة بتهديدات كانت أو لم تكن في النموذج. تشجع هذه المقاييس التحسن دون تحويل النشاط إلى أعمال ورقية.

الخاتمة

نمذجة التهديدات هي ممارسة التفكير كمهاجم بينما التصميم لا يزال قابلًا للتشكيل. وبنمذجة النظام وتعداد التهديدات بإطار مثل STRIDE واختيار الاستجابات عن قصد والتحقق من النتيجة، تجد الفرق العيوب التي لا تجدها الماسحات والاختبارات، وبأقل تكلفة ممكنة.

وتنجح الممارسة عندما تكون خفيفة وتعاونية ومرتبطة بسجل المهام. ابدأ بميزة واحدة وسبورة واحدة والأسئلة الأربعة. ومع الوقت يتغير أسلوب تصميم الفريق: تصبح الحدود صريحة، وتُناقش الافتراضات، ويصبح الأمن خاصية مبنية في المعمارية لا طبقة تُضاف فوقها.