تطوير البرمجيات الآمن / أساسي: النتائج والنماذج والقرارات / الدرس 3
كتابة متطلبات أمن قابلة للتحقق
تحويل اهتمام أمني عام إلى قاعدة محددة وسلوك رفض وخطة دليل.
في هذه الصفحة
أهداف الدرس
- تحديد الفاعل والمورد والإجراء والشرط والنتيجة المحمية.
- استخدام المعيار مرجعا ذا إصدار دون اختراع أرقام متطلبات.
استبدال الصفات بقواعد قابلة للرصد
لا تعطي عبارة «يجب أن يكون التصدير آمنا» التنفيذ والمراجعة قاعدة قبول مشتركة. يصوغ المتطلب المفيد القاعدة هكذا: يجوز للمنظم تصدير تسجيلات ورشة مسندة إليه فقط، وبالحقول المسموحة، ولا ينشئ الرفض ملف تصدير. يسمي ذلك الفاعل والمورد والإجراء والشرط والنتيجة. أضف افتراضات دورة الحياة، مثل تغير الإسناد قبل التنزيل، عندما تكون ذات صلة. افصل القاعدة عن اسم مساعد في إطار عمل حتى يستطيع تنفيذ آخر تحقيق الخاصية نفسها. ينبغي أن يشرح المتطلب ما يجب ثباته دون فرض تفاصيل داخلية غير لازمة.
جعل القاعدة قابلة للمراجعة كبيانات
يمكن لسجل متطلب صغير أن يربط السياسة بالملاحظات المخطط لجمعها. يتضمن المثال الأول حالتي قبول ورفض، ويسمي صراحة الحالة التي يجب ألا تتغير. المعرفات هنا تدريبية، وليست أرقام متطلبات ASVS أوSSDF. عند اعتماد معيار منشور، ثبت إصداره واستشهد بدقة بنص المتطلب أو معرفه الفعلي في سجل المشروع المعتمد. خصص انطباقه واحفظ المبرر. لا تقدم علامة إنجاز بجانب ضابط غير متعلق سوى مظهر إداري؛ فهي لا تثبت دراسة حد الإفصاح الفعلي في المنتج.
{"id":"LAB-EXPORT-01","rule":"assigned-organizer-may-export-permitted-fields","allowedCase":"assigned-organizer","deniedCase":"different-organizer","denialInvariant":"no-export-artifact","evidenceBoundary":"handler-and-owned-store-fixture","status":"planned"}
هذا السجل غير التنفيذي خطة متطلب. معرف LAB محلي للمساق. لا يشهد مطابقة ولا ينفذ قبولاً ولا يثبت تكامل المعالج والتخزين.
تحديد الرفض بدقة القبول
يحتاج الطلب المرفوض إلى استجابة عامة موثقة وإلى حفظ الحالة المحمية. قرر هل تكشف السياسة العامة وجود الورشة، وافصل التفاصيل التشخيصية عن الخطأ المعروض للمستخدم. ينمذج البرنامج المحلي رفضا لا ينشئ ملفا، ويفحص الأمرين. قد يتضمن التنفيذ الحقيقي حدث تدقيق معتمدا، لذلك ميز تعديل حالة العمل المحمية من التسجيل الثانوي المتوقع. قد يفوت متطلب يكتفي بعبارة أعد رفضا وظيفة أو إشعارا أنشئ قبل فحص الإذن. ارصد الآثار التي يفترض أن تحميها القاعدة فعلا.
before = {"exports": [], "notifications": []}
after = {"exports": [], "notifications": []}
response = {"category": "NOT_PERMITTED"}
assert response["category"] == "NOT_PERMITTED"
assert after == before
assert len(after["exports"]) == 0
print("denial contract observation checked")
denial contract observation checked
يقيم البرنامج الكامل ملاحظة مختلقة معلنة ولا ينفذ صلاحية أو تخزينا. الفئة علامة آلية خيالية ثابتة، وتخص خريطة الإفصاح عقد الواجهة المختار.
إسناد وسيلة التحقق المناسبة
تحتاج المتطلبات المختلفة إلى أنواع مختلفة من الأدلة. يمكن نمذجة قاعدة سياسة نقية ببيانات محلية؛ ويحتاج تكامل الوسيط إلى اختبار مكون معتمد؛ ويحتاج إجراء تعاف بشري إلى تمرين وقرار مراجعين. لا تشترط تحويل كل متطلب إلى اختبار وحدة، ولا تعتبر وثيقة السياسة دليلا على الإنفاذ أثناء التشغيل. حدد ما ترصده، وما تستبدله، وما يبقى غير مختبر. أدرج حالة قبول مشروعة على الأقل، حتى لا يحقق دفاع يرفض الجميع المتطلب عرضيا. تدعم الدقة التحقق المفيد، لا مجرد زيادة عدد الاختبارات.
صيانة المتطلبات عند تغير السلوك
قد تبطل وجهة تصدير جديدة أو نموذج مستأجر جديد أو عمل خلفي جديد خطة قبول قديمة. راجع المتطلبات مع تغيير التصميم، لا بعد انتهاء التنفيذ. احتفظ بالسلوك القديم المدعوم حتى يغيره قرار انتقال صريح. سجل الاستثناء المعتمد بسببه ومالكه المسؤول ونطاقه وضوابطه التعويضية المبررة ونقطة إعادة مراجعته. الاستثناء ليس اختبارا ناجحا، ويجب أن يبقى ظاهرا في دليل الإصدار. تفيد مجموعة صغيرة محدثة من القواعد المناسبة أكثر من معيار كبير منسوخ لا يستطيع أحد شرح انطباقه.
الأخطاء الشائعة وإصلاحها
يقول المتطلب استخدم أفضل الممارسات فقط
- لماذا يحدث؟
- لا يحدد نتيجة أو حدا قابلا للرصد.
- كيف تصلحه؟
- سم الفاعل والإجراء والمورد والشرط والنتيجة.
- كيف تتجنب تكراره؟
- راجع القبول والرفض قبل التنفيذ.
يرضي رفض كل منظم الاختبار
- لماذا يحدث؟
- توجد حالات رفض فقط.
- كيف تصلحه؟
- أضف نجاح منظم مسند بحقول دقيقة.
- كيف تتجنب تكراره؟
- اجمع دليلي القبول والرفض للسياسات المهمة.
ينسب رقم مختلق إلى ASVS
- لماذا يحدث؟
- يخلط المعرف المحلي بمتطلب منشور.
- كيف تصلحه؟
- سم المعرف المحلي واستشهد بالمرجع الفعلي ذي الإصدار.
- كيف تتجنب تكراره؟
- افحص ربط المعايير في المراجعة.
اختبر فهمك
1. أعد صياغة «يجب أن تحمي الصادرات الخصوصية» كقاعدة قابلة للاختبار.
اعرض الحل المشروح
في الخدمة الخيالية، لا يتلقى إسقاط التسجيلات المعتمد إلا منظم مسند، ولا ينشئ الطلب المرفوض تصديرا أو إشعارا. أضف بيانات لمنظم مسند وآخر مختلف، وتوقعات حقول دقيقة، وحد التنفيذ الفعلي المقصود بالتحقق. افصل متطلب الاحتفاظ إذا احتاج نوعا آخر من الأدلة.
2. خطط لفحص تكامل التخزين لكنه لم ينفذ. هل يمكن تعليم المتطلب بأنه متحقق؟
اعرض الحل المشروح
لا. سجل دليل السياسة المحلي مستقلا، وأبق حد التخزين في حالة انتظار. قد يملك المتطلب دليلا جزئيا دون أن يتحقق كاملا. يجوز لمسؤول الإصدار تقييم الخطر وفق السياسة المعتمدة، لكن التقرير لا يجوز أن يحول غياب الملاحظة إلى نجاح.
أهم ما تعلمته
- تربط القواعد المرصودة التصميم والتحقق.
- يشمل الرفض الحالة المحمية وآثارها.
- تحتاج المعايير المنشورة ربطا دقيقا ذا إصدار.