2 poin oleh GN⁺ 2024-08-05 | 1 komentar | Bagikan ke WhatsApp
  • Beberapa aplikasi streaming ilegal iOS dirancang agar lolos peninjauan sebagai aplikasi normal, lalu mengaktifkan fungsi tersembunyi setelahnya, dan analisis kode mengonfirmasi adanya pemblokiran berbasis lokasi serta metode pembaruan jarak jauh
  • Aplikasi yang didistribusikan dengan akun pengembang berbeda ternyata berbagi basis kode yang sama, dan dengan React Native serta Microsoft CodePush SDK, sebagian aplikasi dapat diubah tanpa peninjauan ulang App Store
  • Aplikasi tertentu memeriksa data negara, wilayah, kota, perkiraan bujur, dan lintang dengan memanfaatkan repositori GitHub serta API lokasi berbasis IP, dan tidak menampilkan antarmuka tersembunyi di lingkungan peninjauan Apple
  • Dengan menunggu beberapa detik setelah peluncuran pertama sebelum memanggil API lokasi, aplikasi ini menghindari proses peninjauan otomatis, dan bahkan saat proxy disetel ke lokasi San Jose, California, layar tersembunyi tetap tidak muncul
  • Apple dapat memperkuat pengujian perilaku berdasarkan lokasi dan penghapusan aplikasi penipuan, tetapi untuk saat ini hanya mengungkap bahwa aplikasi tersebut telah dihapus tanpa mempublikasikan langkah konkret untuk mencegah persetujuan aplikasi serupa

Struktur yang bertindak seperti aplikasi berbeda setelah lolos peninjauan

  • 9to5Mac membahas beberapa kasus aplikasi streaming ilegal iOS yang mendapat persetujuan dengan menipu peninjauan App Store, dan kemudian analisis kode mengungkap detail cara kerja penghindaran tersebut
  • “Collect Cards” sempat naik ke peringkat atas unduhan aplikasi gratis App Store di beberapa negara, lalu dihapus oleh Apple setelah dipublikasikan
  • Ketika beberapa versi aplikasi yang sama kembali muncul di App Store setelahnya, metode untuk menipu tim peninjau menjadi subjek analisis

Basis kode bersama dan pembaruan jarak jauh

  • Aplikasi yang dianalisis didistribusikan melalui akun pengembang yang berbeda, tetapi berbagi basis kode yang sama
  • Aplikasi tersebut dibuat dengan React Native, framework lintas platform berbasis JavaScript
  • Dengan CodePush SDK dari Microsoft, sebagian aplikasi dapat diperbarui tanpa mengirimkan build baru ke App Store
  • Penggunaan React Native dan CodePush sendiri bukan pelanggaran aturan App Store, dan banyak aplikasi populer juga memakai metode ini
  • Pengembang berbahaya memanfaatkan teknologi pembaruan yang sah ini untuk menghindari peninjauan App Store

Mendeteksi lingkungan peninjauan Apple lewat lokasi

  • Salah satu aplikasi yang dianalisis menunjuk ke repositori GitHub yang tampaknya menyediakan file untuk beberapa aplikasi streaming ilegal
  • Aplikasi tersebut menggunakan API tertentu untuk memeriksa lokasi perangkat berdasarkan alamat IP
    • API itu mengembalikan data seperti negara, wilayah, kota, serta perkiraan bujur dan lintang
  • Saat pertama kali dibuka, aplikasi menunggu beberapa detik sebelum memanggil API lokasi
    • Karena jeda ini, perilaku mencurigakan dalam kode aplikasi tidak terlihat dalam proses peninjauan otomatis App Store
  • 9to5Mac menggunakan proxy untuk memalsukan lokasi menjadi San Jose, California, lalu memeriksa perilaku aplikasi
    • Di lokasi ini, aplikasi sama sekali tidak menampilkan antarmuka tersembunyi

Menampilkan antarmuka sebenarnya setelah disetujui

  • Setelah Apple menyetujui aplikasi yang hanya menampilkan fungsi dasar, pengembang memperbarui aplikasi dengan konten yang diinginkan melalui CodePush
  • Aplikasi hanya menampilkan antarmuka sebenarnya di lokasi yang “aman”
  • Dalam struktur ini, perilaku aplikasi dapat berbeda antara lingkungan Apple saat peninjauan dan lingkungan pengguna umum

Tugas respons yang masih tersisa bagi Apple

  • Apple dapat meningkatkan proses peninjauan dengan pengujian tambahan untuk memeriksa bagaimana aplikasi berperilaku di lokasi yang berbeda
  • Tindakan yang lebih aktif untuk menemukan dan menghapus aplikasi penipuan dari App Store juga diperlukan
  • Pada 2017, Uber pernah dituduh menggunakan “geofence” terhadap kantor pusat Apple di Cupertino
    • Isinya adalah bahwa ketika aplikasi dijalankan di lokasi tersebut, kode yang digunakan untuk pengumpulan sidik jari pengguna dan pelacakan di seluruh web otomatis dinonaktifkan
  • Menurut dokumen tahun 2021, tim App Store Review memiliki lebih dari 500 pakar manusia yang meninjau lebih dari 100.000 aplikasi setiap minggu
    • Meski begitu, sebagian besar aplikasi tetap melewati proses peninjauan otomatis yang memeriksa pelanggaran pedoman App Store sebelum tinjauan manual
  • Seorang juru bicara Apple menyatakan setelah publikasi terkait bahwa aplikasi-aplikasi tersebut telah dihapus dari App Store, tetapi tidak memberikan rincian tentang langkah perusahaan untuk mencegah persetujuan aplikasi serupa

1 komentar

 
GN⁺ 2024-08-05
Opini Hacker News
  • Sekalipun Apple mencegah bypass pembatasan wilayah, menyembunyikan perilaku itu sangat mudah

    1. Mengirim nomor build aplikasi ke server lewat panggilan API
    2. Mengontrol apakah fitur tersembunyi diaktifkan melalui respons API
    3. Mengaktifkan fitur tersembunyi hanya setelah tiap build lolos review
    4. Untung?
      Tidak perlu kode dinamis atau kode interpreter sama sekali, dan variasinya cukup banyak sehingga pada akhirnya tampaknya akan tereduksi menjadi halting problem dan tidak bisa diputuskan
    • Benar. Pada akhirnya cara seperti bom logika ini tidak bisa dicegah, dan ini hanya permainan kucing-kucingan
      Harus ada cara merespons di luar langkah teknis. Misalnya, orang-orang yang benar-benar tersebar menguji aplikasi secara crowdsourcing untuk menemukan perilaku berbahaya
    • Poin 1–3 juga bisa diganti dengan cara aplikasi memeriksa halaman listing App Store-nya sendiri
      Secara lebih umum, fitur untuk memeriksa update, yaitu memeriksa apakah ada versi baru, juga bisa sekaligus dipakai untuk memeriksa “apakah versi ini masih dalam review aplikasi?”
    • Salah satu alasan Apple melakukan uji tuntas sampai tingkat tertentu dalam proses onboarding developer dan penandatanganan perjanjian developer adalah agar mereka bisa secara stabil mengambil tindakan hukum terhadap developer yang menyalahgunakan sistem
      Kemungkinan dikeluarkan dari ekosistem Apple App Store atau terkena pembalasan hukum adalah salah satu cara menekan perilaku yang tidak diinginkan yang secara teknis tidak bisa dicegah
    • Sepertinya AI akan segera mendekati titik ketika pengguna sintetis tidak bisa dibedakan dari pengguna nyata. Untuk memitigasi teknik-teknik di atas dan teknik lain di thread ini, Apple tampaknya akan cepat memindahkan proses review ke bentuk yang sangat otomatis dan berkelanjutan
      Pada akhirnya, tekanan di tingkat ekosistem dan pemerintah harus lebih dimanfaatkan agar syarat dan ketentuan menjadi masuk akal dan adil. Sebab peretasan untuk mengakali syarat dan ketentuan akan menjadi hampir mustahil. Saya memang menganggap hack semacam ini cerdik, tetapi rasanya tidak akan bertahan lama
  • Kalau penasaran dengan redaksi Apple tentang update dinamis seperti CodePush, ada di sini: https://github.com/microsoft/react-native-code-push#store-gu...
    “Kode yang dapat dieksekusi
    Kecuali sebagaimana disebutkan dalam paragraf berikut, aplikasi tidak boleh mengunduh atau memasang kode yang dapat dieksekusi. Kode interpreter boleh diunduh ke aplikasi, tetapi kode tersebut tidak boleh (a) mengubah tujuan utama aplikasi dengan menyediakan fitur atau fungsionalitas yang tidak konsisten dengan tujuan aplikasi sebagaimana dimaksudkan dan diiklankan saat diajukan ke App Store, (b) membuat toko atau etalase untuk kode atau aplikasi lain, atau (c) melewati penandatanganan, sandbox, atau fitur keamanan lain dari sistem operasi.”

    • Setidaknya di game live service, hampir 100% secara berkala mengunduh kode interpreter baru di mobile, dan ini pada dasarnya semuanya melewati review app store
      Tampaknya ada kesepakatan antara developer game dan Google/Apple: sebagai ganti bypass review, pendapatan loot box bernilai miliaran dolar tetap mengalir
    • Pada level ini, aturannya terasa cukup terbuka untuk aplikasi yang pada akhirnya mempertahankan tujuan yang hampir sama dan pendekatannya juga tidak terlalu berbeda
      Salah satu kelompok fitur yang mencolok adalah cara banyak aplikasi menarik biaya langganan di luar sistem pembayaran dalam pagar Apple. Itu karena pekerjaan sebenarnya dari aplikasi tidak hanya berlangsung di dalam perangkat, tetapi di cloud. Ada keuntungan dalam membagi aplikasi menjadi aplikasi lokal dasar dan pekerjaan tambahan di cloud, tetapi seiring meningkatnya performa perangkat, melihat apa yang bisa dilakukan secara lokal menjadi semakin menarik
      Jika struktur tingkat atas aplikasi cukup jelas, detail yang mengisinya bisa ditambahkan belakangan
      Saya sudah lama menyukai hal-hal seperti SDUI yang memungkinkan pembuatan antarmuka yang lebih dinamis berdasarkan preferensi pengguna, pola penggunaan, dan sebagainya
      Pendekatan membuat software untuk alur kerja tetap semakin ketinggalan zaman. Entah itu kebutuhan yang berubah di tiap tahap lockdown pandemi, atau personalisasi sejati pengalaman pengguna, software dengan pola pikir tetap sedang digantikan oleh software yang membutuhkan fleksibilitas
  • Saat harus meloloskan perilaku yang tidak disukai Apple, saya memakai trik berbasis waktu
    20 hari setelah aplikasi diajukan, perilaku sebuah tombol berubah sehingga dialog “buka file” langsung menuju direktori root pengguna

    • Saya melakukan hal yang sama di salah satu aplikasi saya. Itu aplikasi privat, jadi harus ada kode login untuk menggunakannya, tetapi Apple ingin menguji semua fitur. Jadi saya memasukkan beberapa layar palsu ke aplikasi, dan layar-layar itu bahkan tidak melakukan panggilan API
      Saya memasang timer 2 minggu, dan setelah itu aplikasi mulai menjalankan perilaku sebenarnya termasuk panggilan API
      Review aplikasi Apple benar-benar lelucon
    • Bagus. Ini menunjukkan betapa tidak bergunanya proses verifikasi aplikasi
      Sepertinya mungkin juga bisa menemukan cara untuk mengidentifikasi sistem reviewer seperti sidik jari dan menyembunyikan fitur langsung hanya dari mereka
  • Sebagai catatan sampingan, mayoritas besar aplikasi penipuan tampaknya mengambil uang orang lewat langganan berulang mingguan
    Tiket akses 1 minggu yang tidak berulang bisa saja berguna. Misalnya aplikasi VPN untuk 1 minggu saat bepergian. Namun pembayaran berulang mingguan seharusnya memerlukan persetujuan manual. Tidak semua aplikasi boleh menerima pembayaran berulang mingguan

  • Menyebut aplikasi bajakan sebagai berbahaya rasanya terlalu berlebihan. Apakah saya melewatkan sesuatu, atau artikel ini ditulis oleh pemegang hak cipta?

    • Sebaliknya, jika aplikasi bajakan bisa melakukan hal seperti ini, malware tentu juga bisa. Dan menurut saya Apple lebih peduli pada pembajakan daripada malware sungguhan
      Namun aplikasi berpendapatan teratas sudah merupakan aplikasi penipuan, dan sejauh yang saya ingat memang selalu begitu, jadi ini juga bukan hal baru
  • “Menurut dokumen yang dipublikasikan pada 2021, tim App Store Review memiliki lebih dari 500 pakar manusia yang meninjau lebih dari 100.000 aplikasi setiap minggu.”
    Jika mengabaikan ungkapan ambigu dalam kalimat ini, dan mengasumsikan para reviewer memakai 100% jam kerja mereka untuk review serta mengikuti minggu kerja standar, hasilnya sekitar 12 menit per aplikasi

    • Pada tahun yang sama, 2021, total pendapatan Apple App Store adalah 85 miliar dolar
      Sayangnya Apple yang miskin tampaknya tidak mampu mempekerjakan lebih banyak reviewer agar setiap aplikasi mendapat proses review yang berarti, dan agar pekerja yang bekerja dalam lingkungan kerja layak mendapat bayaran cukup. Mungkin mereka dikejar kuota aplikasi yang harus ditinjau setiap minggu
      Jadi kenapa Apple berhak mengambil 30% lagi?
  • Jika aplikasi terbaru berhasil lolos peninjauan App Store dan tetap aktif, ada kanal/grup Telegram tempat ribuan orang yang ingin memakainya berkumpul sampai Apple mengambil tindakan.
    Ada juga pasar untuk sertifikat penandatanganan dan slot mesin pengembang Apple, sehingga orang yang lebih paham teknis bisa menandatangani IPA sendiri lalu memasangnya.

  • Di AS sangat dibutuhkan undang-undang seperti DMA. Satu perusahaan tidak boleh bisa menahan lebih dari 60% pengguna AS dalam urusan memasang aplikasi yang ingin mereka pakai.
    Demikian pula, Apple dan Google tidak semestinya bisa mengambil 15–30% dari seluruh pendapatan yang terjadi di pasar aplikasi mobile.

    • Saya setuju dengan arahnya, tetapi menurut saya sudut pandangnya lebih berpusat pada developer daripada pengguna.
      Pertama, 60% itu memilih iOS. Mereka bukan “sandera”; mereka bisa pergi. Dan ini juga bukan perilaku baru, melainkan sudah ada sejak iPhone diluncurkan. Konsumen memilih ini [1].
      Kedua, Google tidak mengontrol apa yang dipasang pengguna, jadi menurut definisi mereka tidak mengambil bagian dari “seluruh pendapatan”. Sebagian besar nilai yang berasal dari aplikasi mobile juga terjadi di tempat lain [2], jadi bahkan angka untuk Apple pun tidak akurat.
      Sebagai developer, wajar jika ingin punya akses sesuka hati ke perangkat pengguna dan menjalankan kode yang diinginkan. Sayangnya, sebagian developer menginginkan akses seperti itu untuk alasan yang merugikan konsumen. Karena itu developer mencoba mengakali sistem seperti permainan, dan aplikasi yang jujur malah ditolak.
      Namun perlu dipahami bahwa pengguna menginginkan akses yang dikurasi seperti ini, dan mereka memilih mendukungnya, bukan menentangnya.
      [1] Untuk messenger bisa diperdebatkan, tetapi itu masalah messenger, bukan aplikasi.
      [2] Hampir semua aplikasi yang saya pasang gratis. Perusahaan pembuat aplikasi itu memperoleh pendapatan dari bagian lain sistem. Kami juga punya “aplikasi gratis” yang terhubung dengan produk, dan orang membayar untuk produk itu.
    • Apakah kamu sudah membaca artikelnya? Ini cerita tentang Uber yang melewati peninjauan untuk melacak pengguna bertentangan dengan aturan Apple dan kehendak pengguna. Atau tentang aplikasi lain yang melakukan hal itu untuk menyebarkan software bajakan.
    • Posisi Apple/Google juga terlihat cukup kontradiktif.
      Di satu sisi, masing-masing mengambil peran sebagai penjaga gerbang di store mereka, dan keduanya mengklaim menjaga keamanan pengguna akhir.
      Di sisi lain, jika aplikasi bermasalah itu sangat menguntungkan atau terkait dengan banyak lini produk mereka yang lain, mereka memberi diri sendiri fleksibilitas untuk menerapkan aturan secara selektif.
      Siapa yang mengawasi para pengawas?
    • Agar argumennya lebih meyakinkan, sebaiknya tambahkan juga ide tentang cara melindungi pengguna dari software jahat.
      Apa rencananya untuk itu?
    • Saya setuju, tetapi saya tidak begitu paham apa hubungannya ini dengan artikelnya.
  • Aplikasi streaming ilegal”?
    Saya kira ini artikel tentang cara membuat aplikasi senter diizinkan menawarkan langganan 50 dolar per bulan.

  • Banyak sekali aplikasi hanyalah WebView yang menampilkan halaman web jarak jauh.
    Setiap kali server memperbarui halaman, aplikasinya ikut terbarui, tanpa perlu peninjauan.