Kategori OWASP: MASVS-PLATFORM: Interaksi Platform
Ringkasan
Tapjacking setara dengan aplikasi Android yang memiliki kerentanan web clickjacking: Aplikasi berbahaya menipu pengguna agar mengklik kontrol yang relevan dengan keamanan (tombol konfirmasi, dll.) dengan mengaburkan UI dengan overlay atau dengan cara lain. Di halaman ini, kami membedakan dua varian serangan: Oklusi penuh dan sebagian. Dalam oklusi penuh, penyerang menempatkan area sentuh, sedangkan pada oklusi parsial, area sentuh tetap tidak terhalang.
Dampak
Serangan tapjacking digunakan untuk mengelabui pengguna agar melakukan tindakan tertentu. Dampaknya bergantung pada tindakan yang ditargetkan oleh penyerang.
Risiko: Oklusi penuh
Dalam oklusi penuh, penyerang akan menempatkan area sentuh untuk membajak peristiwa sentuh:
Mitigasi
Oklusi penuh dicegah dengan menetapkan View.setFilterTouchesWhenObscured(true)
dalam kode. Tindakan ini memblokir sentuhan yang diteruskan oleh overlay. Jika menginginkan pendekatan deklaratif, Anda juga dapat menambahkan android:filterTouchesWhenObscured="true"
dalam file tata letak untuk objek View
yang ingin dilindungi.
Risiko: Oklusi parsial
Dalam serangan oklusi parsial, area sentuh tetap tidak disamarkan:
Mitigasi
Oklusi sebagian dimitigasi dengan mengabaikan peristiwa sentuh yang memiliki flag FLAG_WINDOW_IS_PARTIALLY_OBSCURED
secara manual. Tidak ada perlindungan default terhadap skenario ini.
Peringatan potensial: Mitigasi ini dapat mengganggu aplikasi yang tidak berbahaya. Dalam beberapa kasus, peluncuran perbaikan ini tidak memungkinkan karena akan berdampak negatif pada pengalaman pengguna saat oklusi parsial disebabkan oleh aplikasi yang tidak berbahaya.
Risiko spesifik
Bagian ini mengumpulkan risiko yang memerlukan strategi mitigasi non-standar atau dimitigasi di tingkat SDK tertentu dan dilakukan untuk menyelesaikan.
Risiko: android.Manifest.permission.SYSTEM_ALERT_WINDOW
Izin SYSTEM_ALERT_WINDOW
memungkinkan aplikasi membuat jendela yang ditampilkan di atas semua aplikasi.
Mitigasi
Versi Android yang lebih baru telah memperkenalkan beberapa mitigasi, termasuk hal berikut:
- Di Android 6 (API level 23) dan versi yang lebih baru, pengguna harus secara eksplisit memberikan izin bagi aplikasi untuk membuat jendela overlay.
- Di Android 12 (API level 31) dan versi yang lebih baru, aplikasi dapat meneruskan
true
keWindow.setHideOverlayWindows()
.
Risiko: Toast kustom
Penyerang dapat menggunakan Toast.setView()
untuk menyesuaikan tampilan pesan toast. Di Android 10 (API level 29) dan yang lebih rendah, aplikasi berbahaya dapat meluncurkan toast tersebut dari latar belakang.
Mitigasi
Jika aplikasi menargetkan Android 11 (API level 30) atau versi yang lebih baru, sistem akan memblokir toast kustom latar belakang. Namun, mitigasi ini dapat dihindari dalam beberapa situasi menggunakan Toast burst, yaitu ketika penyerang mengantrekan beberapa toast saat berada di latar depan dan toast tersebut akan terus diluncurkan bahkan setelah aplikasi beralih ke latar belakang.
Serangan toast burst dan toast latar belakang sepenuhnya dimitigasi mulai Android 12 (API level 31).
Risiko: Sandwich aktivitas
Jika aplikasi berbahaya berhasil meyakinkan pengguna untuk membukanya, aplikasi tersebut masih dapat meluncurkan aktivitas dari aplikasi korban, lalu menempatkan aplikasi tersebut dengan aktivitasnya sendiri, sehingga membentuk sandwich aktivitas dan membuat serangan oklusi parsial.
Mitigasi
Lihat mitigasi umum untuk oklusi parsial. Untuk pertahanan yang mendalam, pastikan Anda tidak mengekspor aktivitas yang tidak perlu diekspor untuk mencegah penyerang melakukan sandwich pada aktivitas tersebut.
Referensi
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- android:exported
- # Pengelolaan kunci {:#key-management}
- Menjalankan kode DEX tersemat langsung dari APK