- 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
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
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
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
Permintaan terkait Google tampaknya dimasukkan demi transparansi, bukan untuk menyerang aplikasi White House
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
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
Namun aplikasi yang memakai pinning sulit dilewati, dan platform yang memungkinkan pemasangan aplikasi sendiri lebih menguntungkan
Untuk kasus dengan pinning kuat seperti aplikasi perbankan, biasanya perlu perangkat yang di-root
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 DNSMengejutkan 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
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
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