Kategori OWASP: MASVS-PLATFORM: Interaksi Platform
Ringkasan
Serangan StrandHogg/kerentanan Afinitas Tugas diaktifkan/disebabkan oleh bug desain dalam cara Android menangani beberapa tugas, khususnya fitur yang disebut pengindukan ulang tugas. Pengertian pengindukan ulang tugas aplikasi adalah fitur yang memungkinkan aplikasi memindahkan aktivitas dari satu tugas ke tugas lainnya.
Serangan StrandHogg memanfaatkan kurangnya kejelasan tentang cara memeriksa aktivitas stack tugas aplikasi yang masuk dan memungkinkan aplikasi berbahaya untuk melakukan salah satu dari hal berikut:
- memindahkan aktivitas berbahaya ke atau dari stack korban
- menetapkan aktivitas berbahaya sebagai stack hasil setelah aktivitas korban selesai.
Kerentanan ini dieksploitasi dengan memanipulasi setelan allowTaskReparenting
dan
taskAffinity
.
Dampak
Aplikasi berbahaya dapat menetapkan taskAffinity dari salah satu aktivitasnya agar cocok dengan packageName aplikasi target. Hal ini kemudian dapat ditambah dengan pembajakan intent, sehingga saat berikutnya aplikasi target diluncurkan oleh pengguna, aplikasi berbahaya juga diluncurkan dan ditampilkan di atas aplikasi target.
Kerentanan Afinitas Tugas dapat digunakan untuk membajak tindakan pengguna yang sah.
Pengguna dapat ditipu sehingga memberikan kredensial ke aplikasi berbahaya. Secara default, setelah aktivitas dimulai dan dikaitkan dengan tugas, pengaitan tersebut akan tetap ada selama siklus proses aktivitas. Namun, menetapkan allowTaskReparenting ke benar (true) akan mengubah pembatasan ini, sehingga aktivitas yang ada dapat di-reparent ke tugas "native" yang baru dibuat.
Misalnya, Aplikasi A dapat ditargetkan oleh Aplikasi B, yang mengalihkan aktivitas Aplikasi A ke tumpukan aktivitas Aplikasi B setelah kembali dari aktivitas Aplikasi A yang telah selesai. Transisi dari satu aplikasi ke aplikasi lain ini disembunyikan dari pengguna dan menimbulkan ancaman phishing yang signifikan.
Mitigasi
Mengupdate ke android:targetSdkVersion=>28
.
Serangan StrandHogg/kerentanan afinitas Tugas di-patch pada Maret 2019 dan Android SDK versi 28 dan yang lebih baru (Android 9) berisi patch OS yang sesuai untuk menghindari kerentanan ini. Meskipun Anda dapat memitigasi sebagian dari serangan StrandHogg versi 1 melalui konfigurasi aplikasi individual, serangan versi 2 hanya dapat dicegah dengan patch versi SDK ini.
Referensi
- Makalah akademik awal yang menjelaskan kerentanan di Usenix 15
- Perluasan kerentanan awal pada grup Keamanan Promon