Kategori OWASP: MASVS-CODE: Kualitas Kode
Ringkasan
Implementasi HostnameVerifier
bertanggung jawab untuk memverifikasi bahwa
nama host di sertifikat server cocok dengan nama host server yang
ingin dihubungkan oleh klien.
Implementasi HostnameVerifier
yang tidak aman di aplikasi Android adalah
implementasi yang tidak memverifikasi dengan benar nama host 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 class HostnameVerifier
memiliki panggilan
fungsi yang dapat melewati validasi nama host sertifikat X.509 dan, sebagai gantinya, hanya
memverifikasi hash sertifikat. Kesalahpahaman umum adalah fungsi
SSLSession#isValid
menjalankan operasi terkait keamanan, meskipun tujuannya hanya untuk
memeriksa apakah sesi valid dan tersedia untuk melanjutkan atau bergabung; di mana kedua hal tersebut
tidak memvalidasi keamanan sesi. Class HostnameVerifier
telah
digantikan oleh NetworkSecurityConfig.
Dampak
Implementasi HostnameVerifier
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.