14 पॉइंट द्वारा GN⁺ 2025-01-06 | 3 टिप्पणियां | WhatsApp पर शेयर करें
  • कई ऐप्स AI मॉडल को सीधे डिवाइस में इंटीग्रेट कर रहे हैं। यह तब फ़ायदेमंद होता है जब तेज़ inference और offline access महत्वपूर्ण हों
  • लेकिन डिवाइस के अंदर मॉडल फ़ाइल मौजूद होने का मतलब यह भी है कि उपयोगकर्ता उस फ़ाइल को निकालकर उसका विश्लेषण कर सकता है

लक्ष्य

  • Microsoft की Seeing AI ऐप दृष्टिबाधित लोगों के लिए एक "बोलने वाला कैमरा" है, जो वस्तुओं, दस्तावेज़ों, मुद्रा आदि को पहचानकर आवाज़ में उनका वर्णन करती है
  • खास तौर पर इसका currency recognition फ़ीचर 17 से अधिक मुद्राओं को सपोर्ट करता है और 225 अलग-अलग बैंकनोट्स को पहचानता है
  • ऐप के distribution format APK फ़ाइल के अंदर मॉडल शामिल है, लेकिन यह encrypted फ़ाइल (currency) के रूप में मौजूद है
  • अगर फ़ाइल केवल साधारण रूप से encrypted है, तो ऐप चलने के दौरान memory या decryption process को trace करके फ़ाइल निकाली जा सकती है

शुरुआती जाँच

  • Android ऐप्स APK फ़ाइलों के रूप में वितरित होती हैं, जो ऐप चलाने के लिए ज़रूरी सब कुछ रखने वाला archive होता है
  • AI मॉडल आम तौर पर इन्हीं assets के साथ स्टोर किए जाते हैं
  • apktool का उपयोग करके APK को decompile किया जा सकता है और उसकी संरचना का विश्लेषण किया जा सकता है
  • assets फ़ोल्डर में currency नाम की फ़ाइल मिली, लेकिन वह encrypted थी

आगे बढ़ना

  • ऐप currency फ़ाइल को कैसे decrypt करती है, इसका reverse engineering किया जा सकता है
  • पुष्टि हुई कि com.microsoft.seeingai में TensorFlow Lite का उपयोग होता है
  • org.tensorflow.lite.NativeInterpreterWrapper का उपयोग करके *.tflite मॉडल लोड किए जा सकते हैं

Frida का उपयोग

  • Frida एक dynamic instrumentation tool है जो लगभग किसी भी operating system पर चल सकता है और running process से जुड़कर उसके व्यवहार को बदल सकता है
  • process के चलने के दौरान उससे जुड़कर method calls को trace किया जा सकता है, arguments और return values देखी जा सकती हैं, या method की सामग्री को मनचाहे logic से overwrite किया जा सकता है
    • उदाहरण: checkKey(key) को बदलकर हमेशा true लौटाने के लिए मजबूर किया जा सकता है
  • Objection, Frida scripts का एक CLI tool है, जो mobile app research में उपयोगी है
  • org.tensorflow.lite.NativeInterpreterWrapper के function calls को trace करके मॉडल को disk पर dump किया गया
    • ऐप चलने पर .createModelWithBuffer(java.nio.ByteBuffer, long) कॉल होता है, और उस समय पास किया गया ByteBuffer decrypt किया गया .tflite मॉडल होने की बहुत संभावना है
    • hooking के ज़रिए इस method को dump करने वाले कोड से बदल दिया जाए, तो उस मॉडल को disk पर सेव किया जा सकता है
  • adb pull कमांड से निकाले गए .tflite मॉडल (currency.tflite) को लोकल डिवाइस पर लाया गया
  • Netron जैसे टूल में लोड करके यह सत्यापित किया गया कि यह वास्तव में TensorFlow Lite मॉडल है या नहीं (layers, weights, bias आदि)
  • currency recognition मॉडल का पूरा dump सफलतापूर्वक किया गया

CTRL + C; CTRL + V

  • TensorFlow Lite का उपयोग करने वाले ऐप्स पर यह हमला लागू किया जा सकता है
  • उदाहरण के लिए Adobe Scan एक शानदार ऐप है, जिसे मैं वास्तव में अक्सर इस्तेमाल करता हूँ, और फ़ोन कैमरा से दस्तावेज़ स्कैन करना इसका सबसे अच्छा फ़ीचर है
    • कोई तो..

सावधानियाँ

  • निकाले गए मॉडल copyright के अंतर्गत आते हैं, इसलिए वैध अनुमति के बिना उनका अनधिकृत उपयोग/संशोधन नहीं करना चाहिए
  • इस पोस्ट में बताई गई विधि शोध उद्देश्य के लिए है, और वास्तविक उपयोग में संबंधित क़ानूनों तथा intellectual property से जुड़े मुद्दों पर विचार करना ज़रूरी है

3 टिप्पणियां

 
yangeok 2025-01-14

वाह, मॉडल को भी reverse engineering,,

 
jhj0517 2025-01-06

वाह, apk फ़ाइल से weight फ़ाइल निकालना??
भले ही यह किसी खास लाइब्रेरी तक सीमित हो, फिर भी कमाल है..

 
GN⁺ 2025-01-06
Hacker News की राय
  • ML model को extract करना पहला कदम है, और data input से पहले transformation तथा output format को handle करना दूसरा कदम है
  • device पर ही ML का उपयोग करने का एक बड़ा फ़ायदा यह है कि इससे user privacy बेहतर होती है
  • जो app developers tflite पर विचार कर रहे हैं, उनके लिए model को Firebase पर host करना और काम पूरा होने के बाद उसे delete कर देना अधिक सुरक्षित तरीका है
    • Firebase model update version management, A/B testing, APK size reduction जैसी सुविधाएँ देता है
  • Gboard homomorphic encryption का उपयोग करके सार्वजनिक रूप से सामान्य शब्द सीखता है और encrypted suggestions प्रदान करता है
    • उदाहरण के लिए, Gboard में 'bizarre' की दो सामान्य spellings हैं
  • AI model को intellectual property माना जाता है, और इसका उपयोग या modification करने से पहले owner की स्पष्ट अनुमति आवश्यक है
  • open data पर trained open model को दृष्टिबाधित लोगों के लिए मुक्त करना सराहनीय है
    • संबंधित paper, code, training data और model GitHub से download किए जा सकते हैं
    • यह MIT और CDLA-Permissive-2.0 license के तहत है
  • प्रमुख खिलाड़ियों के रुख के अनुसार, बड़े पैमाने पर model डाउनलोड करना और ML model को train करना intellectual property rights का उल्लंघन नहीं है
  • Android app से बड़े पैमाने पर model extract करने पर एक दिलचस्प research paper है
  • Frida tool बहुत उपयोगी है, और बहुत से लोग intellectual property issues में रुचि रखते हैं
    • यह कानूनी समस्याओं से बचने के लिए model को 'चुराने' के तरीक़े का प्रचार न करने की कोशिश जैसा लगता है