أمان الويب / الأساسي: عقود الثقة والهوية في الويب / الدرس 2
نمذجة التهديدات ومتطلبات الويب القابلة للتحقق
اربط أصول الميزة وتدفقاتها بمتطلبات دفاعية دقيقة وأدلة.
في هذه الصفحة
أهداف الدرس
- نمذج الفاعلين والتدفقات والأصول وافتراضات الثقة.
- رقّم المتطلبات وميّز الخطة من النتيجة المتحققة.
حدد مهمة مستخدم واحدة
تبدأ نمذجة التهديدات بنتيجة خدمة والضرر المهم، لا بقائمة أسماء هجمات مثيرة. ميّز في بوابة الملاحظات الخيالية قراءة العام وتحرير الملاحظة المكلف بها وتصدير الخاص واسترداد الحساب. حدد الأشخاص والتخزين وشيفرة المتصفح والخدمات الخلفية والاعتماديات الخارجية. سجل من يتحكم في كل جزء وأين تعبر البيانات أو السلطة حداً. قد يبدو رسم المكونات كاملاً مع إغفال أداة دعم أو نسخة تصدير إن غابت هذه القرارات. أظهر الافتراضات واشرك من يفهم التطوير والتشغيل.
صف مسار فشل معقولاً وعاقبته
اسأل كيف يمكن للحد أن يسمح بكشف المعلومات أو تعديل غير مأذون أو تعطيل الخدمة أو إساءة استخدام عملية مشروعة. شمل الأخطاء والصلاحيات القديمة وفشل الاعتماديات مع السلوك المتعمد. يسمي السيناريو المفيد الشروط السابقة والضوابط القائمة وعدم اليقين. لا تعتبر الشبكة الداخلية أو الموظف الموثوق سبباً لإلغاء إذن المورد. رتب وفق العاقبة والتعرض والدليل وصعوبة التعافي، بدلاً من مساواة جميع الخانات. تستخدم الدورة تدفقات خيالية سليمة ولا تكتشف أو تختبر أهدافاً.
اكتب عقد الحد كبيانات قابلة للفحص
يفصل السجل النقل المشفر وسياق الهوية ونطاق التصدير والاحتفاظ اللاحق. إنه مخطط تخطيط محلي، لا سياسة مزود أو معرّف ASVS. يربط التنفيذ الحقيقي كل مطلب بالشيفرة والإعداد ودليل التشغيل. تتبع النسخة بعد خروجها من التطبيق: وصول المستلم والتنزيل وتعامل الدعم والحذف ما زالت مهمة. سمّ غير المتحقق بصدق ولا تصف الرسم بأنه آمن. تفيد كتابة المطلب لأنها تخلق سؤالاً محدداً يمكن فحصه، لا لأن كتابته تفرض الإجابة.
{
"flow": "private-note-export",
"boundary": "browser-to-export-service",
"requirements": ["verified-session", "scoped-export-permission", "protected-transport", "owned-retention"],
"ownerRole": "portal-maintainer",
"evidenceState": "planned"
}
لا يمنح الملف إذناً أو يستدعي خدمة. يسمي أربعة متطلبات مستقلة ما زال تنفيذها بحاجة مراجعة. المعرّفات وسوم تعليمية محلية وليست أرقام متطلبات معيارية.
اربط كل مطلب مهم بفحص محدود
يحدد المطلب السلوك المطلوب والمالك وطريقة التحقق وحدودها. شمل الأفعال المرفوضة ومعالجة الفشل، لا المستخدم الناجح فقط. يوفر ASVS 5.0.0 متطلبات تحقق مرقمة، بينما يمثل Top 10 2025 مادة وعي، ولا يمثل أيهما درجة جودة آلية عامة. سجل الإصدار المختار وربطه دون اختراع أرقام معيارية. يجد فحص الاكتمال مرجع دليل غائباً في سجلات خيالية. وحتى الوسم الممتلئ يحتاج مراجعة النتيجة والنطاق والحداثة وهوية الحزمة؛ فاكتمال الوصف لا يثبت عمل الدفاع.
requirements = [
{"id": "LOCAL-EXPORT-SCOPE", "owner": "service-owner", "evidence": "scope-cases"},
{"id": "LOCAL-EXPORT-RETENTION", "owner": "service-owner", "evidence": ""},
]
missing = [item["id"] for item in requirements if not item["owner"] or not item["evidence"]]
assert missing == ["LOCAL-EXPORT-RETENTION"]
يستخدم سجلات مخترعة في الذاكرة فقط ويحدد التحقق فجوة الاحتفاظ. لا يفحص شيفرة أو يشغل فاحصاً أو يقيم ضبط ASVS أو يفوض إصداراً.
راجع النموذج عند تغير الميزة
قد يغير استرداد هوية جديد أو معالج ملفات أو مشاركة عامة أو مورد خارجي الخطر دون تغيير المخطط الأساسي للبيانات. راجع التدفقات والمتطلبات والاختبارات والسجل والتعافي المتأثرة معاً. سجل الاستثناء المقبول بنطاق ومالك وانتهاء، وأعد الافتراضات بعد الحوادث والتمارين. ليست الوثيقة المكتملة شهادة أو دليلاً على دراسة جميع التهديدات. اجعل النموذج صغيراً للصيانة ودقيقاً للتنفيذ، بحيث يفسر المراجع المحمي وآلية حمايته والمتحقق منه والمجهول الذي بقي لدى مسؤول محدد.
الأخطاء الشائعة وإصلاحها
يسمى الرسم دفاعاً متحققاً
- لماذا يحدث؟
- اختلط المخطط بدليل التنفيذ.
- كيف تصلحه؟
- أرفق النطاق والنتيجة والحد من الفحص المناسب.
- كيف تتجنب تكراره؟
- افصل المخطط والمتحقق.
ينتهي النموذج عند الاتصال المشفر
- لماذا يحدث؟
- أغفلت الهوية والإذن والنسخ اللاحقة.
- كيف تصلحه؟
- اتبع مسار البيانات والسلطة كاملاً.
- كيف تتجنب تكراره؟
- راجع كل عبور ثقة مهم.
يتغير معنى رقم مطلب بلا إصدار
- لماذا يحدث؟
- عومل المرجع المتغير كثابت.
- كيف تصلحه؟
- ثبت الإصدار وراجع الربط.
- كيف تتجنب تكراره؟
- احفظ الإصدار مع الدليل.
اختبر فهمك
1. يبدأ مورد معالجة التصدير الخاص. ماذا يتغير؟
اعرض الحل المشروح
أضف المتلقي والنقل والتخزين والهوية والاحتفاظ ومسؤوليات الفشل والتعافي. حدد الضوابط التي يملكها المورد وما يجب أن تتحققه البوابة بنفسها. ثبات مخطط التطبيق لا يعني ثبات حدود الثقة أو مسؤوليات النسخة التي غادرت الخدمة.
2. يحوي السجل اسم اختبار. هل يغلق السيناريو؟
اعرض الحل المشروح
لا يغلق قبل مراجعة النتيجة الفعلية والمرشح والبيئة والتغطية. قد يشير الاسم إلى اختبار غير منفذ أو غير مرتبط بالمطلب. أبقِ الفجوة ظاهرة حتى يسند الدليل الادعاء المقصود، ولا تستبدل جودة الدليل بمجرد وجود مرجع.
أهم ما تعلمته
- تربط النمذجة الضرر بمطالب مملوكة.
- يدعم الإصدار والدليل الفعلي المراجعة.
- يدخل التغيير والنسخ اللاحقة بالنموذج.