تطبيقات

5 نصائح لمعرفة العيوب الأمنية في تطبيقات iOS

نصائح مهمة من إسيت لمطوري تطبيقات iOS

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

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

(1) ضع نفسك مكان المبرمج

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

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

(2) احصل على الكود المصدري (source code)

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

تعمل البرمجة الكائنية التوجه (سي-الكائنية / Objective-C) مع الهندسة العكسية ومن الممكن الحصول على نظرة واضحة إلى حد ما على الآليات الداخلية للتطبيق، حتى بدون البدء من الكود المصدري. ويمكن للمهاجم النظر- سواء بشكل نسبي أو كلي- إلى ما ستحصل عليه باستخدام الشفرة خلال وقت غير محدود.  فمن الأفضل توفير الوقت وتكريس جهودك لإيجاد تلك العيوب الأمنية.

(3) ضع في اعتبارك نقاط الضعف في اللغة

بالرغم من أن Objective-C وCocoa يمنعان بعض الأخطاء الأمنية المتكررة في C و C++، فإن استخدام واجهات برمجة التطبيقات الخطيرة، مثل strcpy وstrcat، أو آليات ضعيفة التنفيذ، مثل الفئات أو swizzling، يمكن أن يتسبب في حدوث سلوكيات غير متوقعة تؤدي إلى أخطاء أمنية خطيرة. لهذا السبب، تأكد من التحقيق في كيفية تأثير هذه التقنيات على التطبيق.

(4) تحديد إمكانية إعادة استخدام الكود الضعيف

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

(5) استخدام فريقين اختبار: واحد مع jailbreak و الاَخر مع المصنع

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

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

اضغط لتعلق

شارك بردك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

To Top