HTTP Cleartext/Teks Biasa

Kategori OWASP: MASVS-NETWORK: Komunikasi Jaringan

Ringkasan

Mengizinkan komunikasi jaringan cleartext di aplikasi Android berarti siapa saja yang memantau traffic jaringan dapat melihat dan memanipulasi data yang dikirim. Hal ini dapat menjadi kerentanan jika data yang dikirim mencakup informasi sensitif seperti sandi, nomor kartu kredit, atau informasi pribadi lainnya.

Terlepas dari apakah Anda mengirim informasi sensitif atau tidak, penggunaan cleartext masih dapat menjadi kerentanan karena traffic HTTP cleartext/teks biasa juga dapat dimanipulasi melalui serangan poisoning terhadap jaringan seperti poisoning ARP atau DNS, yang berpotensi memungkinkan penyerang memengaruhi perilaku aplikasi.

Dampak

Saat aplikasi Android mengirim atau menerima data dalam cleartext melalui jaringan, siapa saja yang memantau jaringan dapat menangkap dan membaca data tersebut. Jika data ini berisi informasi sensitif seperti sandi, nomor kartu kredit, atau pesan pribadi, hal ini dapat menyebabkan pencurian identitas, penipuan keuangan, dan masalah serius lainnya.

Misalnya, aplikasi yang mengirimkan sandi dalam cleartext dapat mengekspos kredensial ini ke pelaku kejahatan yang menyadap traffic. Data ini kemudian dapat digunakan untuk mendapatkan akses tidak sah ke akun pengguna.

Mitigasi

Panduan dalam bagian ini hanya berlaku untuk aplikasi yang menargetkan Android 8.1 (level API 27) atau versi yang lebih lama. Mulai dari Android 9 (level API 28), dukungan cleartext dinonaktifkan secara default.

Gunakan fungsi NetworkSecurityConfig.xml untuk memilih tidak menggunakan traffic cleartext:

Xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">secure.example.com</domain>
    </domain-config>
</network-security-config>

Opsi ini akan membantu mencegah regresi tidak disengaja dalam aplikasi karena perubahan dalam URL yang disediakan oleh sumber eksternal seperti server backend.

Referensi