2 poin oleh GN⁺ 19 hari lalu | 1 komentar | Bagikan ke WhatsApp
  • Lalu lintas HTTPS aplikasi White House di iOS ditangkap dengan proxy MITM untuk menganalisis server mana yang berkomunikasi dengan aplikasi dan data apa yang dipertukarkan
  • Selain ke whitehouse.gov, aplikasi juga berkomunikasi dengan 31 host pihak ketiga seperti Elfsight, OneSignal, YouTube, Google DoubleClick, Facebook, Twitter
  • Ke OneSignal, informasi profiling pengguna seperti bahasa, zona waktu, IP, model perangkat, dan jumlah sesi terus-menerus dikirim
  • Melalui loader widget Elfsight, skrip eksternal dijalankan, dan kode pelacakan iklan Google DoubleClick juga aktif di dalam aplikasi
  • Dalam privacy manifest aplikasi tertulis “tidak ada pengumpulan data”, tetapi pada praktiknya terjadi banyak pelacakan pihak ketiga dan pengiriman data

Ringkasan analisis lalu lintas jaringan

  • Lalu lintas jaringan aplikasi resmi White House di iOS dianalisis dengan menangkapnya melalui proxy MITM (man-in-the-middle)
    • Di lingkungan macOS, mitmproxy dipasang, lalu semua lalu lintas HTTPS dari iPhone dicatat melalui proxy tersebut
    • Versi aplikasi yang diuji adalah v47.0.4 (build 81), dan seluruh tab Home, News, Live, Social, Explore dijelajahi
    • Lalu lintas didekripsi dan dicatat tanpa modifikasi apa pun, dengan pola penggunaan yang sama seperti pengguna biasa

Server yang diakses aplikasi

  • Dalam satu sesi, aplikasi mengirim permintaan ke 31 host unik (tidak termasuk lalu lintas sistem iOS)
    • Dari total 206 permintaan, hanya 48 permintaan (23%) yang dikirim ke whitehouse.gov
    • Sisanya 158 permintaan (77%) dikirim ke layanan pihak ketiga seperti Elfsight, OneSignal, YouTube, Google DoubleClick, Facebook, Twitter
  • Tujuan permintaan utama
    • whitehouse.gov: WordPress API (berita, home, galeri, dll.)
    • YouTube: embed video dan thumbnail
    • Elfsight: pemuatan widget, aset statis, penyimpanan file, boot API, dll.
    • OneSignal: analitik dan profiling pengguna
    • Facebook/Twitter CDN: pemuatan gambar
    • Google APIs dan DoubleClick: iklan dan pelacakan

Data yang dikirim ke OneSignal

  • Saat aplikasi dijalankan, isi body permintaan HTTPS dikirim ke api.onesignal.com
    • Informasi yang disertakan: bahasa, zona waktu, negara, alamat IP, waktu pertama dijalankan dan aktivitas terakhir, model perangkat, versi OS, jenis jaringan (WiFi/seluler), operator, status jailbreak, jumlah sesi, durasi sesi, pengenal unik
  • Setiap kali aplikasi dijalankan, beberapa permintaan PATCH dikirim untuk memperbarui profil
    • Pada eksekusi pertama ada 18 permintaan PATCH, dan dalam seluruh sesi terkonfirmasi 9 permintaan OneSignal
    • Urutannya: cek profil yang sudah ada dengan GET → perbarui informasi sesi dengan PATCH
  • OneSignal terus mencatat IP per sesi, waktu aktivitas, jumlah sesi, durasi sesi
    • Jika alamat IP berubah, profil diperbarui
    • Timestamp first_active tidak berubah setelah waktu instalasi
  • Hasilnya, OneSignal mempertahankan profil berkelanjutan per pengguna dan melacak pola penggunaan aplikasi serta lingkungan jaringan
  • User-Agent pada lalu lintas adalah WhiteHouse/81 CFNetwork/3860.400.51 Darwin/25.3.0

Lalu lintas terkait Elfsight

  • 6 widget dan loader JavaScript 2 tahap yang ditemukan dalam analisis statis juga terkonfirmasi dalam lalu lintas nyata
  • Saat tab Social dibuka, aplikasi terhubung ke 13 domain Elfsight
    • Termasuk elfsightcdn.com, core.service.elfsight.com, static.elfsight.com, storage.elfsight.com, widget-data.service.elfsight.com, video-proxy.wu.elfsightcompute.com, dll.
  • Jika setiap widget ID dikirim melalui permintaan /p/boot/, server mengembalikan daftar skrip yang akan dijalankan (array assets)
    • Contoh: TikTok → tiktokFeed.js, Instagram → instashow.js, Facebook → facebookFeed.js, YouTube → yottie.js
  • Fungsi loadAssets dalam aplikasi menyisipkan setiap URL sebagai <script> lalu menjalankannya
    • Strukturnya membuat server yang menentukan kode apa yang akan dieksekusi
  • Server Elfsight menetapkan lebih dari 10 cookie selama sesi
    • Termasuk elfsight_viewed_recently, cookie pelacakan Cloudflare (_cfuvid, __cf_bm), pengenal sesi, dll.

Pelacakan iklan Google DoubleClick

  • Saat embed YouTube dimuat, infrastruktur pelacakan iklan Google juga ikut dimuat
    • Terkonfirmasi adanya permintaan ke googleads.g.doubleclick.net dan static.doubleclick.net
  • DoubleClick adalah platform penayangan iklan dan pelacakan milik Google, dan kode pelacakan iklan berjalan di dalam aplikasi resmi White House
    • Hal ini tidak dicantumkan dalam privacy manifest aplikasi

Ketidaksesuaian antara privacy manifest dan perilaku aktual

  • Pengaturan privasi yang dideklarasikan aplikasi:
    NSPrivacyCollectedDataTypes: []
    NSPrivacyTracking: false
    
  • Pengiriman data yang terkonfirmasi dalam sesi aktual:
    • Ke OneSignal dikirim model perangkat, OS, IP, zona waktu, bahasa, jumlah sesi, durasi sesi, pengenal unik
    • Akses ke 13 domain Elfsight dan penerimaan lebih dari 10 cookie pelacakan
    • Eksekusi kode pelacakan iklan Google DoubleClick
    • Terjadi permintaan ke Facebook, Twitter/X, YouTube, dan Google API
  • Hasil akhirnya, aplikasi ditandai sebagai “tidak ada pengumpulan data”, tetapi pada kenyataannya terjadi banyak pelacakan pihak ketiga dan pengiriman data

Metodologi analisis

  • Alat proxy: mitmproxy (mitmdump)
  • Lingkungan: macOS, iPhone(iOS), jaringan WiFi yang sama
  • Sertifikat: CA milik mitmproxy ditambahkan ke pengaturan kepercayaan iOS
  • Cakupan tangkapan: lalu lintas HTTPS yang terjadi saat seluruh 5 tab aplikasi dijelajahi
  • Ada modifikasi atau tidak: tidak ada, lalu lintas hanya diamati
  • Penanganan data pribadi: IP, pengenal perangkat, OneSignal ID, dll. semuanya dimasking dalam artikel
  • Tidak ada intrusi atau manipulasi server, hanya komunikasi sukarela dari aplikasi yang direkam

Riset terkait

  • Laporan analisis statis aplikasi White House iOS
  • Hasil analisis Thereallo untuk versi Android

Tentang Atomic Computer

  • Atomic Computer adalah perusahaan yang menyediakan layanan keamanan siber, infrastruktur, dan pengembangan
  • Menyediakan layanan evaluasi dan analisis keamanan aplikasi mobile

1 komentar

 
GN⁺ 19 hari lalu
Komentar Hacker News
  • Dari seluruh permintaan 3rd-party, 43% terkait Google (termasuk YouTube, Fonts, Analytics), dan jika digabung dengan Facebook dan Twitter jumlahnya sekitar 55%
    Memang bermasalah jika aplikasi pemerintah memasukkan terlalu banyak kode pelacakan atau analitik, tetapi menurut saya Google Fonts atau embed YouTube tidak terlalu serius
    Dari judulnya saya sempat mengira akan ada domain mengejutkan seperti Palantir atau ICE, tetapi ternyata hanya Google/Facebook, jadi terasa agak hambar
    Judul seharusnya tidak sekadar berbunyi “77% adalah permintaan 3rd-party”, tetapi lebih berfokus pada sifat dan tingkat keparahan permintaannya
    Sebagai catatan, atomic.computer juga memakai Google Fonts dan Analytics. Sebelum menganggap permintaan 3rd-party itu sendiri sebagai sesuatu yang buruk, sebaiknya periksa juga situs sendiri

    • Tidak ada larangan bagi ICE atau Palantir untuk membeli data dari Google atau Facebook
      Pada akhirnya mereka bisa menentukan sendiri data apa yang ingin dilacak lewat aplikasi, dan juga bisa mengumpulkan data seolah-olah dicuci melalui penyedia pelacakan yang umum
    • Artikel aslinya sebenarnya lebih menyoroti permintaan ke OneSignal dan Elfsight ketimbang Google atau YouTube
      Permintaan terkait Google tampaknya dimasukkan demi transparansi, bukan untuk menyerang aplikasi White House
    • Saat ini memang terlihat ada upaya pemerintah mendorong Amerika Serikat ke arah yang lebih otoriter, tetapi saya rasa sistemnya begitu besar sehingga tidak mudah berubah
    • Sanggahan seperti “atomic.computer juga memakai permintaan 3rd-party” lemah karena merupakan argumen menyerang pembawa pesan
      atomic.computer tidak mengatakan bahwa permintaan 3rd-party pada dasarnya buruk, melainkan menganalisisnya sebagai sarana pengumpulan data dan pelacakan
      Pengguna tidak bisa mengendalikan bagaimana data dipakai setelah dikumpulkan, dan pada akhirnya inti masalahnya adalah ketiadaan kontrol
  • Disebutkan bahwa mereka memasang mitmproxy di Mac dan mengarahkan lalu lintas iPhone ke sana untuk mendekripsi HTTPS
    Saya jadi penasaran apakah benar semudah itu membuat iPhone mempercayai sertifikat pengguna
    Di Android, memeriksa lalu lintas jaringan cukup merepotkan
    Eksperimen seperti ini menunjukkan dengan jelas bahwa kita perlu memiliki kendali atas perangkat. Kita berhak tahu data dikirim ke mana dan apa isinya
    Ini juga mengingatkan pada kasus lama ketika Zoom mengirim lalu lintas ke Tiongkok, atau ketika Facebook melacak data penelusuran di dalam aplikasi

    • iOS sampai sekarang masih secara default mempercayai sertifikat yang dipasang pengguna
      Namun ada pengecualian jika aplikasi memakai OpenSSL sendiri atau menerapkan certificate pinning
      Aplikasi besar seperti Facebook atau Twitter umumnya memakai pinning, tetapi aplikasi sederhana seperti ini biasanya tidak
    • Pengaturan mitmproxy di iOS jauh lebih mudah dibanding Android
      Namun aplikasi yang memakai pinning sulit dilewati, dan platform yang memungkinkan pemasangan aplikasi sendiri lebih menguntungkan
    • Proses memasang CA memang agak merepotkan, tetapi untuk aplikasi tanpa pinning, penyadapan lalu lintas tidak terlalu sulit
      Untuk kasus dengan pinning kuat seperti aplikasi perbankan, biasanya perlu perangkat yang di-root
    • Yang menarik, sebagian komunitas keamanan mengecam proxy MITM, tetapi pada saat yang sama justru telah menyerap sudut pandang yang berpusat pada korporasi
    • Saat Zoom mengirim lalu lintas ke Tiongkok, ada kemungkinan video rapat pemerintah juga ikut terkirim
      Bahkan sampai terbayang itu mungkin dipakai sebagai data pelatihan deepfake
  • Ada thread diskusi sebelumnya yang terkait
    Diskusi sebelumnya 1, Diskusi sebelumnya 2

  • Saya memblokir sebagian besar domain iklan (misalnya doubleclick.net) di level DNS
    Mengejutkan melihat kebanyakan situs web, termasuk situs berita, membuka begitu banyak koneksi 3rd-party
    atomic.computer juga mencoba memuat Cloudflareinsights dan Google Fonts, tetapi diblokir di jaringan saya
    Permintaan seperti ini adalah salah satu penyebab utama Google bisa melacak pengguna di seluruh internet

  • Aplikasi pemerintah seharusnya tunduk pada standar yang jauh lebih tinggi daripada aplikasi B2C biasa
    Memuat Google Fonts mungkin masih bisa diterima, tetapi mengirim telemetri ke OneSignal atau Facebook adalah persoalan lain
    Di Australia, menurut aturan PSPF dan ISM, data pemerintah tidak boleh ditransmisikan ke pihak eksternal yang tidak tepercaya
    Aplikasi seperti ini akan langsung gagal dalam penilaian IRAP
    Solusinya sederhana — font di-host sendiri, analitik dibuat 1st-party, dan permintaan eksternal harus diperlakukan sebagai vektor kebocoran data

    • Sebenarnya standar tinggi itu memang ada, hanya saja pemerintahan saat ini tidak mematuhinya
    • Ada juga pendapat yang mempertanyakan mengapa aplikasi pemerintah harus memiliki standar lebih tinggi. Pada akhirnya ini hanya soal merek
  • Sebagian besar aplikasi B2C juga memiliki rasio permintaan 3rd-party di atas 50%
    Angka 77% pada aplikasi White House tidak terlalu mengejutkan, tetapi masalahnya adalah item pengumpulan data di App Store diisi secara keliru
    Setelah itu sudah diperbaiki dan sekarang ditampilkan dengan benar

    • Saya menolak telemetri 3rd-party di aplikasi White House maupun di aplikasi lain. Bisa memegang dua sikap sekaligus
    • Justru inti masalahnya adalah aplikasi pemerintah dibuat seperti aplikasi B2C
    • Ada juga klaim berlebihan bahwa aplikasi White House mengirim data ke Huawei, tetapi yang sebenarnya mengejutkan adalah jumlahnya 20% lebih banyak daripada aplikasi lain
  • Aplikasi pemerintah memang harus memenuhi standar tinggi, tetapi angka 77% mungkin juga tidak jauh berbeda dari rata-rata industri
    Karena begitu banyak aplikasi memuat kode iklan dan pelacak, tingkat seperti ini mungkin cukup umum

  • Daftar SDK yang dipakai aplikasi bisa dilihat di AppGoblin

  • Di Privacy manifest tertulis “tidak ada pengumpulan data”, tetapi pada praktiknya aplikasi mengirim model perangkat, IP, jumlah sesi, dan ID pelacakan ke OneSignal
    Ini jelas merupakan masalah false attestation

  • Langkah berikutnya mungkin adalah menambahkan iklan