Mobil uygulamalardan yapay zeka modeli çıkarmak
(altayakkus.substack.com)- Birçok uygulama yapay zeka modellerini doğrudan cihaza entegre ediyor. Bu, hızlı çıkarım ve çevrimdışı erişimin önemli olduğu durumlarda avantaj sağlıyor
- Ancak model dosyasının cihazın içinde bulunması, kullanıcıların bu dosyayı çıkarıp analiz edebileceği anlamına da geliyor
Hedef
- Microsoft’un Seeing AI uygulaması, görme engelliler için nesneleri, belgeleri, parayı ve daha fazlasını tanıyıp sesli olarak açıklayan bir “konuşan kamera”
- Özellikle para birimi tanıma özelliği 17’den fazla para birimini destekliyor ve 225 benzersiz banknotu tanıyor
- Uygulamanın dağıtım biçimi olan APK dosyasının içinde model yer alıyor, ancak şifrelenmiş bir dosya (
currency) halinde bulunuyor - Dosya yalnızca basitçe şifrelenmişse, uygulama çalışırken belleği ya da şifre çözme sürecini izleyerek dosya çıkarılabilir
İlk inceleme
- Android uygulamaları APK dosyaları olarak dağıtılır; bu dosyalar, uygulamanın çalışması için gereken her şeyi içeren arşivlerdir
- Yapay zeka modelleri genellikle bu tür varlıklarla birlikte saklanır
apktoolkullanılarak APK decompile edilebilir ve yapısı analiz edilebilirassetsklasöründecurrencyadlı bir dosya bulundu, ancak bu dosya şifreliydi
Daha ileri gitmek
- Uygulamanın
currencydosyasını nasıl çözdüğü tersine mühendislikle incelenebilir com.microsoft.seeingaiiçinde TensorFlow Lite kullanıldığı doğrulandıorg.tensorflow.lite.NativeInterpreterWrapperkullanılarak*.tflitemodelleri yüklenebiliyor
Frida kullanmak
- Frida, neredeyse her işletim sisteminde çalışabilen dinamik bir enstrümantasyon aracıdır; çalışan bir prosese bağlanıp davranışını değiştirebilir
- Proses çalışırken bağlanarak metot çağrılarını izleyebilir, argümanları ve dönüş değerlerini görebilir ya da metot içeriğini istenen mantıkla değiştirebilir
- Örneğin
checkKey(key)metodunu her zamantruedöndürecek şekilde değiştirebilirsiniz
- Örneğin
- Objection, Frida script’lerini bir araya getiren bir CLI aracıdır ve mobil uygulama araştırmalarında faydalıdır
org.tensorflow.lite.NativeInterpreterWrapperfonksiyon çağrıları izlenerek model diske dump edildi- Uygulama çalışırken
.createModelWithBuffer(java.nio.ByteBuffer, long)çağrılıyor; bu sırada aktarılanByteBufferbüyük olasılıkla şifresi çözülmüş.tflitemodelidir - Hooking ile bu metot dump alma koduyla değiştirilirse, ilgili model diske kaydedilebilir
- Uygulama çalışırken
adb pullkomutuyla çıkarılan.tflitemodeli (currency.tflite) yerel cihaza alındı- Netron gibi araçlarla yüklenip bunun gerçekten bir TensorFlow Lite modeli olup olmadığı (katmanlar, ağırlıklar, bias vb.) doğrulandı
- Para birimi tanıma modelinin eksiksiz dump’ı başarıyla alındı
CTRL + C; CTRL + V
- TensorFlow Lite kullanan uygulamalara karşı bu saldırı uygulanabilir
- Örneğin Adobe Scan, benim gerçekten sık kullandığım harika bir uygulama ve telefon kamerasıyla belge tarama özelliği en iyi yanlarından biri
- Biri..
Dikkat edilmesi gerekenler
- Çıkarılan model telif hakkına tabidir; yasal izin olmadan izinsiz kullanım/değişiklikten kaçınılmalıdır
- Bu yazıdaki yöntemler araştırma amaçlıdır; gerçek kullanımda ilgili mevzuat ile fikri mülkiyet konularının dikkate alınması gerekir
3 yorum
Ve model de reverse engineering,,
Vay be, apk dosyasından weight dosyasını çıkarmak mı??
Belirli bir kütüphaneyle sınırlı olsa da gerçekten etkileyici..
Hacker News görüşleri
tflitedüşünen uygulama geliştiricileri için, modeli Firebase’de barındırıp iş tamamlandıktan sonra silmek daha güvenli bir yöntemdirbizarrekelimesinin yaygın iki farklı yazımı vardır