Semua foto masuk surga

alt gambar Sekarang kita semua menggunakan aplikasi perbankan. Nyaman, cepat, dan, menurut kami, aman. Bank bahkan memasukkan kode pin tambahan sehingga meskipun ponsel Anda hilang atau jatuh ke tangan orang luar, dana dan data rahasia Anda terlindungi. Dan itu sangat keren! Bank peduli akan keamanan kita!

Tetapi, sayangnya, jika Anda membuka aplikasi perbankan yang sama di task manager, Anda akan melihat semua isi layarnya (misalnya, informasi akun, kartu bank, obrolan, di mana Anda mendiskusikan sesuatu dengan karyawan bank). Anda dapat memeriksa ini di aplikasi perbankan Anda. Saya mempelajari semua yang paling terkenal - dan semuanya tidak menyembunyikan informasi rahasia ketika Anda berada di latar belakang.

Misalnya, saya membuat kaleng abstrak di halaman abstrak. Dan sekarang saya akan segera bertanya kepada Anda: apakah Anda akan mentransfer uang ke ibu / pacar / anjing Anda, Anda sudah berada di halaman transfer dan meninggalkan aplikasi untuk menyalin kode dari sms (jika Anda menolak akses ke aplikasi perbankan karena paranoia), atau melihat mana Informasi apa saja. Tetapi ketika Anda kembali memutuskan untuk kembali ke aplikasi perbankan Anda, layar mana yang Anda pilih?

Seperti yang kita lihat, sebelum Anda adalah dua layar yang benar-benar identik dan terburu-buru Anda mungkin tidak melihat ini. Anda klik pada aplikasi terakhir, masuk ke sana, masukkan data dan voila, uang Anda telah ditransfer. Di mana mereka ditransfer? Kepada siapa?

Dan masalahnya bukan hanya di bank abstrak itu, saya melihat beberapa bank paling populer dan mereka semua menderita masalah seperti itu.

alt gambar

Menariknya, di sisi iOS, konten layar di task manager disembunyikan.

alt gambar

Dan ada penjelasan untuk ini. Tetapi lebih lanjut tentang itu nanti, sekarang kita berbicara tentang Android. Jadi, mengapa menyembunyikan konten layar jika pengguna telah meninggalkan aplikasi?

Mari kita pertama-tama memahami cara kerja pengelola layar (Layar terbaru)


alt gambar

Pada layar ini kita melihat daftar aplikasi yang sebelumnya dibuka. Kami bahkan diperlihatkan tempat kami menghentikan interaksi kami dengan aplikasi tertentu. Tetapi kenyataannya adalah bahwa kita tidak melihat aplikasi itu sendiri, kita melihat snapshot yang dilakukan sebelum keluar dari aplikasi.

Apa yang sebenarnya terjadi (secara singkat):


  • Aplikasi telah beralih ke latar belakang
  • Window Manager menempatkan snapshot aplikasi di GraphicBuffer
  • GraphicBuffer dikirim ke SystemUI melalui Binder untuk melihat pratinjau aplikasi.

Jadi apa yang kita lihat di sini bukan isi dari aplikasi, tetapi hanya snapshot yang diambil pada saat terakhir sebelum transisi aplikasi tertentu ke latar belakang.

Tapi, Anda dapat menebaknya, ini tidak sesederhana itu, Anda dapat mengakses snapshot ini dan, misalnya, juga memperlihatkan kepada pengguna di layar Terbaru aplikasi lain dengan kedok perbankan, yang digunakan oleh Trojan. Pengguna kembali ke aplikasi perbankan, memasukkan semua detail yang diminta, uang ditransfer, tetapi tidak sama sekali di tempat yang kita inginkan.

Atau Anda dapat mengirim foto-foto ini, misalnya, ke China, tempat orang-orang Cina yang keras mengumpulkan informasi tentang segala sesuatu dan semua orang. Metode menggunakan tangkapan layar yang diperoleh dapat dipikirkan tanpa akhir.

Untuk sebagian besar, tentu saja, aplikasi perbankan atau aplikasi yang berisi informasi penting yang tidak dimaksudkan untuk mencongkel mata perlu menjaga menyembunyikan data rahasia.

Tolak membuat snapshot, atau membuat foto itu hanya dimungkinkan dalam aplikasi tertentu. Dan dokumentasi mengatakan bahwa hanya produsen perangkat yang dapat memodifikasi kelas yang bertanggung jawab atas mekanisme untuk menerima dan menyimpan foto.

Bagaimana mencegah sistem dari melakukan snapshot


Namun ada beberapa cara, sayangnya, tidak semuanya cukup optimis. Jika Anda ingin menggunakannya di aplikasi Anda, pastikan semuanya bekerja dengan baik di semua perangkat.

Anda dapat mengatur parameter untuk aktivitas:

android:excludeFromRecents = "true" 

Namun, metode ini akan melanggar logika interaksi pengguna dengan aplikasi, karena aplikasi tersebut tidak akan muncul sama sekali di Layar Terbaru.

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

Metode ini tidak melanggar logika interaksi, tetapi sistem mulai memperlakukan konten layar aplikasi sebagai terproteksi, tidak memungkinkan snapshot dibuat. Berikut ini adalah contoh bagaimana ini akan terlihat di Layar Terkini.

Selain itu, ada cara untuk melacak onPause (). Tapi di sini Anda harus terus menjaga tampilan yang disiapkan dalam kondisi View.GONE, sehingga ketika aplikasi masuk ke latar belakang Anda dapat membuat View.VISIBLE. Tetapi ini juga tidak akan bekerja dengan sangat andal, karena, sayangnya, tidak mungkin untuk mengontrol waktu pengambilan foto.

Ngomong-ngomong, kereta bisa, yah, siapa yang meragukannya :) Di layar adalah obrolan rahasia, dalam hal ini FLAG_SECURE digunakan.

alt gambar

Jadi mengapa bank menyembunyikan konten aplikasi pada platform iOS, yang karena itu dianggap lebih aman (yang menyesatkan), dan membiarkannya sebagaimana adanya untuk platform Android? Kemungkinan besar, mereka hanya tidak suka tampilan aplikasi di Layar Terbaru. Itu hanya kanvas putih. Di iOS, implementasinya memungkinkan Anda melakukannya dengan cantik. Alhasil, kami mendapat kerusakan keamanan demi kecantikan. Mungkin Anda tidak peduli, selama uang Anda berada di tempat yang Anda inginkan, dan kerahasiaan data tidak tergoyahkan. Tetapi apakah Anda siap membayar?

Jadi, agar tidak berakhir dengan nada pesimistis seperti itu, kami akan mengajukan pertanyaan: dapatkah itu dilakukan dengan indah untuk Android juga? Sebenarnya, saya sudah menemukan cara, tetapi pertama-tama Anda harus mengujinya.

Jika Anda tertarik dengan topik ini, saya bisa menjelaskan cara kerjanya dari dalam. Bagaimana saya bisa mendapatkan foto, cara kerja sistem android, tentang kerentanan aplikasi seluler.

Saya memutuskan untuk menantang diri saya sendiri dan menulis sesuatu yang bermanfaat secara teratur. Saya akan memposting sketsa di saluran @paradisecurity saya di telegram, dan kemudian mengumpulkannya dalam posting penuh. Sampai jumpa.

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


All Articles