نبدأ بما يجب حمايته وكيف يمكن أن يتضرر
نحدد أنواع المستخدمين والبيانات الحساسة والخدمات الخارجية ونقاط الدخول ومتطلبات الاستعادة مبكراً، حتى لا تصبح القرارات الأمنية الأساسية ترقيعاً بعد اكتمال النظام.
نحدد الصلاحيات ومواقع البيانات والأسرار ومسار النشر وما نحتاجه لتشخيص الحوادث واستعادة الخدمة، ثم نختار الضوابط المناسبة لهذا الواقع.
نحدد أين توجد البيانات والأسرار، ومن يستطيع الوصول إلى الإنتاج، وكيف تضبط الإصدارات، وكيف تُختبر الاستعادة. أي متطلبات تنظيمية أو قطاعية في الإمارات تُعامل كمدخلات صريحة للمشروع لا كافتراضات.
نحدد أنواع المستخدمين والبيانات الحساسة والخدمات الخارجية ونقاط الدخول ومتطلبات الاستعادة مبكراً، حتى لا تصبح القرارات الأمنية الأساسية ترقيعاً بعد اكتمال النظام.
معرفة هوية المستخدم خطوة واحدة فقط. نحدد ما يحق لكل دور رؤيته أو تغييره أو اعتماده، ونطبق أقل قدر من الصلاحيات الذي يحتاجه المستخدم لأداء عمله.
نسأل كيف تدخل البيانات، وأين تُحفظ، ومن يقرأها، وإلى أي طرف تُرسل، وكم نحتاج إلى الاحتفاظ بها، وكيف تُحذف أو تُصدر عندما يتطلب العمل ذلك.
مفاتيح API وكلمات المرور وأسرار التوقيع تحتاج إلى تخزين آمن وصلاحيات ودورة تغيير معروفة، مع فصل البيئات وعدم وضعها كنص عادي داخل المشروع أو المستودع.
السجل المفيد يوضح ماذا حدث ومتى، ولأي مستخدم أو طلب، وعلى أي إصدار، مع تجنب تسجيل بيانات حساسة لا نحتاجها فعلياً لفهم المشكلة.
نعالج الاعتماديات القديمة ونقيّم التحديثات بحسب أثرها، ثم نختبر ما قد يغير سلوك الإنتاج. المطلوب ليس البقاء على نسخة قديمة ولا التحديث بلا تحقق، بل إدارة المخاطرتين.
نحدد ما الذي يُنسخ، وأين تُحفظ النسخ، ومدة الاحتفاظ بها، ومن يستطيع الوصول إليها، وكيف نتحقق من أن الاستعادة ممكنة عندما نحتاجها فعلياً.
لا يوجد نظام مهني يمكن أن يعد بعدم وقوع أي حادث. ما يمكن بناؤه هو قدرة أفضل على اكتشاف المشكلة وتقليل أثرها وفهم ما حدث واستعادة الخدمة ثم معالجة السبب.
المراجعات الداخلية ضرورية، لكنها لا تعوض دائماً رأياً مستقلاً. بعض الأنظمة أو العقود تحتاج إلى اختبار اختراق أو مراجعة أمنية منفصلة عن الفريق الذي بنى المنتج.
لا نصف أي نظام بأنه «غير قابل للاختراق»، ولا نحول نسبة أمان غير قابلة للقياس إلى مادة تسويقية، ولا نعتبر HTTPS أو Cloudflare وحدهما دليلاً كافياً على أمان المنتج.
المتصفح ليس بيئة موثوقة مثل الخادم، والعميل لا يملك صلاحيات الموظف، وحساب الدعم لا يجب أن يصبح مالكاً لبيانات العميل. كل انتقال بين هذه المناطق يحتاج إلى تحقق وصلاحيات وتسجيل واضح.
عندما تكون حدود الثقة مفهومة، يظهر المنطق نفسه في الكود والبنية وطريقة النشر. وعندما تكون ضبابية، يصبح الأمان مجموعة إعدادات منفصلة لا تربطها صورة واحدة.
قد يكون المستخدم مسجلاً دخوله لكنه غير مخول برؤية بيانات مؤسسة أخرى، أو تغيير فاتورة، أو إدارة خطة اشتراك، أو التصرف باسم عميل. لهذا نفصل بين المصادقة على الهوية (Authentication) ومنح الصلاحيات (Authorization).
العمليات الحساسة قد تحتاج إلى دور أعلى، أو إعادة تحقق، أو موافقة ثانية، أو سبب مسجل. نضيف الحاجز عندما يقلل مخاطرة حقيقية، لا لمجرد زيادة عدد الخطوات.
قد يكون التطبيق مصمماً جيداً ثم تُهدم الضوابط بتعديل مباشر على بيئة الإنتاج أو بإصدار لا يعرف أحد مصدره. المستودع والمراجعة والبناء وفصل البيئات وصلاحية النشر وخطة الرجوع كلها جزء من سطح المخاطر.
عند وقوع مشكلة، معرفة نسخة الكود وحزمة البناء والإعداد المرتبط بكل إصدار تختصر وقتاً كبيراً وتقلل التخمين.
قد يكون مفتاح API آمناً عند إنشائه ثم يصبح مخاطرة بعد أشهر بسبب نسخة في سجل أو بيئة CI قديمة أو صلاحية لم تعد مطلوبة. التخزين الآمن وحده لا يكفي.
نقلل الأسرار طويلة العمر قدر الإمكان، ونضيق صلاحياتها، ونفصلها عن الكود المصدري، ونحافظ على طريقة مفهومة لتدويرها وإلغائها من دون خوف من كسر النظام كله.
التشفير مهم، لكن كل حقل أو ملف مُصدّر أو مدة احتفاظ إضافية تخلق نسخة جديدة تحتاج إلى حماية لاحقاً.
نسأل لماذا نحتاج المعلومة، ومن يحتاجها، وأين ستظهر، وهل تدخل السجلات أو النسخ الاحتياطية، ومتى يمكن حذفها. كلما كان الغرض واضحاً أصبحت الحماية والامتثال أبسط.
نقلل سطح الهجوم، لكننا نحتاج أيضاً إلى أثر مفيد للعمليات المهمة مثل تغييرات الصلاحيات ومحاولات الدخول غير المعتادة والإجراءات الإدارية وتغييرات الإعدادات.
الهدف ليس تخزين كل حركة إلى الأبد، بل الاحتفاظ بما يكفي لفهم الحادث واتخاذ قرار إذا حدث شيء غير طبيعي.
برمجية فدية أو خطأ إداري أو بيانات دخول مسروقة قد تضر البيانات أو توفر الخدمة. ظهور رسالة «Backup completed» لا يثبت أن الشركة تستطيع العودة إلى تشغيل سليم.
نراجع فصل النسخ عن الإنتاج، وصلاحيات الاسترجاع، ومدة الاحتفاظ، وترتيب الاستعادة، وسلامة البيانات، والوقت المتوقع للعودة. النسخة التي يستطيع المهاجم حذفها بصلاحيات الإنتاج نفسها ليست طبقة مستقلة.
المراجعة الخارجية مفيدة خصوصاً قبل إطلاق حساس أو عندما يطلب العقد دليلاً مستقلاً، لكنها لا تعوض أساساً أمنياً ضعيفاً.
نحدد البيئة والحسابات والبيانات والقيود وطريقة معالجة النتائج وإعادة اختبارها. قيمة التقرير في الإصلاحات التي يؤدي إليها، لا في وجود ملف PDF داخل مجلد الامتثال.
عوضاً عن شعارات مثل «غير قابل للاختراق»، نفضل أدلة يمكن فحصها: حدود صلاحيات محددة، وسجل نشر، وسياسة لإدارة الأسرار، ونسخة استعادة مختبرة، أو ملاحظة أمنية أُغلقت بعد إعادة الاختبار.
في الأنظمة الحساسة، هذه الأدلة المتماسكة أكثر قيمة من لغة أمنية كبيرة لا يستطيع أحد إثباتها.
اشرح كيف يجري العمل اليوم وأين يتعطل. نبدأ بفهم الواقع وتحديد ما يستحق البناء قبل أن يتحول إلى مشروع برمجي.