الأمن السيبراني

نمذجة التهديدات: اكتشف المخاطر قبل أن تبني

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

ابدأ مشروعك

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

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

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

الأسئلة الأربعة

أربعة أسئلة شاعها آدم شوستاك (Adam Shostack) تعطي العمل شكله:

  1. ماذا نبني؟ ارسمه: المكوّنات والبيانات والمستخدمون، وأين تنتقل البيانات.
  2. ماذا قد يسوء؟ مرّ على الرسم بقائمة فحص مثل STRIDE، أو اسأل ببساطة: كيف سأهاجم هذا؟
  3. ماذا سنفعل حيال ذلك؟ لكل تهديد اختر: تخفيفه أو إزالته أو نقل خطره أو قبوله.
  4. هل أحسنّا العمل بما يكفي؟ تأكد أن المسارات المهمة غُطّيت، وأن لكل تهديد مسؤولًا، وأن الإصلاحات تعمل.

احتفظ ببضع دقائق للسؤال الرابع، فهي تمنع جلسة من أن تنتهي برسم بلا قرارات.

ارسم النظام: مخططات تدفق البيانات وحدود الثقة

يستخدم مخطط تدفق البيانات (DFD) أربعة أشكال. الكيانات الخارجية هي المستخدمون والأنظمة الأخرى خارج سيطرتك. والعمليات هي أجزاء شيفرتك التي تؤدي عملًا. ومخازن البيانات هي قواعد البيانات وتخزين الملفات والطوابير. وتدفقات البيانات هي الأسهم بينها، وعلى كل سهم ما ينتقل عبره. ارسم ميزة واحدة أو مسارًا واحدًا في كل مرة: فالمخطط الذي لا يُقرأ بنظرة واحدة أكبر من اللازم.

ثم ارسم حدود الثقة، وهي خطوط يتغير عندها مستوى الثقة أو السيطرة. ومن أشهرها:

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

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

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

ماذا قد يسوء: نموذج STRIDE

STRIDE اختصار لست فئات من التهديدات، وكل فئة تكسر خاصية أمنية.

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

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

ورشة مناسبة لفريق صغير

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

  1. حدّد الإطار (5 دقائق). سمِّ الميزة وما تحميه: بيانات العملاء، وحركة الأموال، وصلاحيات الإدارة، والسمعة.
  2. ارسم (من 15 إلى 20 دقيقة). ارسم مخطط تدفق البيانات على سبورة أو في أي أداة رسم، وعلّم حدود الثقة والبيانات الحساسة.
  3. اكتشف التهديدات (30 دقيقة). مرّ على كل تدفق وكل حد بنموذج STRIDE. واكتب كل تهديد في جملة: مهاجم يملك هذا الوصول يستطيع فعل هذا، فيحدث هذا الضرر. لا تبدأ بالحلول بعد، بل دوّن أفكارها.
  4. قرّر (15 دقيقة). قدّر كل تهديد من حيث الاحتمال والأثر (عالٍ أو متوسط أو منخفض)، ثم اختر تخفيفه أو إزالته أو نقله أو قبوله. والقبول مقبول حين يتولى أحدهم القرار كتابةً.
  5. اختم (10 دقائق). وزّع المهام، واسأل السؤال الرابع، ودوّن ما لم تغطّه.

حوّل النتائج إلى مهام

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

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

متى تكرر النمذجة

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

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

كيف تختلف عن اختبار الاختراق

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

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

أسئلة تصلنا كثيرًا

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

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

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

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

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

تابع الاستكشاف

هل أنت مستعد لبناء منتج آمن؟

حدّثنا عن منتجك، وسنرد بخطة واضحة.

ابدأ مشروعك

نود استخدام Microsoft Clarity لفهم كيف يستخدم الزوار الموقع حتى نحسّنه. يضع ملفات ارتباط ويبقى متوقفًا ما لم توافق. سياسة ملفات الارتباط