1 poin oleh GN⁺ 2025-12-16 | 1 komentar | Bagikan ke WhatsApp
  • 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
Iklan

Kebocoran kode PIN

  • Hasil permintaan API /channel menunjukkan 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/numbers memeriksa 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
    Iklan

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

 
GN⁺ 2025-12-16
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

    • Saya tidak menganggap pendekatan seperti ini keren. Sejak awal, kalau ini messenger aman, seharusnya tidak perlu meminta nomor telepon yang merupakan pengenal pribadi
    • Saya penasaran apakah Signal bisa mencegahnya jika pemerintah mengirim permintaan pencarian untuk semua nomor telepon
      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
    • Bagian bahwa server menggunakan XOR di RAM yang dienkripsi perangkat keras itu menarik. Saya penasaran apakah ada bacaan lanjutan tentang ini
    • Tetap disayangkan bahwa nomor telepon masih diwajibkan. Memang baru-baru ini ditambahkan fitur username sehingga paparan nomor bisa dihindari, tetapi fakta bahwa akun masih berbasis SIM tetap terasa mengganggu
    • Namun karena kita tidak bisa membangun dan mengoperasikan server Signal sendiri, kita juga tidak bisa yakin bahwa server benar-benar memprosesnya seperti itu
  • Field pin pada objek pengguna terlihat mencurigakan
    Kemungkinan 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

    • Saat mengaudit kode di pekerjaan lama, saya sering menemukan kerentanan serialisasi seperti ini di mana-mana. Pengembang sebaiknya berhenti memakai library semacam ini
    • Masalah seperti ini benar-benar umum. Field sensitif dikirim ke klien, tetapi tidak terlihat di UI sehingga tidak ada yang menyadarinya
    • PIN yang terekspos memang masalah, tetapi yang lebih serius adalah penyimpanan dalam bentuk plaintext. Seharusnya diproses dengan algoritma hash yang kuat seperti kata sandi
  • 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

    • Tentang ucapan “cukup satu baris konfigurasi Nginx”, saya langsung membayangkan respons seperti, “itu tidak ada di tutorial Docker jadi saya tidak tahu apa itu”
    • Pengembangan perangkat lunak memang maju, tetapi prinsip pengembangan keamanan hampir tidak berkembang
      Sebagian besar tujuannya adalah mengurangi friksi pengguna dan meningkatkan efisiensi komersial. Banyak pengembang hanya membangun fitur tanpa memahami kerentanan dasar seperti XSS atau SSRF
    • Bahkan untuk konfigurasi sederhana, kita tetap harus tahu bahwa itu ada agar bisa menerapkannya
    • Dulu saya mengira pemindaian keamanan internal otomatis tidak berguna, tetapi setelah melihat kasus nyata di mana konfigurasi dasar saja terlewat, saya merasa ini wajib
      Kesalahan keamanan mendasar seperti salah port mapping Docker atau CSP yang tidak dipasang terlalu sering terjadi
    • Tetapi rate limiting saja tidak cukup. Penyerang bisa mendistribusikan IP dan mengirim permintaan paralel
  • 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

    • Saya rasa insiden ini menunjukkan pentingnya pergerakan keluar dari Facebook Messenger
    • Dan yang kita tahu pun hanya sebagian kecil
  • 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

    • Penasaran situs apa itu
  • 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

    • Sekarang ini kegagalan malah jadi fitur
      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
    • Muncul usulan istilah baru: “Petepot”
  • 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