TrustManager X.509 tidak aman

Kategori OWASP: MASVS-CODE: Kualitas Kode

Ringkasan

Class X509TrustManager bertanggung jawab untuk memverifikasi keaslian server jarak jauh. Hal ini dilakukan dengan memvalidasi sertifikat server.

Implementasi X509TrustManager yang tidak aman di aplikasi Android adalah implementasi yang tidak memverifikasi dengan benar keaslian server yang digunakan aplikasi untuk berkomunikasi. Hal ini memungkinkan penyerang meniru identitas server yang sah dan mengelabui aplikasi agar mengirimkan data sensitif ke penyerang.

Kerentanan ini ada karena menggunakan class X509TrustManager. Java dan Android memungkinkan penggantian verifikasi server sepenuhnya. Class X509TrustManager memiliki dua fungsi yang diinginkan: checkServerTrusted() dan getAcceptedIssuers(). Panggilan fungsi ini dapat dikonfigurasi untuk memercayai semua sertifikat X.509. Logika validasi kustom dapat berisi bug atau tidak lengkap, dan mengizinkan koneksi yang tidak terduga. Dalam semua kasus ini, tujuan class telah diabaikan dan koneksi jaringan yang dibuat berdasarkan output X509TrustManager tidak aman.

Dampak

Implementasi X509TrustManager yang tidak aman dapat menyebabkan kerentanan yang dapat digunakan untuk melakukan serangan MitM (Man-in-the-Middle) pada traffic jaringan dari aplikasi korban. Dampak dari pemanfaatan kode yang tidak aman ini adalah data jaringan aplikasi pengguna dapat disusupi oleh penyerang jaringan (dari jarak jauh atau lokal) jika kode ini dipicu. Dampaknya bergantung pada konten traffic jaringan yang tidak sengaja terekspos (PII, informasi pribadi, nilai sesi sensitif, kredensial layanan, dll.).

Mitigasi

Gunakan fungsi NetworkSecurityConfig.xml untuk memastikan semua koneksi produksi, pengujian, proses debug, dan tahap pengembangan ditangani dengan benar, bukan menggunakan atau menerapkan validasi sertifikat TLS/SSL kustom. Jika penggunaan sertifikat yang ditandatangani sendiri diperlukan untuk build pengujian dan debug, sebaiknya gunakan NetworkSecurityConfig, bukan menerapkan X509TrustManager kustom.

Referensi