1 poin oleh GN⁺ 2024-03-06 | 1 komentar | Bagikan ke WhatsApp

Membobol certificate pinning Messenger milik Meta (macOS)

  • Aplikasi Messenger untuk macOS milik Meta mirip dengan model Texts.com, yaitu aplikasi desktop mandiri.
  • Batuhan İçöz, yang memimpin proyek platform Meta di Texts.com, menganggap langkah pertama yang penting adalah mencegat permintaan jaringan.
  • Meta memperkuat keamanan dengan menerapkan certificate pinning dan mencegah analisis permintaan server melalui serangan MITM (man-in-the-middle).

Apa itu certificate pinning?

  • Saat menyiapkan klien proxy, perlu dikonfigurasi agar mempercayai "certificate authority".
  • Dengan menggunakan sertifikat yang diterbitkan oleh certificate authority, informasi dari permintaan dapat dicegat dan didekripsi.
  • Jika sebuah layanan menerapkan certificate pinning, layanan itu hanya menerima sertifikat yang diterbitkan oleh certificate authority tertentu, sehingga sertifikat yang diterbitkan oleh certificate authority milik pengguna tidak bisa digunakan.

Perilaku dasar

  • Jika certificate pinning tidak dinonaktifkan, semua permintaan akan dikembalikan sebagai "kesalahan internal", dan perangkat lunak proxy akan menampilkan "SSL handshake failure".
  • Karena permintaan tidak dapat menyelesaikan seluruh siklus hidupnya, informasi tentang permintaan tersebut tidak dapat disimpulkan.

Perilaku yang diinginkan

  • Dengan menggunakan serangan MITM, permintaan, respons, dan header dapat dibaca dengan sukses di alat debugging jaringan.

Pendekatan yang mungkin

  • Salah satu metode yang sebelumnya berhasil adalah mengubah string URL di dalam biner ke endpoint self-hosted yang tidak aman dan tidak menerapkan TLS.
  • Pustaka instrumentasi dinamis seperti Frida dapat digunakan, tetapi Messenger cenderung mudah crash, terutama saat dilakukan hooking.
  • Penggunaan Frida juga melibatkan proses deployment yang kompleks.

Pendekatan

  • Unduh Messenger, pindahkan ke folder Applications, lalu impor biner ARM ke Hopper.
  • Dengan Hopper, biner dapat di-disassemble, di-decompile, di-recompile, di-debug, dan divisualisasikan.
  • Dengan mencari string seperti "SSL pinning verification failed", tujuannya adalah meminimalkan jumlah modifikasi.
  • String "Using custom sandbox -> turn off SSL verification" ditemukan, lalu fungsi terkait dicari dan dimodifikasi.
  • Fungsi IsUsingSandbox diatur agar selalu bernilai true sehingga certificate pinning dinonaktifkan.

Hasil

  • Setelah mengekspor executable baru dan menghapus tandatangannya, biner Messenger asli diganti dengan biner baru tersebut.
  • Saat Messenger dijalankan ulang, alat proxy menampilkan header, isi respons, dan seluruh informasi permintaan.
  • Intersepsi permintaan berhasil dilakukan dengan memodifikasi hanya 4 byte dari total 97.477.728 byte biner.

Deployment

  • Setelah biner dikompilasi, file tersebut dikirim ke Batuhan.
  • Batuhan menerima sertifikat penandatanganan, memasangnya, lalu menandatangani aplikasi tersebut.
  • Setelah penandatanganan selesai, ia dapat menggunakan biner itu di sistemnya sendiri untuk melihat permintaannya sendiri.

Opini GN⁺

  • Artikel ini memberikan contoh menarik tentang bagaimana peneliti keamanan dapat melewati certificate pinning pada aplikasi Messenger milik Meta.
  • Certificate pinning adalah fitur keamanan penting untuk mencegah serangan man-in-the-middle, tetapi menemukan cara untuk melewatinya juga memberi wawasan penting bagi komunitas keamanan.
  • Teknik ini dapat membantu pengembang memperkuat keamanan aplikasi atau layanan mereka sendiri, serta berkontribusi dalam menemukan dan memperbaiki kerentanan keamanan.
  • Namun, karena riset semacam ini juga berpotensi digunakan untuk tujuan jahat, hasil penelitian perlu dibagikan dengan hati-hati.
  • Alat lain yang menawarkan fungsi serupa antara lain alat analisis jaringan seperti Wireshark atau Burp Suite, yang banyak digunakan untuk memantau dan menganalisis lalu lintas jaringan.

1 komentar

 
GN⁺ 2024-03-06
Opini Hacker News
  • Rasa penasaran tentang aspek hukum

    • Bertanya-tanya mengenai legalitas tindakan semacam ini.
    • Awalnya mengira ini secara teknis merupakan pelanggaran DMCA, tetapi mulai curiga asumsi itu mungkin salah.
    • Mempertanyakan bagaimana hal ini bisa dimungkinkan secara hukum.
  • Upaya dekompilasi dan kompilasi ulang serta dedikasi

    • Pernah mencoba jalur serupa, tetapi menyerah pada tahap dekompilasi/edit/kompilasi ulang.
    • Kagum dengan tingkat dedikasi seperti ini, dan penasaran berapa banyak waktu yang dihabiskan.
    • Dirinya sendiri biasanya menetapkan batas waktu dan mematuhinya.
  • Hilangnya keterampilan masa lalu

    • Mengenang era +Orc di masa lalu.
    • Sebagian besar pengetahuan saat itu, seperti cara menemukan dan menghapus cabang yang tidak diinginkan, kini sudah terlupakan.
    • Sekarang ada jauh lebih banyak keterampilan lain yang harus dipelajari.
  • Pengamatan terkait pertahanan RE Meta

    • Menunjukkan bahwa pertahanan reverse engineering (RE) Meta, khususnya Messenger, cukup longgar.
    • Menyebut bahwa menghapus IsUsingSandbox() dari build produksi kemungkinan akan mudah.
    • Mengatakan bahwa bahkan sebelum memakai teknik obfuscation tingkat lanjut pun, pertahanan seperti ini akan mudah ditembus.
  • Certificate pinning dalam mode sandbox

    • Menyebut ada cara untuk tetap memaksakan certificate pinning bahkan dalam mode sandbox.
    • Mengenang pengalaman saat kuliah ketika mencoba mencegat trafik Snapchat dengan serangan man-in-the-middle (MitM), tetapi gagal.
  • Kegunaan checksum biner saat runtime

    • Bertanya apakah checksum biner saat runtime akan membantu mempersulit modifikasi.
    • Mempertanyakan apakah ini bukan prosedur umum di aplikasi mobile, dan apakah SDK iOS atau Android menyediakan fungsi seperti itu.
    • Karena solusi akhirnya hanyalah memodifikasi beberapa byte pada biner, merasa langkah seperti itu mungkin bisa mencegahnya.
  • Pertanyaan tentang penggunaan alat proxy

    • Bertanya tentang alat proxy yang digunakan dalam tulisan tersebut.
    • Penasaran apakah alat itu merutekan semua trafik aplikasi saat sedang berjalan.
  • Keamanan aplikasi perusahaan besar

    • Mempertanyakan mengapa aplikasi dari perusahaan besar tidak sepenuhnya di-obfuscate dan tidak menyertakan perlindungan lain yang menolak menjalankan biner yang telah dimodifikasi.
  • Kemungkinan mencegat trafik aplikasi Meta

    • Berpendapat bahwa sebenarnya tidak perlu mencegat trafik aplikasi Meta.
    • Memberikan tautan ke halaman edukasi bug bounty Meta.
  • Pentingnya pemantauan trafik

    • Menekankan bahwa hal ini penting untuk membantah teori konspirasi bahwa aplikasi Facebook memata-matai pengguna lewat mikrofon untuk menampilkan iklan tertarget.
    • Cara termudah untuk membantahnya adalah dengan memantau trafik antara aplikasi dan server Facebook, tetapi certificate pinning menghalanginya.
    • Sulit meyakinkan orang yang percaya teori konspirasi, tetapi penting untuk mengetahui bahwa pemantauan semacam ini memungkinkan.