14 poin oleh GN⁺ 2025-01-06 | 3 komentar | Bagikan ke WhatsApp
  • Banyak aplikasi mengintegrasikan model AI langsung ke perangkat. Ini menguntungkan ketika inferensi cepat dan akses offline penting
  • Namun, keberadaan file model di dalam perangkat juga berarti pengguna bisa mengekstrak dan menganalisis file tersebut

Tujuan

  • Aplikasi Seeing AI dari Microsoft adalah "kamera yang berbicara" untuk penyandang tunanetra, yang mengenali objek, dokumen, uang, dan lainnya lalu menjelaskannya lewat suara
  • Secara khusus, fitur pengenalan mata uang mendukung lebih dari 17 mata uang dan mengenali 225 lembar uang kertas yang unik
  • Model disertakan di dalam file APK sebagai format distribusi aplikasi, tetapi hadir sebagai file terenkripsi (currency)
  • Jika file hanya dienkripsi secara sederhana, file tersebut bisa diekstrak dengan melacak memori atau proses dekripsi saat aplikasi berjalan

Investigasi awal

  • Aplikasi Android didistribusikan sebagai file APK, yaitu arsip yang berisi semua yang diperlukan untuk menjalankan aplikasi.
  • Model AI biasanya disimpan bersama aset-aset ini
  • Dengan apktool, APK dapat didekompilasi dan strukturnya dianalisis
  • Di folder assets, ditemukan file bernama currency, tetapi dalam keadaan terenkripsi

Melangkah lebih jauh

  • Kita bisa melakukan rekayasa balik untuk melihat bagaimana aplikasi mendekripsi file currency
  • Dikonfirmasi bahwa TensorFlow Lite digunakan di com.microsoft.seeingai
  • org.tensorflow.lite.NativeInterpreterWrapper dapat digunakan untuk memuat model *.tflite

Menggunakan Frida

  • Frida adalah alat instrumentasi dinamis yang dapat berjalan di hampir semua sistem operasi, dan bisa terhubung ke proses yang sedang berjalan untuk mengubah perilakunya
  • Dengan menempel ke proses saat berjalan, kita bisa melacak pemanggilan metode, memeriksa argumen dan nilai kembalian, atau menimpa isi metode dengan logika yang diinginkan
    • Contoh: checkKey(key) bisa diubah agar selalu mengembalikan true
  • Objection adalah alat CLI yang mengumpulkan skrip Frida dan berguna untuk riset aplikasi seluler
  • Dengan melacak pemanggilan fungsi org.tensorflow.lite.NativeInterpreterWrapper, model dapat di-dump ke disk
    • Saat aplikasi berjalan, .createModelWithBuffer(java.nio.ByteBuffer, long) dipanggil, dan ByteBuffer yang dikirim saat itu kemungkinan besar adalah model .tflite yang sudah didekripsi
    • Dengan hooking dan mengganti metode ini dengan kode untuk dump, model tersebut bisa disimpan ke disk
  • Dengan perintah adb pull, model .tflite yang diekstrak (currency.tflite) diambil ke perangkat lokal
  • Muat dengan alat seperti Netron untuk memverifikasi bahwa itu benar-benar model TensorFlow Lite (layer, bobot, bias, dan sebagainya)
  • Berhasil melakukan dump lengkap model pengenalan mata uang

CTRL + C; CTRL + V

  • Serangan ini dapat diterapkan pada aplikasi yang menggunakan TensorFlow Lite
  • Misalnya, Adobe Scan adalah aplikasi keren yang benar-benar sering saya gunakan, dan fitur terbaiknya adalah memindai dokumen dengan kamera ponsel
    • Seseorang..

Hal yang perlu diperhatikan

  • Model yang diekstrak dilindungi hak cipta, sehingga penggunaan/modifikasi tanpa izin yang sah sebaiknya dihindari
  • Metode dalam postingan ini ditujukan untuk penelitian, dan saat diterapkan secara nyata perlu mempertimbangkan regulasi terkait serta isu hak kekayaan intelektual

3 komentar

 
yangeok 2025-01-14

Bahkan modelnya juga direkayasa balik,,

 
jhj0517 2025-01-06

Wah, mengekstrak file weight dari file apk??
Meski terbatas pada library tertentu, ini tetap luar biasa..

 
GN⁺ 2025-01-06
Komentar Hacker News
  • Mengekstrak model ML adalah langkah pertama, dan menangani transformasi sebelum input data serta format output adalah langkah kedua
  • Menggunakan ML di perangkat memiliki keuntungan besar dalam meningkatkan privasi pengguna
  • Pengembang aplikasi yang mempertimbangkan tflite lebih aman jika meng-host model di Firebase dan menghapusnya setelah tugas selesai
    • Firebase menyediakan fitur seperti pengelolaan versi pembaruan model, A/B testing, pengurangan ukuran APK, dan lain-lain
  • Gboard menggunakan homomorphic encryption untuk mempelajari kata-kata umum publik dan memberikan saran terenkripsi
    • Misalnya, ada dua ejaan umum untuk 'bizarre' di Gboard
  • Model AI dianggap sebagai kekayaan intelektual, dan izin eksplisit dari pemilik diperlukan sebelum menggunakannya atau memodifikasinya
  • Tindakan membebaskan model terbuka yang dilatih dengan data terbuka untuk penyandang tunanetra adalah hal yang patut diapresiasi
    • Makalah terkait, kode, data pelatihan, dan model dapat diunduh dari GitHub
    • Berada di bawah lisensi MIT dan CDLA-Permissive-2.0
  • Menurut posisi para pemain utama, mengunduh model dalam jumlah besar dan melatih model ML tidak melanggar hak kekayaan intelektual
  • Ada makalah penelitian menarik tentang ekstraksi model dalam skala besar dari aplikasi Android
  • Alat Frida sangat berguna, dan banyak orang tertarik pada isu hak kekayaan intelektual
    • Ini tampak seperti upaya untuk tidak mengiklankan cara 'mencuri' model demi menghindari masalah hukum