جميع اللقطات تذهب إلى الجنة

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

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

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

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

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

بديل الصورة

من المثير للاهتمام ، من جانب iOS ، أن محتويات الشاشة في إدارة المهام مخفية.

بديل الصورة

وهناك تفسير لذلك. ولكن المزيد عن ذلك لاحقًا ، نتحدث الآن عن Android. لذا ، لماذا تخفي محتويات الشاشة إذا غادر المستخدم التطبيق؟

دعونا نفهم أولاً كيفية عمل مدير الشاشة (شاشة Recents)


بديل الصورة

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

ما يحدث حقًا (لفترة وجيزة):


  • تحول التطبيق إلى الخلفية
  • يقوم Window Manager بوضع لقطة التطبيق في GraphicBuffer
  • يتم إرسال GraphicBuffer إلى SystemUI عبر Binder لمعاينة التطبيق.

إذن ما نراه هنا ليس محتويات التطبيق ، ولكن فقط لقطة تم التقاطها في اللحظة الأخيرة قبل انتقال تطبيق معين إلى الخلفية.

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

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

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

رفض عمل لقطات أو طمسها ممكن فقط داخل تطبيق معين. وتقول الوثائق أن الشركات المصنعة للأجهزة فقط هي التي يمكنها تعديل الفئة المسؤولة عن آلية استقبال اللقطات وتخزينها.

كيفية منع النظام من عمل اللقطات


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

يمكنك تعيين معلمة النشاط:

android:excludeFromRecents = "true" 

ومع ذلك ، فإن هذه الطريقة ستنتهك منطق تفاعل المستخدم مع التطبيق ، حيث لن يظهر التطبيق على الإطلاق في شاشة Recents.

 if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) { getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE); } setContentView() 

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

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

بالمناسبة ، يمكن للعربة ، من يشك في ذلك :) على الشاشة هي دردشة سرية ، في هذه الحالة يتم استخدام FLAG_SECURE.

بديل الصورة

فلماذا تخفي البنوك محتويات تطبيق على منصة iOS ، والتي تعتبر بالتالي أكثر أمانًا (وهو أمر مضلل) وتتركها كما هي لمنصة Android؟ على الأرجح ، أنهم لا يحبون فقط كيف سيبدو التطبيق في شاشة Recents. هذه مجرد لوحة بيضاء. في iOS ، يسمح لك التنفيذ بالقيام بجمال. ونتيجة لذلك ، نحصل على ضرر أمني من أجل الجمال. ربما لا تهتم ، طالما أن أموالك في المكان الذي تريده ، وسرية البيانات لا تتزعزع. ولكن هل أنت مستعد للدفع؟ ..

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

إذا كنت مهتمًا بهذا الموضوع ، يمكنني أن أصف كيف يعمل كل شيء من الداخل. كيف يمكنني الحصول على لقطات ، وكيف يعمل نظام android ، حول نقاط الضعف في تطبيقات الجوال.

قررت تحدي نفسي وكتابة شيء مفيد على أساس منتظم. سأقوم بنشر الرسومات في قناة paradisecurity @ الخاصة بي في البرقيات ، ثم جمعها في مشاركات كاملة. وداعا وداعا.

Source: https://habr.com/ru/post/ar431024/


All Articles