- 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
apktool kullanılarak APK decompile edilebilir ve yapısı analiz edilebilir
assets klasöründe currency adlı bir dosya bulundu, ancak bu dosya şifreliydi
Daha ileri gitmek
- Uygulamanın
currency dosyasını nasıl çözdüğü tersine mühendislikle incelenebilir
com.microsoft.seeingai içinde TensorFlow Lite kullanıldığı doğrulandı
org.tensorflow.lite.NativeInterpreterWrapper kullanılarak *.tflite modelleri 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 zaman true döndürecek şekilde değiştirebilirsiniz
- 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.NativeInterpreterWrapper fonksiyon çağrıları izlenerek model diske dump edildi
- Uygulama çalışırken
.createModelWithBuffer(java.nio.ByteBuffer, long) çağrılıyor; bu sırada aktarılan ByteBuffer büyük olasılıkla şifresi çözülmüş .tflite modelidir
- Hooking ile bu metot dump alma koduyla değiştirilirse, ilgili model diske kaydedilebilir
adb pull komutuyla çıkarılan .tflite modeli (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
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