باعتبارك من أشد المعجبين بهواتف Android، إذا سقط هاتفك فجأة، فهل ستكون فكرتك الأولى هي "يا إلهي!" أو أن أموالك في Google Pay أو Paypal ليست آمنة؟ إذا كان أحدث تطبيق تم تنزيله لا ينبثق فقط العديد من الإعلانات المملة ولكن أيضًا إشعارات غير متوقعة، فهل تعتقد أنها قد تكون محاولة تصيد وإلغاء تثبيت التطبيق على الفور؟
كيف يمكننا التأكد من أن تطبيقنا يوفر تجربة آمنة للمستخدمين الذين ليس لديهم وعي كافٍ بالثغرات الأمنية في Android؟ ما هي الثغرات الأمنية في نظام أندرويد البيئي؟ أين يمكننا استكشاف تقنيات اختبار أمان Android الجديدة؟ كيف يمكننا تبسيط عملية اختبار الأمان؟
أولاً، تخفي ميزة التطوير مفتوح المصدر لنظام التشغيل Android أيضًا مشكلات أمنية متأصلة في تطويره، مثل نظام وضع الحماية لنظام Android (أي الجهاز الظاهري). ومع ذلك، فإن الطبقة الأساسية بها ثغرة تلو الأخرى، مما يسمح للبرامج (أو الأدوات) الضارة بالوصول إلى الجذر وكسر قيود وضع الحماية. تمامًا كما هو الحال في عصر الكمبيوتر الشخصي، لا يوجد نظام تشغيل آمن تمامًا للكمبيوتر الشخصي؛ وفي عصر الإنترنت عبر الهاتف المحمول، لا يوجد نظام تشغيل آمن تمامًا للهاتف المحمول أيضًا. إن المخاطر الأمنية للنظام البيئي مفتوح المصدر لنظام Android تشبه أجراس الإنذار الملطخة بالدماء، والتي تضرب قلوب كل مطور لنظام Android.
ثانيًا، تشبه المخاطر الأمنية في عملية تطوير Android APP/SDK الثقوب السوداء غير المعروفة. لا نعرف أبدًا أين ستكون نهاية المواجهة الأمنية، ومن هم المهاجمون، ومن هم المنهيون، وكيف ندافع ضدهم.
أخيرًا، على مستوى المستخدم، ما هي بعض الثغرات الأمنية الشائعة والتي يمكن التعرف عليها في السلوك الأمني؟
تحتوي كل من تطبيقات Android وSDK على ثغرات أمنية إلى حد ما. ربما في يوم من الأيام، قد يتأثر تطبيقك بإحدى الثغرات الأمنية المذكورة أعلاه. من قبيل الصدفة، أثناء اختبار Android SDK مؤخرًا، اكتشفنا ثغرة أمنية تتعلق بمكونات تطبيقات Android. بناءً على هذا المثال، يتم تلخيص الأساليب والتقنيات والعمليات لاختبار أمان Android SDK.
نظرة عامة على أسباب الضعف
مكون اختياري لأحد التطبيقات (يشار إليه فيما يلي باسم التطبيق) قام Android SDK بفتح منفذ عشوائي محليًا لمراقبة ما إذا كانت خدمة طبقة Java نشطة أم لا. ومع ذلك، عندما تتواصل طبقة Java مع المكون، فإنها لا تتحقق بشكل صارم من معلمات الإدخال، مما يؤدي إلى احتمال امتلائها بكود الهجوم والهجمات الضارة عند استدعاء وظيفة "system()" لنظام Linux.
توضح لقطة الشاشة التالية أنه بعد مهاجمة منفذ المحاكاة، يقوم غرض مكون التطبيق بتعديل محتوى عنوان URL أثناء الاتصال، ويعرض Webview رمزًا مشوهًا:
لن تتم مناقشة مكونات التطبيق الرئيسية الأربعة لتطبيقات Android: النشاط والمستقبل والخدمة وموفر المحتوى، بالإضافة إلى الأدوار الأمنية لمكونات التطبيق التي تتواصل من خلال غرض IPC، بالتفصيل هنا. من خلال الاستفادة من الثغرة الأمنية المتعلقة بالمكونات في المثال أعلاه، يوضح الرسم البياني التالي أبعاد الهجوم المتعلقة بجانب التطبيق الطرفي:
نظرًا لبيئة التطبيق المحلية لتطبيق Android، يفتقر مقبس الشبكة بطبيعته إلى آلية المصادقة والترخيص الدقيقة. لذلك، إذا تم استخدام عميل Android كخادم، فسيتم استخدام الرمز العكسي للبحث في رقم المنفذ العشوائي المحلي للتطبيق، ويتم إرسال الهجوم بشكل نشط إلى المنفذ، وستكون المخاطر الأمنية التالية كامنة:
تنفيذ الأمر المحلي : عندما يتم تحديد اسم حزمة التطبيق المضمن على أنه التطبيق نفسه ويتم تحديد اسم المكون على أنه نشاط التطبيق، يمكن تنفيذ أي نشاط للتطبيق بدأ، بما في ذلك النشاط المحمي غير المصدر، مما تسبب في خطر أمني. على سبيل المثال، يمكن العثور على ثغرة أمنية لرفض الخدمة من خلال بدء العديد من الأنشطة غير المصدرة واحدة تلو الأخرى من خلال طلبات HTTP.
التحكم في الأوامر لتعديل أذونات التطبيق : قم بالتمرير على نية بدء تشغيل مكونات تطبيق Android من خلال منفذ المقبس المفتوح، ثم قم بتنفيذ عمليات مثل بدء النشاط وإرسال البث بأذونات تطبيق مهاجم. نظرًا لأن الأغراض التي يتم تمريرها عبر المقبس لا يمكنها إجراء فحوصات دقيقة على هوية المرسل وأذوناته، وتجاوز حماية الأذونات التي يوفرها Android لمكونات التطبيق، ويمكن أن تبدأ مكونات التطبيق غير المصدرة والمحمية بالأذونات، مما يشكل خطرًا أمنيًا
الكشف عن المعلومات الحساسة، التحكم في الهاتف المحمول : تفتح الخدمة المحلية منفذ UDP للاستماع، وبعد تلقي كلمة أمر محددة، يمكنها إرجاع المعلومات الحساسة للهاتف المحمول. على سبيل المثال، يمكن للخادم الشخصي للهاتف المحمول في بايدو إدارة المفتاح السري للهاتف الخلوي عن بعد، ومن ثم يمكن للمهاجمين غير المصرح لهم إدارة الهاتف الخلوي بالكامل من خلال الشبكة.
تحسين إصدار تقوية أمان Android
أضف عمليات فحص لأوامر النظام وتصفية الأحرف الخاصة في كل من الطبقات الأصلية وطبقات Java.
تشفير اتصال المقبس لعملية JNI Watchdog الخفي.
أضف ميزة التحقق من عناوين URL، والمقاصد، والأنشطة في وظائف الإشعارات المحلية لمنع إعادة التوجيه إلى الروابط الضارة عند النقر على الإشعارات.
تغيير موقع تخزين اسم الحزمة في وحدة التخزين المحلية للتطبيق.
إضافة وظيفة التكوين عبر الإنترنت.
هذه هي المتطلبات المهمة لتحسين تعزيز الأمان.
إذا اتبعت اختبار النظام التقليدي أو اختبار الأداء، فأنت تحتاج فقط إلى إجراء اختبار متقدم بناءً على المتطلبات المتغيرة. ومع ذلك، بالنسبة للاختبارات الأمنية، فإن ضمان قوة أمان SDK يتطلب إجراء اختبارات خاصة عكسية، ومحاكاة أساليب الهجوم الأمني المختلفة، وحالات الاختبار المتباينة للنقاط المعدلة.
بيانات الخصوصية : أمان التخزين الخارجي وأمن التخزين الداخلي؛ التحقق من حفظ أسماء المستخدمين وكلمات المرور وسجلات الدردشة ومعلومات التكوين والمعلومات الخاصة الأخرى محليًا وتشفيرها؛ التحقق من سلامة المعلومات قبل استخدامها.
هجمات الأذونات : تحقق من دليل التطبيق وتأكد من أن أذوناته لا تسمح لأعضاء المجموعة الآخرين بالقراءة أو الكتابة؛ تحقق مما إذا كانت أذونات النظام تتعرض للهجوم.
حماية إذن مكونات Android : منع استدعاء المكونات الداخلية للتطبيق بشكل تعسفي بواسطة برامج الطرف الثالث: منع استدعاء الأنشطة بواسطة برامج الطرف الثالث، ومنع اختطاف النشاط؛ ضمان استقبال البث وأمان الإرسال، واستقبال عمليات البث التي يرسلها التطبيق فقط، ومنع الجهات الخارجية من تلقي المحتوى المرسل؛ منع بدء الخدمات أو إيقافها بشكل ضار؛ التحقق من أذونات تشغيل موفر المحتوى؛ إذا كانت هناك حاجة إلى استدعاء المكونات خارجيًا، فتحقق من تطبيق قيود التوقيع على المتصل.
الترقيات: تحقق من سلامة وقانونية حزمة الترقية لتجنب الاختطاف.
مكتبات الطرف الثالث: في حالة استخدام مكتبات الطرف الثالث، قم بمتابعة تحديثاتها والتحقق من أمانها.
أمان ROM: استخدم ROM الرسمية أو ROM المقدمة من فرق موثوقة لتجنب إضافة الإعلانات المزروعة وأحصنة طروادة وما إلى ذلك.
الإجراءات المضادة لمكافحة الاختراق : مكافحة عملية إلغاء الترجمة، مما يجعل من المستحيل فك الترجمة باستخدام أدوات فك الترجمة أو الحصول على رمز التفكيك الصحيح بعد إلغاء الترجمة؛ ومواجهة التحليل الثابت باستخدام تشويش التعليمات البرمجية والتشفير؛ التصدي لتصحيح الأخطاء الديناميكي عن طريق إضافة تعليمات برمجية لاكتشاف مصححات الأخطاء والمحاكيات؛ منع إعادة الترجمة عن طريق التحقق من التوقيعات والتحقق من قيمة التجزئة لملف dex المترجم.
بعد الانتهاء من اختبار الأمان الخاص واختبار العمليات المنتظمة، قم بإجراء اختبار الانحدار المتجدد لميزات التطبيق الحالية، والتوافق بين الإصدارات الجديدة والقديمة، والتوافق مع إصدارات نظام التشغيل Android المختلفة.
بالمقارنة مع الأداء العادي وحالات اختبار وظائف النظام، تتطلب حالات اختبار الأمان فهمًا أكثر شمولاً لنظام Android البيئي، مثل: تغطية مستوى مظهر أمان المستخدم، ومستوى الهجوم المحلي والبعيد لنظام التطبيق، ومستوى ضعف نظام التشغيل، مع المزيد من التركيز على تصميم حالات اختبار التفكير الهجومي العكسي.
إذا كانت نقطة البداية للتطوير هي الدفاع الأمني، فإن نقطة البداية للاختبار هي عقلية هجوم القراصنة. إن تصميم حالات الاختبار لسيناريوهات الهجوم وتنفيذ تقنيات اختبار الهجوم يحدد مدى قوة أمان SDK.
لضمان أعلى مستوى من الأمان لتطبيقاتك، فكر في استخدام اختبار أمان التطبيقات WeTest. توفر هذه الخدمة تقييمًا شاملاً لمشكلات الأمان في التطبيقات، والكشف في الوقت المناسب عن نقاط الضعف في البرنامج، وتقدم أمثلة لإصلاح التعليمات البرمجية للمساعدة في إصلاح الثغرات الأمنية.
ثق في WeTest لحماية تطبيقك ضد التهديدات المحتملة والحفاظ على تجربة مستخدم آمنة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3