الوحدة 2: متطلبات البرمجيات الآمنة

Secure Software Requirements

أهداف الوحدة

  • فهم مصادر ومتطلبات الأمان في نظم البرمجيات.
  • التعرف على كيفية دمج الأمان في مرحلة التحليل.
  • تطبيق نماذج تحليل المخاطر وأدوات تتبع المتطلبات الأمنية.

🔍 1. ما هي متطلبات البرمجيات الآمنة؟

قبل كتابة أول سطر من الكود، يجب أن نعرف ما يجب أن يحققه النظام من حيث الحماية. متطلبات البرمجيات الآمنة (Security Requirements) هي وصف لما يجب أن يفعله النظام لمنع، اكتشاف، أو الاستجابة للتهديدات.

مثال: "يجب أن يُسمح بالوصول إلى صفحة لوحة التحكم فقط للمستخدمين الذين لديهم صلاحية المسؤول (admin)."


📌 2. مصادر المتطلبات الأمنية

✅ مصادر رئيسية تشمل:

  • السياسات التنظيمية (Security Policies): مثل سياسة الخصوصية أو إدارة الحسابات.
  • التشريعات والمعايير (Compliance Requirements): مثل GDPR أو ISO/IEC 27001.
  • نماذج التهديدات: الناتجة عن تحليل المخاطر.
  • المستخدمون وبيئة التشغيل: هل المستخدمون مبتدئون؟ هل النظام عام أم خاص؟

🏛️ 3. تحليل السياسات الأمنية

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

  • ما البيانات التي تحتاج حماية؟
  • من يُسمح له بالوصول؟
  • ماذا يحدث عند محاولة دخول غير مصرح به؟

مرجع مفيد: SANS Security Policy Project


🧱 4. تصنيف البيانات والمستخدمين

لتطبيق الحماية بشكل فعال، يجب تصنيف كل من:

  • البيانات (Data Classification): مثل: معلومات عامة، حساسة، سرية.
  • المستخدمين (User Roles): مثل: مستخدم، مدير، مشرف نظام.

ثم يُحدد من يحق له الوصول إلى ماذا باستخدام ما يسمى بـ مصفوفة التحكم في الوصول (Access Control Matrix).

البيانات/المستخدم مستخدم عادي مشرف
تقرير مبيعات عرض فقط تحرير
إعدادات النظام ممنوع تحرير

📊 5. مصفوفة تتبع المتطلبات (Requirements Traceability Matrix - RTM)

RTM هي أداة تُستخدم لتوثيق وتتبع العلاقة بين المتطلبات الأمنية ومخرجات المشروع.

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

قالب جاهز لـ RTM: RTM Template


🧠 6. دمج متطلبات الأمان أثناء التحليل الأولي

من الخطأ الشائع تأجيل متطلبات الأمان حتى مرحلة متقدمة من المشروع. يجب دمج الأمن في وقت مبكر من التحليل بجانب المتطلبات الوظيفية، مثل:

  • حماية واجهات البرمجة (APIs).
  • فرض الحد من المحاولات الفاشلة لتسجيل الدخول.
  • تتبع الأحداث الحساسة (Auditing).

"كلما تم دمج الأمان أبكر في المشروع، قلّت الكلفة وزادت الفعالية."


⚠️ 7. نماذج تحليل المخاطر

تحليل المخاطر يُستخدم لتحديد ما الذي يمكن أن يُستغل في النظام، ويُحدد الأولويات. أشهر النماذج:

STRIDE (من Microsoft)

يحلل:

  • S: انتحال الهوية (Spoofing)
  • T: التلاعب بالبيانات (Tampering)
  • R: الإنكار (Repudiation)
  • I: إفشاء المعلومات (Information Disclosure)
  • D: الحرمان من الخدمة (DoS)
  • E: تصعيد الامتيازات (Elevation of Privilege)

DREAD (لتقييم الخطورة)

  • Damage Potential
  • Reproducibility
  • Exploitability
  • Affected Users
  • Discoverability

دليل مبسط من Microsoft: Microsoft Threat Modeling Tool

أداة STRIDE مجانية من OWASP: OWASP Threat Modeling


💡 أمثلة تطبيقية

"يجب تسجيل جميع محاولات الدخول غير الناجحة والناجحة، والاحتفاظ بالسجلات لمدة لا تقل عن 90 يومًا."

"يُمنع المستخدمون غير المعتمدين من تحميل أو حذف ملفات في النظام."


التقييم الذاتي

  1. ما الفرق بين متطلبات الأمان ومتطلبات الأداء؟
  2. لماذا يُعد تصنيف البيانات أمرًا مهمًا؟
  3. ما الفائدة من استخدام STRIDE في المشاريع؟

مواد إثرائية


ملخص الوحدة

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

الخطوة التالية في دورة تطوير البرمجيات الآمنة هي التصميم الأمني — فكيف نبني تطبيقًا يقلل الثغرات منذ البداية؟ سنتناول ذلك في الوحدة الثالثة.