Aplikasi messenger yang mengklaim “super secure” membocorkan nomor telepon semua pengguna
(ericdaigle.ca)- Ditemukan kerentanan serius pada aplikasi messenger bertema MAGA (kelompok konservatif AS) bernama Freedom Chat yang mengekspos nomor telepon dan kode PIN penggunanya
- Aplikasi ini merupakan penerus proyek sebelumnya bernama Converso, yang juga pernah memiliki masalah kesalahan implementasi enkripsi dan kebocoran data
- Hasil analisis menunjukkan bahwa melalui fitur channel, kode PIN semua anggota dikirim ke pengguna lain, dan melalui API sinkronisasi kontak dimungkinkan pencocokan nomor telepon-UID
- Peneliti memastikan bahwa sama sekali tidak ada rate limiting, sehingga dalam sehari nomor telepon semua pengguna Freedom Chat dapat dikumpulkan
- Insiden ini disebut sebagai contoh aplikasi yang “menekankan keamanan” tetapi justru gagal melindungi privasi dasar
Peralihan dari Converso ke Freedom Chat
- Converso yang dirilis pada 2023 mengklaim memiliki “arsitektur terdesentralisasi tanpa server” dan “E2EE terbaru”, tetapi analisis peneliti crnković mengungkap bahwa semua klaim tersebut palsu
- Pada kenyataannya, aplikasi menggunakan server terpusat dan layanan enkripsi pihak ketiga (Seald), serta kunci enkripsi dapat diturunkan dari informasi publik
- Semua pesan diunggah ke bucket Firebase publik sehingga siapa pun dapat membacanya
- Setelah itu, CEO Tanner Haas menarik aplikasi tersebut dan me-rebranding-nya menjadi Freedom Chat dengan alasan “kekhawatiran privasi dari kubu konservatif”
- Ia menyebut pelajaran untuk “menerima kritik dan memperbaiki”, tetapi masalah keamanan kembali terulang
Struktur dan fitur Freedom Chat
- Aplikasi menggunakan pendaftaran berbasis nomor telepon dan verifikasi kode 2FA, sedangkan pengaturan PIN bersifat opsional
- Fitur utamanya adalah chat 1:1 dan channel (Channels), dengan struktur yang mirip Telegram
- Aplikasi mempromosikan fitur pemblokiran screenshot sebagai “fitur keamanan”, padahal tidak berkaitan dengan keamanan yang sebenarnya
Kebocoran kode PIN
- Hasil permintaan API
/channelmenunjukkan bahwa pada objek pengguna (user object) milik 1.519 anggota channel terdapat field PIN- Bersama UID tiap pengguna, kunci Seald, tanggal pembuatan, dan lainnya, kode PIN 6 digit terekspos dalam bentuk plaintext
- Setelah membuat akun baru dan memeriksanya, terlihat bahwa PIN milik sendiri ikut disertakan apa adanya dalam data respons
- Artinya, PIN semua pengguna yang masih berada di channel default terekspos ke pengguna lain
Kerentanan pencocokan nomor telepon
- API
/user/numbersmemeriksa apakah suatu kontak ada dengan cara yang sama seperti WhatsApp- Jika nomor yang disertakan dalam permintaan adalah pengguna Freedom Chat, API mengembalikan UID dan kunci Seald
- Peneliti memastikan bahwa API ini sama sekali tidak memiliki rate limiting, sehingga semua nomor telepon AS dapat diuji satu per satu
- Akibatnya, pencocokan nomor telepon-UID menjadi mungkin, dan jika digabungkan dengan data UID-PIN yang lebih dulu terekspos, maka pemetaan nomor telepon-PIN pun lengkap
Eksperimen kebocoran data seluruh pengguna
- Peneliti menulis skrip Python untuk mengirim permintaan otomatis ke semua nomor telepon Amerika Utara (kombinasi 7 digit × kode area)
- Setiap permintaan mengirim 40.000 nomor, dengan waktu respons rata-rata sekitar 1,5 detik
- Selama 27 jam, semua permintaan berhasil diproses sehingga seluruh nomor telepon pengguna Freedom Chat berhasil dikumpulkan
- Server terus merespons tanpa rate limiting maupun pemblokiran, sehingga data berada dalam kondisi sepenuhnya dapat diakses
Respons dan tindak lanjut
- 2025-11-23: Kerentanan ditemukan
- 2025-12-04: Jurnalis TechCrunch Zack Whittaker mengungkap kerentanan tersebut kepada Freedom Chat
- 2025-12-05: Pihak Freedom Chat menjelaskan bahwa “PIN bukan untuk pemulihan pesan, dan proses audit sudah berjalan”
- 2025-12-09: Pemberitahuan bahwa perbaikan telah selesai
- 2025-12-11: Laporan ini dan artikel TechCrunch dipublikasikan secara bersamaan
Pelajaran utama
- Freedom Chat mengusung slogan “super secure”, tetapi tidak memiliki desain autentikasi, rate limiting, dan perlindungan data yang mendasar
- Akibatnya, nomor telepon dan PIN semua pengguna terekspos, sehingga fitur keamanannya praktis tidak berfungsi
- Kasus ini dinilai sebagai contoh representatif dari kesenjangan antara pemasaran keamanan dan implementasi nyata
1 komentar
Komentar Hacker News
Sistem pencarian nomor telepon terenkripsi milik Signal menarik
Karena server melakukan pencarian nomor dengan operasi XOR bit-per-bit di RAM yang dienkripsi oleh perangkat keras, bahkan jika sistem diperiksa di level paling rendah pun tidak akan diketahui apakah nomor telepon yang diminta itu ada atau tidak
Tentu saja rate limiting adalah persoalan penting yang terpisah. Saat membangun sistem keamanan, ada sangat banyak edge case yang harus dicakup
Di platform nonkomersial dan berfokus pada privasi seperti Matrix, pemetaan seperti ini seharusnya dibuat tidak mungkin
Misalnya, diusulkan cara mengunggah nilai hash dari nomor telepon tiap pasangan pengguna agar seseorang hanya bisa ditemukan oleh orang yang ada di daftar kontaknya
Kelebihannya, ruang hash luas sehingga sulit dilacak balik, dan pengguna bisa menentukan sendiri cakupan izin ditemukan
Kekurangannya, penyerang bisa membuat semua kombinasi nomor untuk mengekstrak relasi kontak, dan pemerintah juga bisa menyalahgunakannya dengan mencegat verifikasi SMS
Field
pinpada objek pengguna terlihat mencurigakanKemungkinan besar ini muncul karena penggunaan library serialisasi opt-out. Secara default seluruh objek diserialisasi, jadi jika pengembang lupa mengatur pengecualian untuk field tertentu, field itu akan terekspos begitu saja
Atau bisa juga server hanya memakai dictionary JS biasa lalu tidak menghapus field tersebut sebelum mengirim respons
Kerentanan ini adalah masalah lama yang disebut dalam makalah tim peneliti Universitas Wina, dan pada 2016 dieksploitasi dengan cara yang sama di Telegram sehingga pemerintah Iran berhasil mengumpulkan nomor telepon 15 juta pengguna
Tautan terkait: blog Telegram
Sebagian besar kerentanan keamanan belakangan ini muncul hanya karena memanggil endpoint HTTP dengan cara yang tak terduga
Ketika orang membayangkan peretasan pada 2025, yang terlintas adalah teknik rumit, padahal kenyataannya orang masih merilis API tanpa rate limiting sama sekali. Ini masalah yang bisa diselesaikan dengan satu baris konfigurasi Nginx
Sebagian besar tujuannya adalah mengurangi friksi pengguna dan meningkatkan efisiensi komersial. Banyak pengembang hanya membangun fitur tanpa memahami kerentanan dasar seperti XSS atau SSRF
Kesalahan keamanan mendasar seperti salah port mapping Docker atau CSP yang tidak dipasang terlalu sering terjadi
Saat membaca kalimat “kami ingin hanya memberikan tulisan blog terbaik kepada pembaca”, saya merasa seperti menemukan orang dengan kecenderungan yang mirip dengan penulisnya
Saya penasaran apakah Freedom Chat® punya fitur untuk mencegah jurnalis ikut masuk ke grup chat. Setengah bercanda setengah serius, saya bertanya ini untuk teman di DoD
Baru tahun ini saja sudah ada beberapa kasus aplikasi keamanan yang membocorkan data pengguna saat menanganinya
Yang saya ingat saja nilainya sekitar 20 sen (=4 kasus), tapi sepertinya jumlahnya lebih banyak
Kasus terkait: 1, 2, 3
Tahun lalu saya kebetulan melihat papan lowongan kerja GOP, dan lamaran kerja ternyata disimpan di indeks pencarian yang sama dengan iklan lowongannya
Saat saya mencari “bob”, resume dan jawaban para pelamar muncul begitu saja, dan itu mengejutkan
Setelah insiden Anom, rasanya kita butuh kata yang lebih tepat daripada honeypot
Messenger yang benar-benar aman tidak akan lahir dengan cara seperti ini. Tetapi pemasarannya terus berjalan, dan setiap kali ada pengguna baru yang tertarik masuk
Kebocoran data terjadi terlalu sering sampai orang-orang jadi kebal. Kompensasi class action pun akhirnya berubah menjadi proses untuk memberikan lebih banyak data pribadi
Prediction market, kripto, dan semacamnya juga terasa seperti kegagalan struktural yang merugikan pesertanya tetapi dikemas seolah-olah sebagai kesuksesan
Freedom Chat mengumumkan bahwa “perbaikannya sudah selesai”, tetapi saya ragu apakah benar-benar sudah diperbaiki
Jika kalimat “saya tidak punya pengalaman mengembangkan aplikasi mobile, tetapi saya pikir itu tidak akan sulit karena saya pintar” adalah kutipan asli, itu terdengar hampir seperti materi stand-up comedy