أمان التطبيقات وأمن البرامج: ما الفرق؟

مونيكا تشاكرابورتي

غالبًا ما يتم استخدام المصطلحين "أمان التطبيق" و "أمان البرامج" بالتبادل. ومع ذلك ، هناك في الواقع فرق بين الاثنين. يجادل رائد أمن المعلومات غاري ماكجرو بأن أمن البرامج هو نهج تفاعلي يحدث بعد تثبيت البرنامج. أمن البرمجيات ، من ناحية أخرى ، ينطوي على نهج نشط في مرحلة ما قبل النشر. يجب إنشاء الأمان في جميع مراحل دورة حياة تطوير البرامج (SDLC) لضمان أمان البرنامج. إذن أمان البرامج ليس أمان التطبيقات - إنه ضخم.

أمان التطبيق كمجموعة فرعية من أمان البرامج

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

تشمل أنشطة أمن البرمجيات (ما قبل التوزيع):

- تصميم البرمجيات الآمنة - تطوير إرشادات التشفير الآمنة للمطورين - تطوير إجراءات ومعايير التكوين الآمن لمرحلة التوزيع - التشفير الآمن وفقًا للتعليمات المعمول بها - التحقق من إدخال المستخدم وما يتعلق به تنفيذ استراتيجيات التشفير - مصادقة المستخدم - إدارة جلسة المستخدم - التحكم في الوصول إلى مستوى الوظيفة - استخدام التشفير القوي لحماية البيانات أثناء الراحة والنقل - التحقق من مكونات الطرف الثالث - القبض على أي عيوب في البرنامج

تتضمن أنشطة أمان التطبيق (بعد التعيين) ما يلي:

- اختبارات الأمان بعد الاستضافة - اكتشاف أوجه القصور في تكوين بيئة البرامج - الكشف عن التعليمات البرمجية الضارة (التي تنتجها الخلفية ، قنبلة موقوتة) - التصحيح / التحديث - تصفية IP - حذف الملفات المستخدمة - تنفيذ سياسة البرامج مراقبة برامج وقت التشغيل لزيادة الأداء

لمزيد من المعلومات ، راجع نموذج نضج أمن المباني (BSIMM).

السيناريو 1: أمان تطبيقات الويب غالبًا ما تكون تطبيقات الويب تطبيقات تستند إلى خادم العميل حيث يعمل المستعرض كعميل ويرسل الطلبات إلى المستخدم لتوفير المعلومات ويتلقى إجابات من الخادم. لذلك ، يرتبط أمان تطبيق الويب بقضايا العميل وحماية الخادم وحماية البيانات أثناء الراحة والنقل. ما لم يتم اتخاذ الاحتياطات في تصميم واجهة المستخدم ، فإنه من الصعب حل المشاكل من جانب العميل. أحد الأمثلة على ذلك هو البرامج النصية المستندة إلى الموقع ، حيث يمكن تعديل كائن DOM من كائن DOM آخر باستخدام جافا سكريبت. توفر المستعرضات الحديثة حماية أكبر للتطبيقات ، ولكن العديد من البرامج تدعم التوافق المتقدم ، والذي يتضمن مجموعة كبيرة من المستخدمين ، والإصدارات القديمة من المستعرضات ، وأجهزة الكمبيوتر غير الآمنة. لذلك ، عند معالجة هذه المشكلات ، يجب إجراء الأمان بواسطة العميل أثناء مرحلة التصميم. أثناء مراحل التطوير والتشفير للتطبيق ، يمكن حماية المكونات من جانب الخادم باستخدام نظيراتها. وهذا يتطلب تثبيت برنامج نظام / خادم آمن. لم يعد برنامج الخادم القديم ، مثل Apache Tomcat (3.1 والإصدارات الأقدم) مدعومًا رسميًا وربما أبلغ عن ثغرات أمنية لهذه الإصدارات. يجب تحديثها على الفور إلى أحدث إصدار.

نقاط الضعف الأمنية المشتركة الأخرى للبنية التحتية:

- لافتات خادم Verbose - صفحات التخزين المؤقت التي تخزن البيانات محليًا وفي النقل - حزم مشفرة مدعومة بالخادم - عناوين شبكة النطاق تتأثر بملفات تعريف الارتباط - أمان ملفات تعريف الارتباط

السيناريو 2: أمن التطبيقات المحمولة

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

تتضمن عوامل الخطر في البرامج المستندة إلى الأجهزة المحمولة ما يلي:

- ترميز التطبيق - نشر التطبيق - تكوين التطبيق - تكوين الجهاز

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

أنواع اختبار التطبيق

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

  1. يركز اختبار أمان البرامج الثابت (SAST) على شفرة المصدر.
  2. تم تصميم اختبار أمان التطبيق الديناميكي (DAST) لتحديد نقاط الضعف في البرامج والبنية التحتية.
  3. يستخدم اختبار الأمان العملي التفاعلي (IAST) مزيجًا من كل من DAST و SAST ويقوم بإجراء تحليل سلوكي لتحديد تدفق البيانات والمدخلات / المخرجات وما إلى ذلك.
  4. يسمح Runtim للدفاع عن النفس (RASP) للتطبيقات بحماية نفسها باستخدام ميزات أمان محرك وقت التشغيل مثل إنهاء الجلسة ، وإغلاق البرنامج ، والإبلاغ عن الأعطال ، وما إلى ذلك. .

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

تشمل مخاطر البرامج ما يلي:

- بنية تحتية غير تطبيق ويب / ويب - تصميم آمن - إعداد غير صحيح - تقييد التكنولوجيا - تشفير الإرسال - أمان قاعدة البيانات الخلفية

كما ترى في السيناريوهين أعلاه ، يختلف اختبار التطبيق في مرحلة ما بعد النشر للويب وتطبيقات الهاتف المحمول بطرق عديدة. تميل تطبيقات الجوال إلى أن تكون أكثر تشويشًا من تطبيقات الويب. بالإضافة إلى ذلك ، يعد أمان الجهاز المحمول عاملاً مهمًا في أمان تطبيق الهاتف المحمول.

أين يتناسب أمان الشبكة مع كل هذا؟

هناك اعتقاد خاطئ واسع النطاق حول أمان البرامج ، مثل جدران الحماية التي تحد من أداء البرامج أو البرامج مثل جدران الحماية. تنفق الشركات الكثير من الأموال على إجراءات أمان الشبكة (مثل أجهزة التوجيه التي تمنع عرض عنوان IP مباشرة على الإنترنت).

تشمل الإجراءات المضادة الشائعة الأخرى ما يلي:

- جدران الحماية النموذجية - برامج التشفير / فك التشفير - برامج مكافحة الفيروسات - برامج كشف / إلغاء تنشيط برامج التجسس - أنظمة المصادقة البيومترية - أدوات تحليل البيانات ومنع فقدان البيانات

يظهر تقرير خرق بيانات Verizon لعام 2015 فقط 9.4٪ من هجمات تطبيقات الويب بين الحوادث المختلفة. يجب النظر إلى مبادرة أمن البرامج (SSI) الخاصة بالمنظمة خارج نطاق أمان التطبيقات ويجب أن يتم دمجها في جميع أنواع البرامج.

[tweetthis remove_hidden_hashtags = "true"] غالبًا ما يتم استخدام # Appsec و #Swsec بالتبادل. ولكن هناك فرق كبير. إليك السبب: [/ tweetthis]

أمان التطبيق وأمن البرامج: استكماله

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

أمان التطبيقات هو الخطوة الأولى في رحلة أمان البرامج. اعرف المزيد.