​​​​

 Secure coding standard (معيار التطوير الآمن للتطبيقات)

- التطوير الآمن للتطبيقات

الهدف :توفير متطلبات الأمن السيبراني لضمان حماية أنشطة تطوير البرمجيات والتطبيقات وضوابط الأمن السيبراني لحماية البرمجيات التي يتم تطويرها.

​المخاطر المحتملة : يمكن أن يؤدي تطوير التطبيقات غير الآمن إلى إيجاد ثغرات أمنية يمكن استغلالها لتهديد سرية بيانات جامعة الإمام محمد بن سعود الإسلامية وسلامتها وتوافرها، والتأثير في سير عملها.

الإجراءات المطلوبة:

      • تطوير عملية دورة حياة تطوير البرمجيات الآمنة (SSDLC) وتطبيقها.
      • تطوير منهجية وعملية "التطوير والأمن والعمليات" (DevSecOps) واتباعها.
      • ضمان توفير متطلبات الأمن السيبراني في المراحل الأولية من تطوير البرمجيات ودمجها في دورة حياة تطوير البرمجيات الآمنة (SSDLC)
      • تطوير آلية تلقائية في مراحل اختبار تطوير البرمجيات اتجاه البرمجيات والاختراقات الضارة المعروفة.
      • يجب استخدام الطرق المختلفة للاختبارات الأمنية في مراحل تطوير البرمجيات مثل (طريقة التشويش، اختبار الصندوق الأسود) وغيرها.
      • تصميم وإعداد بيئة آمنة لغايات التطوير والاختبار وضمان الجودة.
      • تطبيق إرشادات تطوير التطبيقات الآمن وفقاً للجدول) أ
      • يجب استخدام لغة ذاكرة آمنة ويجب اختبار التطبيق ضد هجمات اختراقات الذاكرة
      • تطبيق إجراءات التخفيف على أعلى 10 مخاطر تهدد أمن تطبيقات الويب وفقاً للمشروع المفتوح لأمن تطبيقات الويب (OWASP) فيما يخص الأنظمة والتطبيقات الحساسة.
      • تطبيق آليات لتقييد صلاحيات التعديل على الشفرة المصدرية أو بيانات بيئات الإنتاج.
      • إلزام الموردين الخارجيين بالالتزام بسياسات ومعايير الأمن السيبراني المعتمدة في جامعة الإمام محمد بن سعود الإسلامية.
      • استخدام المصادر الحديثة والموثوق بها والمرخصة فقط لأدوات تطوير البرمجيات والمكتبات والمكونات.
      • ضمان تطبيق ضوابط حماية تطبيقات الويب وفقاً لسياسة ومعيار حماية تطبيقات الويب المعتمدين في جامعة الإمام محمد بن سعود الإسلامية.
      • استخدام خوارزميات تشفير موحدة ومراجعة بدقة وفقاً للمعايير والإجراءات ذات العلاقة.
      • التحقق من أن إصدارات كافة البرمجيات التي تم شراؤها من خارج جامعة الإمام محمد بن سعود الإسلامية مدعومة من المطور ومحصنة بصورة ملائمة بناءً على التوصيات الأمنية للمطور.
      • تدريب جميع العاملين في تطوير البرمجيات على كتابة الشفرات المصدرية المناسبة للغة البرمجة وبيئة التطوير المستخدمة.
      • يجب التأكد من أن جميع العاملين داخل أو خارج جامعة الإمام محمد بن سعود الإسلامية لمن له علاقة في دورة حياة تطوير البرمجيات على استعداد لتنفيذ مهامهم ومسؤولياتهم خلال دورة حياة تطوير التطبيق.
      • جامعة الإمام محمد بن سعود الإسلامية يجب أن تطبق آليات الحماية والتحصين على أجهزة مطوري التطبيقات مثل (الأجهزة المحمولة لمصممي التطبيقات، مطوري التطبيقات، مختبري التطبيقات، الخ) لتنفيذ المهام التطويرية باستخدام المنهجية القائمة على المخاطر
      • يجب على جامعة الإمام محمد بن سعود الإسلامية ضمان التغييرات الآمنة المصرح بها للشفرة لتقييد مصادر الوصول لبيئة التطوير وتفعيل خاصية تسجيل الأحداث والتغييرات.

-مستودع الشفرة المصدرية

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

    • استخدام مستودع شفرة مصدرية آمن يمتاز بتطبيق إجراءات التحقق من الهوية والإصدار والرقابة وتسجيل الدخول.
    • تطبيق إجراءات منع وصول أي شخص إلى الشفرة المصدرية ومستودع الشفرة المصدرية باستثناء مطوري التطبيقات والجهات المسؤولة عنها عند الحاجة.
    • استخدام خطة ترقيم موحدة لضوابط الإصدار بحيث تبين تاريخ تثبيت الإصدارات المحدثة من البرمجيات.
    • أرشفة الإصدارات القديمة من الشفرة المصدرية دورياً.
    • فصل الشفرة المصدرية للتطبيقات قيد التطوير عن الشفرة المصدرية للتطبيقات في بيئة الإنتاج.
    • أرشفة الشفرة المصدرية للتطبيقات التي انتهت صلاحيتها بحيث يمكن استرجاعها عند الحاجة.
    • الحصول على نسخة من الشفرة المصدرية لكافة التطبيقات التي طورتها أطراف خارجية لـجامعة الإمام محمد بن سعود الإسلامية وتخزينها في مستودع الشفرة المصدرية.
    • تطوير معايير تحصين وأمن الحاويات والنسخ الافتراضية للنظام (Docker) وإرشادات الممارسات الأمنية المثلى وتطبيقها.
    • تثبيت آليات إدارة الأسرار وذلك من أجل إدارة الأسرار والمفاتيح والشهادات ومنع تخزين الأسرار في الحاويات.
    • استخدام نسخ الحاويات من مصادر موثوقة أو معتمدة.
    • استخدام سجل حاويات خاص لضمان تنزيل نسخ الحاويات المعتمدة والآمنة فقط على النظام بحيث يمكن فحص كل نسخة بحثاً عن الثغرات المعروفة والشائعة.
    • عدم إدارة الحاويات من خلال حسابات المستخدمين عالية الصلاحية والامتيازات

-مراجعة واختبار الشفرة المصدرية 

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


    • استخدام إجراء عملية مراجعة الشفرة المصدرية بانتظام لتطبيقات الويب المطورة داخلياً.
    • تطبيق أدوات التحليل الثابتة والديناميكية للتحقق من الالتزام بممارسات تطوير التطبيقات الآمن بالنسبة للبرمجيات المطورة داخلياً.
    • القيام بمراجعة أمنية الشفرة المصدرية بانتظام لكافة التطبيقات المطورة لـجامعة الإمام محمد بن سعود الإسلامية من قبل أطراف خارجية.
    • مراجعة واعتماد الضوابط الأمنية للتطبيقات المطورة داخلياً قبل تثبيتها في بيئة الإنتاج.
    • إعادة تقييم التطبيقات الحالية المطورة داخلياً وإعادة اعتمادها بعد إجراء تغيير رئيسي عليها أو بعد مرور فترة زمنية محددة.
    • إجراء تقييم المخاطر لكافة التطبيقات قيد التطوير أو التي يتم شراؤها لتحديد الضوابط المطلوبة لتقليل مخاطر التطبيقات إلى مستويات مقبولة قبل التثبيت في بيئة الإنتاج (يرجى الرجوع إلى سياسة إدارة المخاطر المعتمدة في جامعة الإمام محمد بن سعود الإسلامية).
    • إجراء اختبار الالتزام بالأمن السيبراني للبرمجيات بناءً على سياسات الأمن السيبراني المعتمدة في جامعة الإمام محمد بن سعود الإسلامية قبل التثبيت في بيئة الإنتاج.
    • استخدام معيار التحقق من حماية التطبيقات الصادر عن المشروع المفتوح لأمن تطبيقات الويب (OWASP) كدليل إرشادي لتحديد المتطلبات الأمنية وعمل حالات اختبار لمراجعة الأنظمة والتطبيقات الحساسة.
    • إجراء مراجعة لإعدادات البرمجيات بما في ذلك مراجعة الإعدادات والتحصين وحزم التحديثات قبل التثبيت في بيئة الإنتاج.
    • إجراء اختبارات الأمن السيبراني، بما في ذلك تقييم الثغرات واختبار الاختراق ومراجعة تطوير التطبيقات الآمن، قبل التثبيت في بيئة الإنتاج.
    • إجراء اختبارات الأمن السيبراني، بما في ذلك تقييم الثغرات واختبار الاختراق، بعد التثبيت في بيئة الإنتاج.
    • معالجة كافة المشاكل الأمنية في التطبيقات المطورة التي يتم اكتشافها خلال مراجعة تطوير التطبيقات الآمن قبل التثبيت في بيئة الإنتاج.
    • اختبار التطبيقات المطورة لضمان تطبيق ضوابط فصل المهام بالصورة الملائمة.
    • إلغاء وحذف حسابات وبيانات الاختبار الموجودة في بيئة غير بيئة الإنتاج قبل نقل التطبيقات إلى بيئة الإنتاج.
    • فصل بيئة الاختبار والتطوير منطقياً عن بيئة الإنتاج والبيئات الأخرى باستخدام محددات الشبكة عن طريق إعداد وتثبيت قوائم التحكّم بالوصول (ACL) والسياسات الأمنية على جدران الحماية.
    • إجراء مراجعة النظير للشفرة المصدرية من قبل مطور لم يشارك في كتابة أي شفرة قبل التثبيت في بيئة الإنتاج في جامعة الإمام محمد بن سعود الإسلامية.
    • استخدام الشفرة المصدرية وأدوات تقييم أمن البرمجيات المعتمدة والمرخصة.
    • إجراء الاختبارات الأمنية للتطبيقات المطورة في كافة مراحل اختبار دورة حياة تطوير البرمجيات (SDLC)، بما في ذلك الاختبارات غير الوظيفية، واختبار الوحدات (UT) واختبار تكامل الأنظمة (SIT)، واختبار قبول المستخدم (UAT).
    • استحداث عملية لإدارة العيوب البرمجية في البرمجيات والثغرات والمشكلات الأمنية ووضع سجل خاص بها ومتابعتهما.
    • إدراج الاختبارات كجزء من عمليات التحسين المستمر والتطوير المستمر (CI/CD).​


- إرشادات تطوير التطبيقات الآمن 


A1:التحكم بالوصول 

(OWASP: A1:2021 - إجراءات التحكم بالوصول غير الآمنة)


      • 1-A1  : التحقق من أن المستخدمين يمكنهم الوصول فقط إلى الوظائف أو الخدمات الآمنة التي يملكون تصاريح وصلاحيات خاصة لها.
      • A1-2  : التحقق من أن المستخدمين يمكنهم الوصول فقط إلى العناوين الآمنة (Secured URLs) التي يملكون تصاريح وصلاحيات خاصة لها.
      • A1-3  : التحقق من أن المستخدمين يمكنهم الوصول فقط إلى ملفات البيانات الآمنة التي يملكون تصاريح وصلاحيات خاصة لها.
      • A1-4  : التحقق من عدم تجاوز ضوابط الوصول.
      • A1-5  : التحقق من أن مرجعيات العناصر المباشرة محمية بحيث يمكن الوصول فقط إلى العناصر المصرح بها لكل مستخدم.
      • A1-6  : التحقق من إلغاء تفعيل تصفح الدليل (Directory Browsing) إلا إذا كان ذلك مطلوباً.
      • A1-7  : التحقق من أن المستخدم يمكنه الوصول فقط إلى المعلومات المحمية التي يملك تصاريح وصلاحيات خاصة لها (على سبيل المثال، من خلال تطبيق ضوابط لحماية مرجعيات الكائنات من التلاعب المباشر والوصول غير المصرح به إلى البيانات).
      • A1-8   : التحقق من إخفاق ضوابط الوصول بصورة آمنة.
      • A1-9    : التحقق من أن نفس قواعد التحكم بالوصول المتضمنة في طبقة العرض مطبقة على الخادم بحسب دور المستخدم، بحيث لا يمكن إعادة تفعيل الضوابط والمعايير أو إعادة إضافتها من مستخدمين يمتلكون مزايا وصلاحيات أعلى.
      • A1-10   : التحقق من أن كافة خصائص المستخدمين والبيانات ومعلومات السياسة المستخدمة من قبل ضوابط الوصول لا يمكن التلاعب بها من قبل المستخدمين إلا إذا كان مصرحاً لهم بذلك تحديداً.
      • A1-11   : التحقق من أن كافة ضوابط الوصول فعالة من جهة الخادم.
      • A1-12    : التحقق من أن قرارات التحكم بالوصول يمكن تسجيلها وأن كافة القرارات غير الناجحة قد تم تسجيلها.
      • A1-13    : التحقق من أن التطبيق أو إطار العمل يصدر رموزاً تعريفية عشوائية معقدة مضادة لتزوير الطلب عبر المواقع Cross-Site Request Forgery "CSRF"))، وتكون هذه الرموز خاصة بالمستخدم باعتبارها جزءاً من كافة المعاملات عالية القيمة أو الوصول إلى المعلومات المحمية، وأن التطبيق يتحقق من وجود هذه الرموز التعريفية بالقيمة الملائمة للمستخدم الحالي عند معالجة هذه الطلبات.
      • A1-14  : الحماية التراكمية للتحكم بالوصول- التحقق من أن النظام يستطيع توفير الحماية من الوصول التراكمي أو المستمر للوظائف المحمية أو المصادر أو البيانات، وذلك من خلال استخدام ضابط مصادر (Resource Governor) على سبيل المثال، للحد من عدد حالات التسجيل لكل ساعة أو منع مستخدم فردي من سحب بيانات قاعدة البيانات بأكملها.
      • A1-15   : التحقق من وجود آلية مركزية (بما في ذلك المكتبات التي تستدعي خدمات تصاريح وصلاحيات خارجية) للتحكم بالوصول إلى كل نوع من المصادر المحمية.

 

      • A1-16    : التحقق من الفصل بين المنطق الذي يتمتع بمزايا وصلاحيات عن شفرات التطبيق الأخرى.
      • A1-17     : تطبيق ضوابط الوصول الملائمة إلى المعلومات المحمية المخزنة على الخادم. وتشمل هذه المعلومات البيانات المخزنة والملفات المؤقتة والبيانات التي يمكن الوصول إليها فقط من قبل مستخدمين نظام محددين.
      • A1-18      : التحقق من أن حسابات الخدمة أو الحسابات التي تدعم الاتصالات من الأنظمة الخارجية أو إليها تمتلك الحد الأدنى من الصلاحيات والامتيازات.
      • A1-19       : التحقق من تطبيق تدقيق الحسابات وإلغاء تفعيل الحسابات غير المستخدمة (على سبيل المثال، بعد مرور أكثر من 30 يوماً من تاريخ انتهاء صلاحية كلمة مرور الحساب، حساب غير مستخدم).
      • A1-20       : في حال السماح بالجلسات الطويلة المصادق عليها، يجب إعادة التحقق دورياً من تصاريح وصلاحيات المستخدم لضمان عدم تغير مزاياه، وفي حال تغيرها، يجب تسجيل خروج المستخدم وإجباره على إجراء عملية إعادة التحقق من الهوية (مثل الرسائل النصية، أو رموز تعريفية، أو غيرها (.
      • A1-21       : التحقق من أن التطبيق يدعم إلغاء تفعيل الحسابات وإنهاء الجلسات عند توقف التصاريح والصلاحيات (على سبيل المثال، عند حدوث تغيير في الدور، أو في حالة التوظيف، أو إجراءات الأعمال، أو غيرها).، employment status, business process, etc.).



A2;التشفير (OWASP: A2:2021 – فشل التشفير)


      • A2-1        : التحقق من أن كافة دالات التشفير المستخدمة لحماية الأسرار من مستخدم التطبيق مطبقة على الخادم.
      • A2-2        : التحقق من أن كافة وحدات التشفير تفشل بصورة آمنة.
      • A2-3        : التحقق من حماية أي أسرار رئيسية من الوصول غير المصرح به (السر الرئيسي هو بيانات اعتماد التطبيق المخزنة كنص غير مشفر على القرص والتي تستخدم لحماية الوصول إلى معلومات الإعدادات الأمنية).
      • A2-4        :  ​​التحقق من أن كافة الأرقام العشوائية، وأسماء الملفات العشوائية، والمعرفات الموحدة GUIDs))، وسلاسل الحروف العشوائية ((Strings صادرة من مولد الأرقام العشوائية المعتمد لنموذج التشفير، وذلك عندما يكون الهدف من هذه القيم العشوائية هو جعل الجهة المهاجمة غير قادرة على تخمينها.
      • A2-5        : التحقق من أن نماذج التشفير المستخدمة في التطبيق قد تم التحقق منها وفقاً للسياسات والإجراءات ذات العلاقة.
      • A2-6       : التحقق من أن نماذج التشفير تعمل بنظامها المعتمد وفقاً للسياسات والإجراءات ذات العلاقة.

      • A2-7       : التحقق من وجود سياسة صريحة حول كيفية إدارة مفاتيح التشفير (مثل كيفية إصدارها وتوزيعها وإلغائها وانتهاء صلاحيتها) والتحقق من تطبيق هذه السياسة بصورة ملائمة.  
      • A2-8       : التحقق من وجود عدم الإنكار (Non-Repudiation) من خلال التشفير (التوقيع الرقمي) للمعاملات الحساسة مثل (المعاملات المالية والتجارة الإلكترونية والسجلات، وغيرها).
      • A2-9      : التحقق من حماية كافة مفاتيح التشفير بصورة ملائمة. في حال تعرض المفتاح لانتهاك أمني، فإنه لا يمكن الوثوق به ويجب استبداله أو إلغاؤه.
      • A2-10      : التحقق من تشفير المعلومات القابلة لتحديد الهوية (PII) والمعلومات المحمية والبيانات المخزنة عندما لا تكون قيد الاستخدام.
      • A2-11    : التحقق من إلغاء تفعيل تخزين النماذج التي تتضمن معلومات محمية لدى العميل، بما في ذلك خصائص الإكمال التلقائي.
      • A2-12     : التحقق من إرسال كافة المعلومات المحمية إلى الخادم في متن رسالة بروتوكول نقل النص التشعبي (HTTP)، (أي منع استخدام معايير شريط العنوان "URL" لإرسال البيانات المحمية).
      • A2-13     : التحقق من أن كافة النسخ المخزنة أو المؤقتة للمعلومات المحمية المخزنة على الخادم محمية من الوصول غير المصرح به، والتأكد من حذف الملفات العاملة المؤقتة بمجرد انقضاء الحاجة لها.
      • A2-14     : إلغاء تفعيل التخزين أو حفظ النسخ المؤقتة للصفحات التي تتضمن معلومات محمية لدى العميل، والتحقق من أن هذه النسخ محمية من الوصول غير المصرح به أو مسحها أو إلغاء صلاحيتها بعد وصول المستخدم المصرح له إليها (يمكن استخدام "Cache-Control: no-store" مع ضابط عنوان بروتوكول نقل النص التشعبي "HTTP". "Pragma: no-cache"، وهو أقل فاعلية، ولكنه متوافق مع النسخ الأقدم "1.0" من بروتوكول نقل النص التشعبي "HTTP").
      • A2-15     : التحقق من تحديد قائمة بالمعلومات المحمية التي يعالجها التطبيق، والتأكد من وجود سياسة صريحة حول كيفية التحكم بالوصول إلى هذه المعلومات، ومتى يجب تشفيرها (أثناء عدم الاستخدام وأثناء النقل والاستخدام)، والتحقق من تطبيق هذه السياسة بصورة ملائمة.
      • A2-16     : التحقق من وجود طريقة لحذف كل أنواع المعلومات المحمية الموجودة في التطبيق عند نهاية فترة الاحتفاظ المطلوبة.
      • A2-17     : التحقق من أن التطبيق يقلل عدد المعايير المرسلة إلى الأنظمة غير الموثوقة مثل الحقول المخفية ومتغيرات Ajax"" وملفات الارتباط وقيم العناوين.
      • A-18       : التحقق من قدرة التطبيق على كشف الأرقام غير الطبيعية لطلبات المعلومات والتنبيه بشأنها، أو معالجة المعاملات عالية القيمة لدور المستخدم مثل سحب الشاشة، أو الاستخدام التلقائي لاستخلاص خدمات الويب، أو منع فقدان البيانات. على سبيل المثال، يجب ألا يكون المستخدم العادي قادراً على الوصول إلى أكثر من 5 سجلات في الساعة أو أكثر من 30 سجلاً في اليوم.
      • A2-19     : التحقق من أن بيانات الاعتماد التي يستخدمها التطبيق على الخادم، مثل اتصال قاعدة البيانات، وكلمة المرور، والمفاتيح السرية للتشفير، ليست مثبتة في الشفرة. ويجب تخزين أي بيانات اعتماد في ملف إعدادات منفصل على نظام موثوق وتشفيرها.
      • A2-20     : التحقق من أن خصائص الإكمال التلقائي غير مفعلة على النماذج باستثناء النماذج التي تتضمن معلومات محمية، بما في ذلك التحقق من الهوية.

 



A3 : اعتماد المدخلات (OWASP: A3:2021 - الحقن والإدخال) 
      • A3-1        : التحقق من أن بيئة التشغيل غير معرضة لتجاوز سعة المخزن المؤقت، وأن ضوابط الأمن تمنع تجاوز سعة المخزن المؤقت. 
      • A3-2        :  التحقق من أن بيئة التشغيل غير معرضة لحقن تعليمات الاستعلام البنيوية SQL) Injection)، وأن ضوابط الأمن تمنع حقن تعليمات الاستعلام البنيوية (SQL Injection).​
      • A3-3      :  استخدام ضوابط لتقييد تعليمات الاستعلام البنيوية (SQL) مثل (LIMIT) للحماية والتقليل من خطر وضرر الافصاح الكبير للمعلومات والسجلات.
      • A3-4       :  التحقق من أن بيئة التشغيل غير معرضة لحقن النصوص البرمجية عبر المواقع ((XSS، وأن ضوابط الأمن تمنع حقن النصوص البرمجية عبر المواقعXSS) ).
      • A3-5       : التحقق من أن بيئة التشغيل غير معرضة لحقن بروتوكول النفاذ إلى الدليل البسيط LDAP Injection)) وأن ضوابط الأمن تمنع حقن بروتوكول النفاذ إلى الدليل البسيط (LDAP Injection).
      • A3-6      :  التحقق من أن بيئة التشغيل غير معرضة لحقن أوامر نظام التشغيل (OS (Command Injection، وأن ضوابط الأمن تمنع حقن أوامر نظام التشغيل (OS (Command Injection.
      • A3-7      :   التحقق من نوع البيانات ونطاقها وطولها (إذا أمكن).
      • A3-8      :  عند الحاجة إلى السماح برموز خطرة محتملة كمدخلات، يجب التأكد من تطبيق ضوابط إضافية مثل ترميز المدخلات، وحماية واجهات برمجة التطبيقات الخاصة بالمهام، ومعرفة الجهات التي تستخدم تلك البيانات طوال فترة استخدام التطبيق. وتشمل الأمثلة على الرموز الخطرة الشائعة الآتي: (< > " ' % () & + \ \' \").
      • A3-9      : التأكد من أن جميع عمليات التحقق من صحة المدخلات تتم بواسطة روتين مركزي للتحقق من صحة المدخلات للتطبيق.
      • A3-10    : التحقق من أن كافة عمليات التحقق الفاشلة تؤدي إلى رفض المدخلات أو تدقيقها.
      • A3-11     :  التحقق من تنفيذ كافة إجراءات التحقق أو إجراءات تطوير التطبيقات وإنفاذها على الخادم.
      • A3-12     :   التحقق من إزالة من كافة البيانات غير الموثوقة والتي تعتبر مخرجات بالنسبة للغة "HTML" (بما في ذلك عناصر لغة "HTML" وخصائصها، وقيم بيانات لغة "JavaScript"، وكتل الصفحات النمطية المتسلسلة "CSS Blocks"، وخصائص شريط العنوان ""URL) بصورة ملائمة لمحتوي التطبيق.
      • A3-13     :   التحقق من أن مجموعات الرموز، مثل "UTF-8"، محددة لكافة مصادر المدخلات.
      • A3-14      :  التحقق من أن كافة البيانات المدخلة موحدة لكافة برمجيات فك تشفير أو برمجيات تفسير البيانات المرسلة إلى العميل قبل مصادقتها.
      • A3-15      :  إذا كان إطار عمل التطبيق يسمح بالتخصيص التلقائي الضخم للمعايير (ويسمى أيضاً ربط المتغيرات التلقائي) من طلب وارد إلى نموذج، فيجب التحقق من أن الحقول الحساسة أمنياً مثل "رصيد الحساب" أو "الدور" أو "كلمة المرور" محمية من الربط التلقائي الخبيث.
      • A3-16      : التحقق من أن التطبيق محمي من هجمات تلوث متغيرات بروتوكول نقل النص التشعبي (HTTP)، خصوصاً إذا كان إطار عمل التطبيق لا يميز بين مصادر متغيرات الطلب (مثل طلب GET""، وطلب "POST"، وملفات الارتباط، والعناوين، والبيئة، وغيرها).
      • A3-17      :  التحقق من أن التطبيق يستخدم ضوابط تحقق من المدخلات لكل نوع من البيانات التي يتم قبولها.
      • A3-18      :   التحقق من تسجيل كافة حالات الإخفاق في التحقق من المدخلات.
      • A3-19      : التحقق من أن كل نوع من عمليات ترميز المخرجات أو إزالة منها التي يقوم بها التطبيق له ضابط أمني واحد للوجهة المقصودة.



A4 : التصميم الغير آمن (OWASP: A4:2021- التصميم الغير آمن)
      • A4-1     : التحقق من عمليات التطبيق ومن كافة تدفقات قواعد العمل عالية القيمة في بيئة موثوقة مثل الخادم المحمي والمراقب.
      • A4-2     : التحقق من أن التطبيق لا يسمح بمعاملات عالية القيمة منتحلة، مثل السماح للمستخدم المهاجم (أ) بمعالجة معاملة باعتباره المستخدم الضحية (ب) من خلال التلاعب أو إعادة إعداد الجلسة أو حالة المعاملة أو هوية المستخدم أو المعاملة.
      • A4-3     : التحقق من أن التطبيق لا يسمح بالتلاعب بمعايير قواعد العمل عالية القيمة والتي تشمل، على سبيل المثال لا الحصر، السعر، والفائدة، والخصومات، والمعلومات القابلة لتحديد الهوية (PII)، والأرصدة، وهويات الأسهم، وغيرها.
      • A4-4     : التحقق من وجود إجراءات دفاعية في التطبيق للحماية من هجمات الإنكار، حيث تشمل هذه الإجراءات سجلات المعاملات المحمية والقابلة للتحقق، وسجلات التدقيق أو سجلات النظام، وفي الأنظمة ذات القيمة الأعلى، المراقبة المباشرة لأنشطة المستخدم والمعاملات بحثاً عن أي أنشطة غير طبيعية.
      • A4-5     : التحقق من أن التطبيق يوفر الحماية من هجمات الإفصاح عن المعلومات مثل مرجعيات العناصر المباشرة، والتلاعب، واستخدام الهجمات التخمينية لاختراق الجلسة، وأنواع الهجمات الأخرى.
      • A4-6     : التحقق من وجود ضوابط كشف وضبط كافية في التطبيق للحماية من الهجمات التخمينية (مثل الاستخدام المستمر لدالة معينة) أو هجمات حجب الخدمة.
      • A4-7     : التحقق من وجود ضوابط وصول كافية في التطبيق لمنع هجمات رفع مستوى المزايا والصلاحيات، وتشمل هذه الضوابط منع المستخدمين المجهولين من الوصول إلى البيانات المحمية أو الدالات المحمية، أو منع المستخدمين من الوصول إلى معلومات المستخدمين الآخرين، أو استخدام وظائف ذات مزايا وصلاحيات هامة وحساسة.
      • A4-8     : التحقق من أن التطبيق يعالج دفعات قواعد العمل في خطوات متتالية فقط، بحيث تتم معالجة كافة الخطوات مباشرة، وتجنب المعالجة بطريقة غير منتظمة أو التجاوز عن أي خطوات، أو معالجة خطوات مستخدم آخر أو المعاملات المقدمة بسرعة.
      • A4-9     : التحقق من أن التطبيق يتضمن تصاريح وصلاحيات إضافية (مثل تحقق الإعداد أو التحقق من الهوية المتغير) لأنظمة القيم المتدنية و/أو فصل المهام للتطبيقات ذات القيم المرتفعة لفرض ضوابط مكافحة الاحتيال وفقاً لمخاطر التطبيق وعمليات الاحتيال السابقة.
      • A4-10     : التحقق من أن للتطبيق حدود عمل يطبقها في موقع موثوق (كتطبيقها على خادم محمي) على كل مستخدم أو بشكل يومي، والتي تتضمن تنبيهات قابلة للإعداد واستجابات تلقائية للهجمات التلقائية أو غير الاعتيادية.
      • A4-11     : يجب تطبيق واستخدام آلية أمنية في تطوير دورة حياة التطبيقات بواسطة مطوري التطبيقات المحترفين بالوظائف والخصائص الأمنية.
      • A4-12      : يجب تطوير واستخدام المكتبات لأنماط التصميم الآمن.
      • A4-13       : يجب استخدام نمذجة التهديد في المصادقات الهامة، التحكم في الوصول، منطق الأعمال، وتدفقات المفاتيح.
      • A4-14      : يجب دمج لغة الأمان وعناصر التحكم في حالات المستخدم أو العميل.
      • A4-15     : يجب دمج الفحص لكل طبقة في التطبيق من الواجهة الأمامية للتطبيق الى الواجهة الخلفية للتطبيق.
      • A4-16     : يجب كتابة اختبارات الوحدة والتحقق من أن جميع التدفقات الحرجة مقاومة لنموذج التهديد. كما يجب تجميع الحالات وحالات سوء الاستخدام لكل طبقة في التطبيق.
      • A4-17      : يجب أن تكون طبقات التطبيق منفصلة في الأنظمة وشبكات الإنترنت بناءً على احتياجات التعرض والحماية.
      • A4-18       : يجب أن يكون التصميم للتطبيق بناءً على فصل المشتركين أو العملاء على مدار كل الطبقات.
      • A4-19         : يجب تقييد استهلاك المصدر من قبل المستخدم أو الخدمة.







A5 : أمن الاتصالات (OWASP: A5:2021 - الإعدادات الأمنية الخاطئة)


      • ​A5-1     : التحقق من أنه يمكن بناء مسار من جهة إصدار شهادات موثوقة لكل شهادة تشفير خادم أمن طبقة النقل TLS))، وأنه قد تم التحقق من صلاحية شهادة كل خادم.
      • A5-2     : التحقق من استخدام أحدث إصدار من أمن طبقة النقل TLS)) في كافة الاتصالات (بما في ذلك الاتصالات الخارجية واتصالات أجهزة النقطة النهائية) التي تم مصادقتها أو التي تتضمن معلومات أو وظائف محمية.
      • A5-3     : التحقق من تسجيل حالات إخفاق اتصالات أمن طبقة النقل (TLS) بأجهزة النقطة النهائية.
      • A5-4     : التحقق من المصادقة على كافة الاتصالات مع الأنظمة الخارجية التي تتضمن معلومات أو وظائف محمية.
      • A5-5     : التحقق من أن كافة الاتصالات مع الأنظمة الخارجية التي تتضمن معلومات أو وظائف محمية تستخدم حساباً تم إعداده ومنحه الحد الأدنى من المزايا والصلاحيات اللازمة ليعمل التطبيق بالشكل الصحيح.
      • A5-6     : التحقق من أن اتصالات أمن طبقة النقل (TLS) الفاشلة لا ينتج عنها اتصال غير آمن (غير مشفر).
      • A5-7     : التحقق من أن مسارات شهادات التشفير قد تم بناؤها والتحقق منها لكافة شهادات التشفير الخاصة بالعميل باستخدام جهات الصلاحيات الموثوقة ومعلومات الإلغاء.
      • A5-8     : التحقق من وجود تنفيذ أمن طبقة النقل TLS)) موحد يتم استخدامه في التطبيق وتم إعداده ليعمل في نظام عمل معتمد.
      • A5-9     : التحقق من أن ترميز الرموز المحددة معرف لكافة الاتصالات (مثل "UTF-8").
      • A5-10     : التحقق ومراجعة الإعدادات دورياً بما يتوافق مع أحدث الإعدادات الأمنية.
      • A5-11      : التحقق من أن التطبيق يقبل مجموعة محددة فقط من طرق طلب بروتوكول نقل النص التشعبي (HTTP) مثل طلب ""GET وطلب "POST" وأن الطرق غير المستخدمة محظورة.
      • A5-12      : التحقق من أن كل استجابة لبروتوكول نقل النص التشعبي (HTTP) تتضمن عنوان نوع محتوى يحدد مجموعة رموز آمنة (مثل "UTF-8").
      • A5-13       : التحقق من أن عناوين بروتوكول نقل النص التشعبي (HTTP) و/أو الآليات الأخرى للمتصفحات الأقدم تم تضمينها من أجل الحماية من هجمات الخطف بالنقر (Click Jacking).
      • A5-14         : التحقق من أن عناوين بروتوكول نقل النص التشعبي (HTTP) في الطلبات والاستجابات تتضمن فقط رموز المدونة الموحدة الأمريكية لتبادل المعلومات القابلة للطباعة. (ASCII)
      • A5-15         : التحقق من استخدام صيغ بيانات أقل تعقيداً مثل جافا سكريبت (JSON)، وتجنب جعل المعلومات المحمية متسلسلة.
      • A5-16          : تحديث وإصلاح أو ترقية معالجات لغة الترميز القابلة للامتداد (XML) والمكتبات قيد الاستخدام في التطبيق أو نظام التشغيل الأساسي، واستخدام عمليات التحقق من الاعتماديات، وتحديث البروتوكول البسيط للوصول إلى الكائنات (SOAP) إلى إصدار 1.2 أو إصدار أحدث.
      • A5-17           : إلغاء تفعيل لغة الترميز القابلة للامتداد لجهات خارجية ومعالجة DTD"" في كافة محللات لغة الترميز القابلة للامتداد (XML) في التطبيق وفقاً لتوجيهات المشروع المفتوح لأمن تطبيقات الويب "XXE Prevention".
      • A5-18           : تطبيق التحقق الإيجابي من المدخلات على الخادم (السماح بقائمة محددة) أو التصفية أو التدقيق لمنع البيانات العدائية ضمن وثائق أو عناوين أو عُقد لغة الترميز القابلة للامتداد (XML).
      • A5-19             : التحقق من أن وظيفة رفع الملف بلغة الترميز القابلة للامتداد (XML) أو بلغة الأسلوب الموسع ((XSL تتحقق من لغة الترميز القابلة للامتداد XML)) باستخدام تحقق لغة كتابة الملفات المرافقة للغة XSD)) أو طريقة تحقق مشابهة.
      • A5-20               : استخدام أدوات اختبار أمن التطبيقات الثابت (SAST) واختبار أمن التطبيقات الديناميكي (DAST) للمساعدة في كشف لغة الترميز القابلة للامتداد لجهات خارجية XXE)) في الشفرة المصدرية، مع الأخذ بعين الاعتبار أن مراجعة الشفرة يدوياً هي الطريقة التي يفضل اتباعها في التطبيقات الكبيرة والمعقدة ذات العديد من التداخلات.
      • A5-21                : إذا كان من غير الممكن تطبيق هذه الضوابط، يجب دراسة استخدام حزم التحديثات الافتراضية، أو البوابات الأمنية لواجهات برمجة التطبيقات، أو جدار الحماية لتطبيقات الويب لكشف هجمات لغة الترميز القابلة للامتداد لجهات خارجية ((XXE ومراقبتها وحجبها.
      • A5-22                : التحقق من استخدام الاستفسارات المضبوطة بمعايير لمنع حقن تعليمات الاستعلام البنيوية (SQL Injection).
      • A5-23                : التحقق من استخدام بيانات اعتماد معقدة وآمنة للوصول إلى قواعد البيانات.
      • A5-24                : التحقق من أن التطبيق الذي يصل إلى قواعد البيانات يمتلك أدنى مستوى ممكن من الامتيازات والصلاحيات المطلوبة.
      • A5-25               : التحقق من أن سلاسل الحروف العشوائية (Strings) للاتصال ليست مثبتة في الشفرة ضمن التطبيق، خصوصاً بيانات اعتماد التحقق من الهوية من قاعدة البيانات.
      • A5-26               : التحقق من إغلاق الاتصال بقاعدة البيانات بأسرع ما يمكن.
      • A5-27                : التحقق من حذف كافة وظائف قاعدة البيانات غير اللازمة أو غير المستخدمة أو إلغاء تفعيلها، بما في ذلك محتوى المورد التلقائي، وتثبيت الحد الأدنى من الخصائص والخيارات اللازمة لعمل التطبيق. على سبيل المثال، إلغاء تفعيل الإجراءات أو الخدمات المخزنة وحزم الخصائص المفيدة غير اللازمة.
      • A5-28                : التحقق من إلغاء تفعيل أي حسابات تلقائية أو غير ضرورية والتي يمكن من خلالها الوصول إلى قواعد البيانات غير اللازمة لدعم متطلبات الأعمال.
      • A5-29                : التحقق من أن التطبيق يستخدم بيانات اعتماد مختلفة لكل ميزة وصلاحية (مثل مستخدم، ومستخدم للقراءة فقط، وضيف، ومشرفين) عند اتصاله بقاعدة البيانات.
      • A5-30               : التحقق من إلغاء تفعيل تسجيل الدخول عن بعد والجلسات المجهولة إذا لم يكن هناك حاجة إليها.
      • A5-31               : بالنسبة للتطبيقات التي تعتمد على قاعدة بيانات، يجب استخدام قوالب الإعداد والتحصين الموحدة، واختبار جميع الأنظمة التي تعتبر جزءاً من إجراءات العمل الحساسة.






A6 : الشفرة الخبيثة والثغرات
(OWASP: A6:2021 - المكونات القديمة والتي تحتوي على ثغرات)
      • A6-1     : التحقق من عدم وجود شفرات خبيثة في أي شفرة تم تطويرها أو تعديلها بهدف إنشاء التطبيق.
      • A6-2     : التأكد من أن سلامة الشفرة المفسرة والمكتبات والأوامر التنفيذية وملفات الإعدادات قد تم التحقق منها باستخدام المجموعات الاختبارية أو عمليات حساب ملخص النص المميز.
      • A6-3     : التحقق من أن كافة الشفرات التي تطبق ضوابط التحقق من الهوية أو تستخدمها لم تتأثر بأي شفرات خبيثة.
      • A6-4     : التحقق من أن كافة الشفرات التي تطبق إدارة الجلسات أو تستخدمها لم تتأثر بأي شفرات خبيثة.
      • A6-5     : التحقق من أن كافة الشفرات التي تطبق ضوابط الوصول أو تستخدمها لم تتأثر بأي شفرات خبيثة.
      • A6-6     : التحقق من أن كافة ضوابط التحقق من المدخلات لم تتأثر بأي شفرات خبيثة.
      • A6-7     : التحقق من أن كافة الشفرات التي تطبق ضوابط التحقق من المخرجات أو تستخدمها لم تتأثر بأي شفرات خبيثة.
      • A6-8     : التحقق من أن كافة الشفرات التي تطبق نموذج التشفير أو تستخدمه لم تتأثر بأي شفرات خبيثة.
      • A6-9     : التحقق من أن كافة الشفرات التي تطبق ضوابط التعامل مع الأخطاء وتسجيلها أو تستخدمها لم تتأثر بأي شفرات خبيثة.
      • A6-10     : التحقق من أن كافة الأنشطة الخبيثة قد خضعت لتقنية الحماية المعزولة (Sandboxing).
      • A6-11      : تحديث المكونات بأحدث التحديثات والإصلاحات عند معرفة المستخدم بالثغرات المنشورة.
      • A6-12       : إلغاء الاعتماديات غير المستخدمة والخصائص غير اللازمة والمكونات والملفات والوثائق.
      • A6-13        : عمل قائمة جرد مستمرة لإصدارات المكونات من طرف العميل والخادم (مثل أطر العمل والمكتبات) واعتماداتها باستخدام أدوات مثل الإصدارات، و"Dependency Check"، و"retire.js"، وغيرها، والمراقبة المستمرة للمصادر مثل تعداد الثغرات الشائعة (CVE) وقاعدة بيانات الثغرات الوطنية ((NVD بحثاً عن الثغرات في المكونات، إلى جانب استخدام أدوات تحليل تكوين البرمجيات من أجل أتمتة العملية، والاشتراك في تنبيهات البريد الإلكتروني من أجل الثغرات الأمنية ذات العلاقة بالمكونات قيد الاستخدام.
      • A6-14          : الحصول على المكونات من مصادر رسمية وعبر روابط محمية فقط، وتفضيل الحزم الموقعة لتقليل فرص وجود مكون خبيث معدل.
      • A6-15          : مراقبة المكتبات والمكونات التي لا تتوافر لها صيانة أو ليس للإصدارات القديمة منها تحديثات وإصلاحات أمنية. إذا كان تثبيت حزم التحديثات غير ممكناً، يجب دراسة تثبيت التحديثات والإصلاحات الافتراضية لمراقبة المشكلات المكتشفة أو كشفها أو الحماية منها.
      • A6-16         : التحقق من أن إعادة التوجيه والإرسال في شريط العنوان (URL) لا تتضمن بيانات غير مصرحة.
      • A6-17          : التحقق من توحيد أسماء الملفات وبيانات المسارات التي يتم الحصول عليها من مصادر غير موثوقة لإلغاء هجمات تجاوز المسار.
      • A6-18          : التحقق من فحص الملفات التي يتم الحصول عليها من مصادر غير موثوقة من خلال برامج مكافحة الفيروسات لمنع تحميل برمجيات خبيثة معروفة.
      • A6-19            : التحقق من عدم استخدام المعايير التي تم الحصول عليها من مصادر غير موثوقة للتلاعب في أسماء الملفات أو أسماء المسارات أو ملفات وكائنات النظام دون توحيدها أولاً والتحقق من مدخلاتها لمنع هجمات إدراج الملفات المحلية.
      • A6-20             : التحقق من توحيد المعايير التي تم الحصول عليها من مصادر غير موثوقة والتحقق من مدخلاتها وترميز مخرجاتها لمنع هجمات إدراج الملفات عن بعد، خصوصاً عندما يكون من الممكن تنفيذ المدخلات مثل العناوين أو المصادر أو إدراج القوالب.
      • A6-21            : التحقق من عدم السماح بإدراج محتوى عشوائي عن بعد عند مشاركة موارد "IFRAMEs" و"HTML 5" عبر النطاقات.
      • A6-22            : التحقق من تخزين الملفات التي تم الحصول عليها من مصادر غير موثوقة خارج "Webroot".
      • A6-23            : التحقق من إعداد وضبط خادم الويب أو التطبيق تلقائياً لحجب الوصول إلى المصادر البعيدة أو الأنظمة خارج خادم الويب أو التطبيق.
      • A6-24            : التحقق من أن شفرة التطبيق لا تنفذ بيانات مرفوعة تم الحصول عليها من مصادر غير موثوقة.
      • A6-25            : التحقق من ضبط إعدادات مشاركة مصادر تطبيقات Flash"" أو Silverlight"" أو غيرها من تطبيقات الإنترنت الغنية (RIA) عبر النطاقات بحيث تمنع الوصول غير المصرح به أو الوصول عن بعد غير المعتمد.
      • A6-26            : التحقق من أن كافة أنواع الملفات المسموح برفعها مقتصرة على غايات العمل وحسب الحاجة (مثل ملفات "PDF" ومستندات برامج ""Office).
      • A6-27             : التأكد من أن التحقق من نوع الملف يتم من خلال التحقق من عناوين الملفات وليس من خلال اسم امتداد الملفات فقط.
      • A6-28             : التحقق من عدم تفعيل امتيازات وصلاحيات التنفيذ في أدلة تحميل الملفات.
      • A6-29              : التحقق من ضبط إعدادات ملفات ومصادر التطبيق تلقائياً على وضعية القراءة فقط.
      • A6-30               : التحقق من إلغاء كافة أنواع المشاركات والمشاركات الإدارية غير اللازمة، وتقييد الوصول إلى المشاركات أو جعله يتطلب التحقق من الهوية.
      • A6-31                : طلب التحقق من الهوية قبل السماح برفع الملفات.
      



                                                                                                                                                                                                                                                                   

   A7 : عمليات التحقق من الهوية                                                                                                                                                                                                                  (OWASP: A7:2021 - إجراءات فشل التحقق من الهوية)

      •  A7-1     :التحقق من أن كافة الصفحات والمصادر تقتضي التحقق من الهوية باستثناء المحددة خصوصاً لتكون عامة (مبدأ التحقق التام والمتكامل).
      • A7-2     :التحقق من أن حقول كلمات المرور لا تُظهر كلمات مرور المستخدمين عند إدخالها وأن خاصية الإكمال التلقائي في حقول كلمات المرور (أو الأشكال التي تتضمنها) غير مفعلة.
      • A7-3     :التحقق من أن كافة ضوابط التحقق من الهوية تخفق بصورة آمنة لضمان عدم قدرة الجهات المهاجمة على تسجيل الدخول.
      • A7-4     :التحقق من أن بيانات الاعتماد وكافة معلومات الهوية الأخرى التي يتعامل معها التطبيق لا تمر عبر روابط غير مشفرة أو مشفرة بصورة غير آمنة.
      • A7-5     :التحقق من أن مسار "نسيت كلمة المرور" ومسارات الاستعادة الأخرى لا ترسل كلمات المرور الحالية أو الجديدة من غير تشفير إلى المستخدم.
      • A7-6     :التحقق من أن تنفيذ هجمات تعداد اسم المستخدم (User Enumeration) غير ممكن عن طريق وظائف "تسجيل الدخول" أو "إعادة ضبط كلمة المرور" أو "نسيت الحساب".
      • A7-7     :التحقق من عدم وجود كلمات مرور افتراضية قيد الاستخدام لإطار عمل التطبيق أو أي مكونات مستخدمة من قبل التطبيق (مثل "admin/password").
      • A7-8     :التحقق من وجود ضابط مصادر (Resource Governor) لتوفير الحماية من الهجوم التخميني العمودي (Vertical Brute Forcing) (وهو هجوم يحاول اختراق حساب واحد باستخدام كافة كلمات المرور المحتملة) والهجوم التخميني الأفقي Horizontal Brute Forcing)) (وهو هجوم يحاول اختراق جميع الحسابات باستخدام كلمة مرور واحدة مثل "Password1"). ويجب ألا يكون هناك تأخير في إدخال بيانات الاعتماد الصحيحة. فعلى سبيل المثال، يجب ضبط إعدادات عنوان بروتوكول الإنترنت لمصدر الهجوم التخميني بحيث يتم إغلاقه بعد 60 دقيقة، ويتم إغلاق الحساب بعد 15 دقيقة. ويجب أن تكون آليتا الضبط فاعلتين بشكل متزامن للحماية من الهجمات التشخيصية والموزعة.
      • A7-9    :التحقق من أن كافة ضوابط التحقق من الهوية فعالة من جهة الخادم.
      • A7-10    :التحقق من أن حقول كلمات المرور تسمح باستخدام عبارات مرور، ولا تمنع استخدام عبارات مرور طويلة أو معقدة للغاية، وتوفر حماية كافية من استخدام كلمات المرور الدارجة.
      • A7-11     :التحقق من أن كافة وظائف إدارة الحسابات، (مثل التسجيل، أو تحديث الملف التعريفي، أو "نسيت اسم المستخدم"، أو "نسيت كلمة المرور"، أو رمز التعريف غير المفعل/المفقود، أو مكتب المساعدة، أو الاستجابة الصوتية التفاعلية "IVR")، والتي يمكن أن تستعيد صلاحية الوصول إلى الحساب، قادرة على مقاومة الهجمات بنفس مستوى الآلية الأساسية للتحقق من الهوية.
      • A7-12      :التحقق من أن المستخدمين يمكنهم تغيير بيانات اعتمادهم باستخدام آلية مقاومة للهجمات تتمتع بنفس قدرة الآلية الأساسية للتحقق من الهوية على مقاومة الهجمات (مثل الرسائل النصية، أو رموز تعريفية، أو تطبيقات الهواتف المحمولة، أو غيرها). عند تغيير كلمات المرور، يجب إدخال كلمة المرور الحالية قبل إدخال كلمة المرور الجديدة وأن يتبع ذلك عملية إعادة تحقق من المستخدم.
      • A7-13       :التحقق من انتهاء صلاحية بيانات الاعتماد بعد مرور فترة زمنية يتم إعدادها إدارياً. ويجب أن تكون فترة انتهاء صلاحية كلمة المرور قصيرة بناءً على حساسية التطبيق، مما يفرض بالتالي تغيير كلمة المرور بشكل أسرع.
      • A7-14        :التحقق من تسجيل كافة قرارات التحقق من الهوية بما في ذلك "المباعدات الخطية" و"الأقفال المؤقتة".
      • A7-15         :التحقق من أن كلمات مرور الحسابات مجزئة عشوائياً باستخدام طريقة تجزئة عشوائية خاصة لكل حساب (مثل هوية مستخدم الإنترنت أو إنشاء الحساب) واختزالها قبل التخزين.
      • A7-16          :التحقق من أن كافة بيانات اعتماد التحقق من الهوية للوصول للخدمات الخارجية بالنسبة للتطبيق مشفرة ومخزنة في موقع محمي (وليس في شفرة مصدرية).
      • A7-17           :التحقق من أن نسيان كلمة المرور ومسارات الاستعادة ترسل رمز تفعيل أو تحقّق من الهوية متعدّد العناصر له وقت محدد (مثل الرسائل النصية، أو رموز تعريفية، أو تطبيقات الهواتف المحمولة، أو غيرها) بدلاً من إرسال كلمة المرور.
      • A7-18          :التحقق من أن وظيفة "نسيت كلمة المرور" لا تغلق الحساب أو تلغي تفعيله إلا بعد أن ينجح المستخدم في تغيير كلمة المرور.
      • A7-19          :التحقق من عدم وجود أسئلة وإجابات معرفية مشتركة (ما يسمى بالأسئلة والإجابات "السرية").
      • A7-20           :التحقق من إمكانية إعداد النظام وضبطه بحيث لا يسمح باستخدام أرقام قابلة للإعداد من كلمات مرور سابقة.
      • A7-21           :التحقق من تنفيذ كافة ضوابط التحقق من الهوية مركزياً (بما في ذلك المكتبات التي تستدعي خدمات تحقق خارجية).
      • A7-22           :التحقق من طلب إعادة التحقق من الهوية أو تحقق الإعداد أو التحقق من الهوية المتغير، أو الرسالة النصية أو التطبيق ثنائي العوامل أو توقيع المعاملة قبل السماح بأي عمليات حساسة على التطبيق وفقاً للملف التعريفي للمخاطر الخاصة بالتطبيق.
      • A7-23            :التحقق من وجود وظيفة لإلغاء تفعيل بيانات اعتماد المستخدم أو إبطالها في حال وقوع انتهاك أمني.
      • A7-24             :التحقق من تشفير كلمة المرور وفقاً للمعايير والإجراءات ذات العلاقة.
      • A7-25             :إذا كان تطبيق جامعة الإمام محمد بن سعود الإسلامية يدير مخزن بيانات اعتماد، فإنه يجب أن يضمن تخزين قيمة الاختزال باتجاه واحد وبطريقة مشفرة بدرجة تعقيد عالية لكلمات المرور، وأن الجدول والملف الذي يخزن كلمات المرور والمفاتيح يمكن الكتابة عليه فقط عن طريق التطبيق. (يجب عدم استخدام خوارزمية "MD5" قدر الإمكان).
      • A7-26             :فصل منطق التحقق من الهوية عن المصدر الذي يتم طلبه، واستخدام إعادة التوجيه من وإلى مراقبة التحقق من الهوية المركزي.
      • A7-27             :يجب ألا تشير رسائل فشل التحقق من الهوية إلى الجزء غير الصحيح من بيانات التحقق من الهوية. فعلى سبيل المثال، بدلاً من استخدام "اسم مستخدم غير صحيح" أو "كلمة مرور غير صحيحة"، يجب استخدام "اسم مستخدم غير صحيح أو كلمة مرور غير صحيحة" لكلا الحالتين. ويجب أن تكون رسائل الأخطاء متطابقة في الشفرة المصدرية وعند عرضها.
      • A7-28             :التحقق من قوة كلمة المرور والتأكد من عدم تطابقها مع كلمات المرور الضعيفة الدارجة.
      • A7-29             :يجب تطبيق متطلبات درجة طول وتعقيد كلمة المرور الواردة في السياسة أو اللائحة المعتمدة لدى جامعة الإمام محمد بن سعود الإسلامية، كما يجب أن تكون بيانات اعتماد التحقق من الهوية كافية لمواجهة الهجمات التي تعتبر شائعة بالنسبة للتهديدات الموجودة في بيئة التثبيت. ويجب التحقق من أن كلمة المرور تتضمن كحد أدنى ما يلي:

·      حرف كبير واحد على الأقل (A-Z).

·      حرف صغير واحد على الأقل (a-z).

·      رقم واحد على الأقل (0-9).

·      رمز خاص واحد على الأقل مثل:(!"#$%&'() *+,-. /:;<=>?@[\]^_`{|}~").

      • كما يجب التحقق من أن كلمة المرور لا تتضمن على الأقل ما يلي:

·      أكثر من رقمين أو رمزين متطابقين متتاليين (مثل "111" و"aa").

·      أرقام أو رموز متسلسلة (مثل "123"، أو "789"، أو"abs").

·      نفس اسم المستخدم.

·      كلمات قاموسيه ("password"، أو "p@ssw0rd"، أو "secret123").

      • A7-30 إنفاذ إلغاء تفعيل الحساب بعد عدد محدد من محاولات تسجيل الدخول غير الصحيحة (على سبيل المثال، خمس محاولات للتطبيقات غير الهامة وثلاث محاولات للتطبيقات الحساسة). ويجب إلغاء تفعيل الحساب لفترة زمنية معينة تكون كافية لإحباط محاولات الهجوم التخميني لبيانات الاعتماد شريطة ألا تكون هذه المدة طويلة بحيث تسمح بتنفيذ هجمات حجب الخدمة (مثلاً إلغاء التفعيل لمدة 30 دقيقة فقط).
      • A7-31 يجب إبلاغ المستخدم بآخر استخدام للحساب (سواءً كان ناجحاً أم لا) عند تسجيله الدخول بنجاح.
      • A7-32التحقق من استخدام التطبيق لتنفيذ التحكم بإدارة الجلسة التلقائية الخاصة بإطار العمل.
      • A7-33 التحقق من إبطال الجلسات عند تسجيل خروج المستخدم.
      • A7-34التحقق من انتهاء وقت الجلسات بعد مرور فترة معينة من عدم النشاط.






A8 : إلغاء التسلسل غير الآمن
(OWASP: A8:2021- فشل سلامة البرامج والبيانات)

        • 1     :تطبيق عمليات التحقق من سلامة المعلومات، مثل التواقيع الرقمية، لأي كائنات متسلسلة لمنع إنشاء كائنات عدائية أو التلاعب بالبيانات.
        • A8-2     :إنفاذ قيود محددة خلال إلغاء التسلسل قبل إنشاء الكائن لأن الشفرة تتوقع عادة مجموعة فئات قابلة للتحديد. من غير المستحسن الاعتماد على هذا الأسلوب فقط نظراً إلى وجود طرق لتجاوزه.
        • A8-3     :عزل الشفرة التي يتم إلغاء تسلسلها وتشغيلها في بيئات متدنية المزايا والصلاحيات حيثما أمكن.
        • A8-4     :تسجيل استثناءات إلغاء التسلسل وحالات الإخفاق، مثل الحالات التي لا يكون فيها النوع الوارد هو النوع المتوقع أو التي يحدد فيها إلغاء تسلسل الاستثناءات.
        • A8-5      :تقييد أو مراقبة الربط البيني الوارد والصادر في الشبكة من الحاويات أو الخوادم التي تم إلغاء تسلسلها.
        • A8-6     :مراقبة إلغاء التسلسل والتنبيه إذا كان المستخدم يلغي التسلسل باستمرار.




A9 : التعامل مع الأخطاء وتسجيلها
(OWASP: A9:2021 – فشل أمن السجلات والمراقبة)

    • A9-1     :ضمان إجراء التحقق الصريح من الأخطاء للبرمجيات المطورة داخلياً، وتوثيقه لكافة المدخلات، بما في ذلك الحجم ونوع البيانات والنطاقات أو الصيغ المسموحة.
    • A9-2     :التحقق من أن التطبيق لا يظهر رسائل خطأ أو يكدس آثاراً تتضمن معلومات محمية، بما في ذلك هوية الجلسة والمعلومات الشخصية، والتي يمكن أن تساعد الجهة المهاجمة على تنفيذ أنشطتها.
    • A9-3     :التحقق من تنفيذ جميع عمليات التعامل مع الأخطاء على أجهزة موثوقة.
    • A9-4     :التحقق من تطبيق كافة ضوابط التسجيل على الخادم.
    • A9-5     :التحقق من أن منطق التعامل مع الأخطاء في الضوابط الأمنية يحجب الوصول تلقائياً.
    • A9-6     :التحقق من أن ضوابط التسجيل الأمنية تسمح بتسجيل أحداث النجاح والإخفاق التي تم تحديدها باعتبارها مهمة أمنياً.
    • A9-7     :التحقق من أن كل حدث في السجل يتضمن ختماً زمنياً من مصدر موثوق، ومستوى شدة الحدث، ومؤشراً على أن الحدث مهم أمنياً (إذا كان مختلطاً مع سجلات أخرى)، وهوية المستخدم الذي تسبب بالحدث (إذا كان هناك مستخدم مرتبط بالحدث)، ومصدر عنوان بروتوكول الإنترنت للطلب المصاحب للحدث سواءً كان الحدث ناجحاً أو فاشلاً، ووصفاً للحدث.
    • A9-8     :التحقق من أن كافة السجلات محمية من الوصول غير المصرح به والتعديل.
    • A9-9     :التحقق من أن التطبيق لا يسجل معلومات محمية خاصة بالتطبيق، بما في ذلك هوية الجلسة والمعلومات الشخصية أو المحمية، والتي يمكن أن تساعد الجهة المهاجمة على تنفيذ أنشطتها.
    • A9-10     :التحقق من توفر أداة تحليل السجل مما يسمح للمحلل بالبحث عن أحداث السجل بناءً على تركيبة من معايير البحث في كافة الحقول في صيغة السجل المدعومة من النظام.
    • A9-11      :التحقق من عدم تنفيذ كافة الأحداث التي تتضمن بيانات غير موثوقة باعتبارها شفرة في برمجيات استعراض السجلات المعنية.
    • A9-12       :التحقق من وجود تنفيذ تسجيل موحد مستخدم في التطبيق.
    • A9-13       :التحقق من أن السجلات لها إجراء منتظم موحد للنسخ الاحتياطية أو الأرشفة.
    • A9-14        :تطبيق "التعامل مع الاستثناءات في الشفرات" حيثما أمكن.
    • A9-15         :التحقق من أن السجلات أدناه مفعلة:
      ·      سجل يشمل كل حالات الإخفاق في التحقق من المدخلات.
      ·      سجل يشمل كل محاولات التحقق من الهوية، وخصوصاً حالات الإخفاق.
      ·      سجل يشمل كل حالات الإخفاق في التحكم بالوصول.
      ·      سجل يشمل كل أحداث التلاعب الظاهرة، بما في ذلك التغييرات غير المتوقعة على حالة البيانات.
      ·      سجل يشمل كل محاولات الاتصال بالرموز التعريفية لجلسة منتهية الصلاحية أو غير صحيحة.
      ·      سجل يشمل كل استثناءات النظام.
      ·      سجل يشمل كل الوظائف الإدارية، بما في ذلك التغييرات على إعدادات الضبط والتهيئة الأمنية.
      ·      سجل يشمل كل حالات إخفاق اتصال أمن طبقة النقل بأجهزة النقطة النهائية.
      ·      سجل يشمل كل حالات إخفاق نموذج التشفير.

A10  : تزوير الطلب عبر الخوادم (OWASP: A10:2021 –SSRF

      •  A10-1  :وظائف الوصول عن بعد للمصادر يجب أن تكون مفصولة داخل شبكات الإنترنت لتقليل التأثير من اختراقات تزوير الطلب عبر الخوادم.
      • A10-2         :جامعة الإمام محمد بن سعود الإسلامية يجب أن تطبق سياسات "المنع بشكل افتراضي" في جدار الحماية أو في نقاط وصول شبكات الإنترنت لمنع جميع التحركات داخل الشبكة الداخلية الغير ضرورية.
      • A10-3         :جميع مدخلات العملاء يجب أن تتم تصفيتها وفحصها.
      • A10-4         :التحقق من صحة المخطط للرابط الإلكتروني (URL)، مع تحديد المنفذ والوجهة النهائية مع قائمة السماح المحددة 
      •  ​A10-5         :جامعة الإمام محمد بن سعود الإسلامية يجب منع ارسال الاستجابات والردود للعميل على هيئتها الأصلية.
      • A10-6          :جامعة الإمام محمد بن سعود الإسلامية يجب تعطيل إعادة التوجيه بروتوكول (HTTP).
      • A10-7          :جامعة الإمام محمد بن سعود الإسلامية يجب أن تتأكد من أن العاملين لديهم الوعي الكافي لفهم تناسق وخصائص الرابط الإلكتروني (URL) لتجنب الاختراقات مثل اختراق إعادة الربط لنظام اسم المجال (DNS) و "وقت الفحص، وقت الاستخدام" (TOCTOU).
      • A10-8          :عدم تثبيت خدمات أمنية أخرى على أنظمة الواجهة مثل خدمة الهوية المفتوحة (OpenID). تقييد حركات المرور الداخلية على هذه الأنظمة مثل المضيف المحلي.
      • A10-9          :يجب استخدام وظائف وتقنيات تشفير الإنترنت مثل شبكات الخصوصية الافتراضية (VPNs) على الأنظمة المستقلة.


       







A11     :لتحقّق من الهاتف المحمول


      • A11-1         ​    : التأكد من تحقق العميل من شهادات تشفير طبقة المنافذ الآمنة (SSL).
      • A11-2              :التحقق من عدم استخدام قيم رقم تعريف الجهاز المميز (UDID) كضوابط أمنية.
      • A11-3             :التحقق من أن تطبيق الهاتف المحمول لا يخزن المعلومات المحمية على المصادر المشتركة على الجهاز (مثل بطاقة "SD" أو المجلدات المشتركة).
      • A11-4             :التحقق من أن المعلومات المحمية ليست مخزنة في قاعدة بيانات "SQLite" على الجهاز.
      • A11-5             :التحقق من أن المفاتيح السرية وكلمات المرور ليست مثبتة في الشفرة في البرامج التنفيذية.
      • A11-6             :التحقق من أن تطبيق الهاتف المحمول يمنع تسرب المعلومات المحمية عن طريق خاصية التصوير التلقائي في نظام تشغيل "iOS".
      • A11-7            :التحقق من أن التطبيق لا يمكن تشغيله على جهاز تم إلغاء القيود الموجودة عليه (Jailbroken) أو جهاز يتمتع بصلاحيات ومزايا هامة وحساسة (Rooted).
      • A11-8            :التحقق من أن وقت انتهاء الجلسة له قيمة منطقية.
      • A11-9           :التحقق من التصاريح التي يتم طلبها ومن المصادر التي يتم منح تصاريح الوصول إليها (AndroidManifest.xml، وiOS Entitlements).
      • A11-10          :التحقق من أن سجلات انهيار النظام لا تتضمن معلومات محمية.
      • A11-11          :التحقق من عدم وضوح النظام الثنائي في التطبيق.
      • A11-12          :التحقق من أن كافة بيانات الاختبار قد تم إزالتها من حاوية التطبيق (.apk .bar .ipa).
      • A11-13          :التحقق من أن التطبيق لا يقوم بتسجيل المعلومات المحمية على سجل النظام أو ملفات النظام.
      • A11-14          :التحقق من أن التطبيق لا يتيح الإكمال التلقائي للنصوص الحساسة في حقول المدخلات مثل حقول كلمات المرور أو المعلومات الشخصية أو بطاقات الائتمان.
      • A11-15           :التحقق من أن تطبيق الهاتف المحمول يطبق عملية تثبيت الشهادات (Certificate Pinning) لمنع إدارة حركة البيانات في التطبيق بالوكالة.
      • A11-16            :التحقق من عدم وجود إعدادات خاطئة في ملفات الإعدادات (مجموعة العلامات التصحيحية، وتصاريح قابلة للقراءة وللكتابة العالمية).
      • A11-17            :التحقق من تحديث مكتبات الأطراف الخارجية قيد الاستخدام وعدم احتوائها على أي ثغرات معروفة.
      • A11-18             :التحقق من عدم تخزين بيانات الويب مثل حركة بيانات بروتوكول نقل النص التشعبي الآمن (HTTPS).
      • A11-19             :التحقق من عدم استخدام سلسلة الأحرف للاستفسار (Query String) مع المعلومات المحمية. بدلاً من ذلك، يجب استخدام طلب POST"" عبر طبقة المنافذ الآمنة ((SSL مع رمز تعريفي للحماية من تزوير الطلب عبر المواقع (CSRF).
      • A11-20            :التحقق، إن أمكن، من أن أرقام الحسابات الشخصية متقطعة قبل تخزينها على الجهاز.
      • A11-21            :التحقق من أن التطبيق يستفيد من خاصية التوزيع العشوائي لمخطط مساحات العناوين (ASLR).
      • A11-22            :التحقق من أن البيانات المسجلة عن طريق لوحة المفاتيح (iOS) لا تتضمن بيانات اعتماد أو معلومات مالية أو معلومات محمية أخرى.
      • A11-23            :في تطبيقات الأندرويد، التحقق من أن التطبيق لا ينشئ ملفات بتصاريح " MODE_WORLD_READABLE " أو " MODE_WORLD_WRITABLE ".
      • A11-24            :التحقق من تخزين المعلومات المحمية بطريقة مشفرة وآمنة (حتى عند تخزينها في سلسلة مفاتيح iOS"").
      • A11-25            :التحقق من تطبيق آليات مكافحة التصحيح والهندسة العكسية في التطبيق.
      • A11-26            :التحقق من أن التطبيق لا يستورد أنشطة حساسة أو مزودي محتوى أو غيرهم على الأندرويد.
      • A11-27            :التحقق من استخدام هيكليات متغيرة لسلاسل الحروف العشوائية (Strings) الحساسة مثل أرقام الحسابات، والكتابة فوقها عند عدم استخدامها (لتقليل الأضرار الناجمة عن هجمات تحليل الذاكرة).
      • A11-28             :التأكد من تنفيذ التحقق الكامل من البيانات على المدخلات لأي رسائل أنشطة ومزودي محتوى ومتلقي بث معرضين للمخاطر (الأندرويد).​