🚀 أصبحت CloudSek أول شركة للأمن السيبراني من أصل هندي تتلقى استثمارات منها ولاية أمريكية صندوق
اقرأ المزيد

تطبيق Android هو برنامج يعمل على الأجهزة التي تعمل بنظام التشغيل Android. تتم كتابة تطبيقات Android بشكل شائع بلغة برمجة Java ويتم تجميعها إلى bytecode. هذه التطبيقات هي في الأساس مجموعات حزم Android (ملفات APK) التي تتيح توزيع وتثبيت تطبيقات Android. هذا مشابه لكيفية استخدام ملفات.exe في نظام التشغيل Windows. تم تسجيل الربع الثاني من عام 2020 إجمالي 2.96 مليون تطبيق Android مقارنة بـ 2.6 مليون في عام 2018 (على Google Play). وفي عام 2018، تم العثور على نقاط ضعف عالية الخطورة في 43٪ من تطبيقات Android.
يحتوي ملف APK على المكونات التالية:
على عكس Windows، يقوم Android بتشغيل كل تطبيق من تطبيقاته في بيئة الحماية. يحد وضع الحماية للتطبيق أو النقل بالحاويات من البيئة التي يمكن فيها تنفيذ التعليمات البرمجية. يهدف إلى حماية التطبيق من التفاعل مع العناصر الضارة الخارجية.
يعتمد نظام التشغيل Android على نظام Linux الذي يستخدم نواة Linux. ولكن على عكس نظام Linux، يتم تعيين معرف مستخدم فريد لكل تطبيق Android. يقوم النظام بعد ذلك بتعيين الأذونات لمعرف مستخدم معين، مما يسمح لهذا التطبيق وحده بالوصول إلى ميزات معينة.
عادةً ما يتعين على جميع تطبيقات Android طلب الإذن للوصول إلى البيانات الحساسة مثل جهات الاتصال والرسائل القصيرة والكاميرات. يتم تقييد جميع ميزات النظام هذه بمساعدة واجهة برمجة تطبيقات الأذونات. يُسمح للتطبيق بالوصول إلى ميزات النظام فقط إذا منح المستخدم حق الوصول.
على الرغم من أن تطبيقات Android مكتوبة بلغة Java، إلا أن ملفات الفئة التي تحتوي على تعليمات Java الافتراضية للجهاز (Java bytecode) يتم تحويلها إلى ملفات Dalvik القابلة للتنفيذ (ملفات.dex) التي تحتوي على رموز Dalvik bytecodes، قبل تثبيتها.
تدير النواة التي يستخدمها نظام التشغيل Android عمل كل تطبيق على الجهاز، حيث تقوم آلة Dalvik الافتراضية بتشغيل عمليات أو تطبيقات مستقلة تحت معرفات مستخدم مختلفة.

تحتوي تطبيقات الويب على روابط عالمية للتفاعل مع التطبيقات الأخرى، على عكس تطبيقات Android.
الاتصالات من تطبيق إلى تطبيق Android محدودة، ومع ذلك، يتم تحقيق ذلك من خلال الطرق التالية:
يتم استخدام النية لطلب إجراء من مكون تطبيق مختلف. يساعد على تنسيق الأنشطة التي تقوم بها التطبيقات المختلفة. على سبيل المثال، اختيار صورة من معرض الصور الخاص بك لتعيين صورة عرض WhatsApp الخاصة بك.
الروابط العميقة هي روابط توجهك إلى وجهة معينة من التطبيق.
Deeplinks هو ما يجعل من الممكن للمستخدمين مشاركة رابط مقالة Medium على Twitter.
يتيح الموثق الاتصال بين العمليات (IPC) داخل النواة. يسمح للعمليات بإدارة البيانات المشتركة. يعد ربط الكائنات وتضمينها (OLE) بواسطة Microsoft مثالاً على IPC.
يقوم موفرو المحتوى بإدارة الوصول إلى المستودع المركزي للبيانات. إنها توفر البيانات للتطبيقات الخارجية. على سبيل المثال، يمنح موفرو المحتوى الوصول إلى التطبيقات لاستخدام جهات الاتصال والرسائل القصيرة على الجهاز.
على الرغم من أن تطبيقات Android عادةً ما تكون في وضع الحماية ومعزولة، مما يحد من الاتصالات من تطبيق إلى تطبيق، إلا أنه لا يزال من الممكن إساءة استخدامها.
يؤدي التكوين الخاطئ للتطبيق أو ممارسات الترميز السيئة للمطور إلى جعل تطبيقات Android عرضة للهجمات الإلكترونية. فيما يلي أكثر مشكلات أمان تطبيقات Android شيوعًا التي يواجهها المطورون والمستخدمون.
بيانات الاعتماد المشفرة هي في الأساس كلمات مرور ذات نص عادي ومفاتيح API والرموز وما إلى ذلك في الكود المصدري. على الرغم من أنه من الشائع جدًا أن تدمج تطبيقات Android واجهات برمجة تطبيقات الطرف الثالث، إلا أنها قد لا تكون بالضرورة لمكالمات API من جانب العميل. عندما يتم عرض بيانات الاعتماد هذه بنص عادي، فإنها تشكل أهدافًا سهلة لعمليات استغلال تخمين كلمات المرور.
في الآونة الأخيرة، تعرض تطبيق CSC BHIM لخرق البيانات، مما أدى إلى كشف 70 ألف سجل مستخدم، بسبب قاعدة بيانات AWS غير الآمنة. يُزعم أن المطورين قاموا بترميز بيانات اعتماد AWS في التطبيق نفسه. في مثل هذه الحالات، يمكن لتحليل التعليمات البرمجية الثابتة تصحيح شفرة المصدر قبل تنفيذ البرنامج. إنه يكشف أي ثغرة أمنية داخل شفرة المصدر الثابتة. هذه العملية قابلة للتشغيل الآلي أيضًا. ومع ذلك، يمكن أن يكون هناك الكثير من الإيجابيات الكاذبة.
يستخدم التشفير المكسور في تطبيقات Android خوارزميات ضعيفة للتشفير وفك التشفير، أو ينفذ خوارزمية قوية بطريقة غير آمنة.
تم العثور على وظيفة التجزئة المشفرة MD5 المستخدمة على نطاق واسع لتكون عرضة للخطر. يُعرف Stream cipher RC4 ببساطته ومع ذلك تم اكتشاف وجود العديد من نقاط الضعف.
يمكن العثور على تشفير ضعيف/ضعيف تلقائيًا من خلال التحليل الثابت.
تقوم برامج فك تشفير Java بفك شفرة Java الثانوية إلى كود Java المصدر. باستخدام هذه الأدوات، نقوم بتحويل APK لإنتاج شفرة المصدر. على الرغم من أنها قد لا تكون الشفرة الدقيقة التي كتبها المطور، إلا أن الفئات والأساليب والمنطق ستكون هي نفسها. يكشف هذا عن بيانات اعتماد مشفرة أو عيوب أخرى في التعليمات البرمجية التي ربما استخدمها المطور.
تتضمن ممارسات الترميز السيئة الأكثر شيوعًا للمطورين التشفير المخصص الذي يمكن كسره بسهولة تامة.
يعد أمان النقل ضروريًا عند الاتصال بالخادم، ويتم فرض ذلك من خلال HTTPS الذي يستخدم أمان طبقة النقل (TLS) لتشفير البيانات. ومع ذلك، يقوم العديد من المطورين بإبطال هذه الحماية عن غير قصد. تختار العديد من التطبيقات الوثوق بأي شهادة يتم تقديمها دون التحقق من سلسلة الثقة. يتم تنفيذ مثل هذه التعليمات البرمجية من خلال الإنتاج عندما يقوم المطورون باختبار التطبيق في بيئة محلية قد تحتوي على شهادات موقعة ذاتيًا، فإنهم يتجاوزون اختبارات SSL عن قصد.
يمكن تعطيل التحقق من SSL من خلال التعليمات البرمجية مثل إنشاء اتصال غير مصدق من خلال SSLSocketFactory المخصص الذي سيؤدي إلى إيقاف تشغيل جميع عمليات التحقق من SSL.
يمكن اكتشاف هذه الطرق الالتفافية بسهولة من خلال التحليل الثابت.
WebView هو مكون مدعوم بمحرك متصفح يتيح لتطبيقات Android فتح صفحات الويب داخل التطبيق نفسه. نظرًا لأن المتصفحات تتعرض للهجمات من خلال النوايا والروابط العميقة، فليس من الآمن فتح صفحات الويب غير الموثوق بها داخل التطبيق.
على سبيل المثال، عثر مستخدم Twitter على خطأ WebView في ArogyaSetu، والذي كشف الملفات الداخلية في قاعدة البيانات المحلية. كان WebView قابلاً للاتصال عن قصد وكان أي تطبيق مثبت على الهاتف قادرًا على تحميل عنوان URL في WebView. يمكن للمهاجم الذي يتحكم في WebView أن يقرر صفحة الويب التي يجب فتحها. في حالة تمكين JavaScript، يمكن للمهاجمين تنفيذ شفرة JavaScript داخل التطبيق، لتنفيذ أنشطة ضارة.
يتيح إنشاء ملفات خارج Android sandbox للمستخدمين عرض محتوى الملف أو تغييره، وقد يكون هذا مصدر قلق أمني كبير. يستغل المهاجمون البيانات الحساسة المكشوفة أو بيانات تكوين التطبيق المخزنة خارج وضع الحماية للتطبيق بتنسيق يمكن قراءته وكتابته من قبل أي مستخدم.
تعمل ميزات الأمان الأساسية لنظام Android مثل وضع الحماية للتطبيق على تقليل مشكلات الأمان إلى حد كبير. ولكن من العيوب التي تمت مناقشتها أعلاه، تجدر الإشارة إلى أن ممارسات الترميز الجيدة تضمن أيضًا أمان تطبيقات Android. أيضًا: