أمن التطبيقات: لماذا يجب أن تبدأ البناء من الأساس؟
هل سبق لك أن شاهدت طفلاً يرسم بيت شجرة؟ إذا كانت إجابتك نعم، فلديك فكرة جيدة عن الكيفية التي تُبنى بها التطبيقات البرمجية عندما لا يكون الأمن أولوية قصوى. من الممتع أكثر بكثير رسم الأرجوحة وإضافة الشرفة الأمامية والمسبح، بدلاً من القلق بشأن كيفية بقاء دلو ماء بسعة عشرة آلاف غالون معلقاً في الهواء! عندما ينصب التركيز بشكل مفرط على الميزات الممتعة والبراقة، فإن الأسس تتأثر وتصبح ضعيفة.

بالطبع، قضاء ساعات لا داعي لها في بناء بنية خلفية (backend) محصنة كحصن منيع قد لا يكون ضرورياً لتطبيقك أيضاً. أن تكون مدافعاً عن الأمن لا يعني بالضرورة أن ترتدي “قبعة القصدير” (مصطلح مجازي للتفكير المفرط في المخاطر)، بل يعني بناء مستوى مناسب من الأمان. ولكن، ما هو المقدار المناسب من الأمان؟
الإجابة، التي قد تكون محبطة، هي: “الأمر يعتمد على السياق”. يعتمد المقدار الصحيح من الأمان لتطبيقك على من يستخدمه، وماذا يفعل، والأهم من ذلك، ما هي الأشياء غير المرغوبة التي يمكن أن يُجبر على فعلها. يتطلب الأمر بعض التحليل لاتخاذ قرارات بشأن أنواع المخاطر التي يواجهها تطبيقك وكيف ستستعد للتعامل معها. حسناً، الآن هو الوقت المناسب لارتداء “قبعة القصدير” الخاصة بك. دعنا نتخيل الأسوأ.
نمذجة التهديدات: ما هو أسوأ ما يمكن أن يحدث؟
تُعد نمذجة التهديدات (Threat Modeling) مصطلحاً تقنياً لنتائج محاولة تخيل أسوأ الأشياء التي يمكن أن تحدث لتطبيق برمجي. إن استخدام خيالك لتقييم المخاطر (وهو ما يُسمى بشكل مناسب تقييم المخاطر Risk Assessment) هو طريقة غير مدمرة ومريحة للغاية لإيجاد طرق يمكن من خلالها مهاجمة التطبيق. لن تحتاج إلى أي أدوات — فقط فهم لكيفية عمل التطبيق، وقليل من الخيال. ستحتاج إلى تسجيل نتائجك بالقلم والورقة، أو للمستخدمين الأصغر سناً، يعني ذلك تطبيق الملاحظات (notes app) على هاتفك.
يمكن العثور على العديد من المنهجيات المختلفة لتقييم مخاطر التطبيقات في عالم البرمجيات، بما في ذلك منشور NIST Special Publication 800-30 المتعمق. يتضمن إطار عمل كل طريقة خطوات ومخرجات محددة، وسيتناول مستويات مختلفة من التفاصيل عندما يتعلق الأمر بتحديد التهديدات. إذا كنت تتبع إطار عمل، فاختر أولاً الإطار الذي من المرجح أن تكمله. يمكنك دائماً إضافة المزيد من العمق والتفاصيل لاحقاً.
فوائد التقييمات غير الرسمية للمخاطر
حتى التقييمات غير الرسمية للمخاطر مفيدة. عادةً ما تتخذ شكل مجموعة من الأسئلة، وقد تكون موجهة حول التهديدات المحتملة، أو التأثير على الأصول، أو طرق استغلال الثغرات الأمنية. فيما يلي بعض الأمثلة للأسئلة التي تتناول كل اتجاه:
- ما نوع الخصم الذي قد يرغب في اختراق تطبيقي؟ وماذا سيكون هدفه؟
- إذا وقع التحكم في
xفي الأيدي الخطأ، فماذا يمكن للمهاجم أن يفعل به؟ - أين يمكن أن تحدث ثغرة أمنية
xفي تطبيقي؟
توضح نمذجة التهديدات الأساسية الاعتبارات التقنية، التجارية، والبشرية لكل خطر. وعادةً ما تفصل:
- الثغرات الأمنية أو المكونات التي يمكن أن تسبب الخطر.
- التأثير الذي سيحدثه التنفيذ الناجح للخطر على التطبيق.
- العواقب على مستخدمي التطبيق أو المنظمة.
نتيجة تمرين تقييم المخاطر هي نموذج التهديد الخاص بك (Threat Model). بعبارة أخرى، إنها قائمة بالأشياء التي لا ترغب في حدوثها على الإطلاق. وعادةً ما يتم فرزها في تسلسل هرمي للمخاطر، من الأسوأ إلى الأخف. تكون أسوأ المخاطر ذات التأثير السلبي الأكبر، وهي الأهم للحماية منها. أما المخاطر الأخف فهي الأكثر قبولاً — فبينما لا تزال نتيجة غير مرغوبة، إلا أن لها أقل تأثير سلبي على التطبيق والمستخدمين. يمكنك استخدام هذا التسلسل الهرمي الناتج كدليل لتحديد مقدار جهود الأمن السيبراني التي يجب تطبيقها على كل منطقة خطر. سيعمل المقدار المناسب من الأمان لتطبيقك على إزالة (حيثما أمكن) أو تخفيف أسوأ المخاطر.
استراتيجية “الدفع نحو اليسار” في تطوير البرمجيات الآمنة
على الرغم من أن مصطلح “الدفع نحو اليسار” (Pushing Left) قد يبدو وكأنه حركة رقص، إلا أنه يشير بدلاً من ذلك إلى دمج أكبر قدر ممكن من الأمان المخطط له في المراحل المبكرة من تطوير البرمجيات. بناء البرمجيات يشبه إلى حد كبير بناء بيت شجرة، ولكن بدون الهواء النقي اللطيف. تبدأ بالمكونات الأساسية الداعمة، مثل ربط منصة بالشجرة. ثم يأتي الهيكل والجدران والسقف، وأخيراً، معلقات الحائط العصرية الريفية التي تستحق النشر على إنستغرام وتمثال رأس الغزال.
كلما تقدمت في عملية البناء، أصبح إجراء التغييرات على مكون قمت بتثبيته بالفعل أصعب وأكثر تكلفة. إذا اكتشفت مشكلة في الجدران فقط بعد وضع السقف، فقد تحتاج إلى تغيير أو إزالة السقف لإصلاحها. يمكن رسم أوجه تشابه مماثلة لمكونات البرمجيات، ولكن بدون سهولة مماثلة في فك الأجزاء المتصلة.
في حالة بيت الشجرة، من المستحيل البدء بالزينة أو حتى السقف، حيث لا يمكنك تعليقها في الهواء. في حالة تطوير البرمجيات، من الممكن للأسف بناء العديد من المكونات والطبقات التجريدية العليا (top-layer components and abstractions) دون بنية داعمة كافية. ينظر نهج “الدفع نحو اليسار” إلى كل طبقة إضافية على أنها تضيف تكلفة وتعقيداً. ويعني “الدفع نحو اليسار” محاولة تخفيف المخاطر الأمنية قدر الإمكان في كل مرحلة من مراحل التطوير قبل الانتقال إلى المرحلة التالية.
البناء من القاعدة إلى القمة: نهج متكامل لأمن التطبيقات
من خلال الأخذ بنموذج التهديد الخاص بك في الاعتبار خلال المراحل الأولى من تطوير تطبيقك، فإنك تقلل من فرص الحاجة إلى إعادة تصميم مكلفة في وقت لاحق. يمكنك اتخاذ خيارات بشأن البنية (architecture)، والمكونات (components)، والتعليمات البرمجية (code) التي تدعم الأهداف الأمنية الرئيسية لتطبيقك الخاص. بينما ليس من الممكن التنبؤ بجميع الوظائف التي قد يحتاجها تطبيقك في المستقبل، فمن الممكن إعداد أساس متين يسمح بإضافة وظائف إضافية بشكل أكثر أماناً. إن بناء الأمان المناسب من القاعدة إلى القمة سيساعد في جعل تخفيف المخاطر الأمنية أسهل بكثير في المستقبل.
الخلاصة التقنية
يُعد دمج الأمن في كل مرحلة من مراحل دورة حياة تطوير البرمجيات (SDLC) أمراً حيوياً لإنشاء تطبيقات قوية وموثوقة. إن تبني منهجيات مثل نمذجة التهديدات (Threat Modeling) وتطبيق مبدأ “الدفع نحو اليسار” (Pushing Left) لا يقلل فقط من التكاليف والمخاطر المحتملة على المدى الطويل، بل يعزز أيضاً الثقة في المنتج النهائي. فبدلاً من معالجة الثغرات الأمنية كفكرة لاحقة، يجب أن تكون جزءاً لا يتجزأ من التصميم والتنفيذ، مما يضمن أساساً متيناً يمكن البناء عليه بأمان وفعالية.