14 ポイント 投稿者 GN⁺ 2025-01-06 | 3件のコメント | WhatsAppで共有
  • 多くのアプリがAIモデルをデバイスに直接統合している。これは高速な推論やオフラインアクセスが重要な場合に有利
  • しかし、デバイス内部にモデルファイルが存在するということは、ユーザーがそのファイルを抽出して分析できることも意味する

目的

  • MicrosoftのSeeing AIアプリは、視覚障害者のための「話すカメラ」であり、物体、文書、紙幣などを認識して音声で説明してくれる
  • 特に紙幣(currency)認識機能は17以上の通貨に対応しており、225種類の固有の紙幣を認識する
  • アプリの配布形式であるAPKファイルの中にモデルが含まれているが、暗号化された状態のファイル(currency)として存在する
  • ファイルが単純に暗号化されているだけなら、アプリ実行中のメモリや復号化の過程を追跡してファイルを抽出できる

初期調査

  • AndroidアプリはAPKファイルとして配布され、これはアプリ実行に必要なすべてを含むアーカイブ
  • AIモデルは通常、このようなアセットと一緒に保存される
  • apktoolを使ってAPKをデコンパイルし、構造を分析できる
  • assetsフォルダでcurrencyというファイルを見つけたが、暗号化されている

さらに進む

  • アプリがcurrencyファイルをどのように復号化するのかをリバースエンジニアリングできる
  • TensorFlow Liteがcom.microsoft.seeingaiで使われていることを確認
  • org.tensorflow.lite.NativeInterpreterWrapperを使って*.tfliteモデルをロードできる

Fridaを使う

  • Fridaは、ほぼあらゆるOSで動作する動的インストルメンテーションツールで、実行中のプロセスに接続して挙動を変更できる
  • プロセスの実行中にアタッチしてメソッド呼び出しを追跡し、引数と戻り値を確認したり、メソッド本体を任意のロジックで上書きしたりできる
    • 例: checkKey(key)が常にtrueを返すように変更することもできる
  • ObjectionはFridaスクリプトを集めたCLIツールで、モバイルアプリの調査に役立つ
  • org.tensorflow.lite.NativeInterpreterWrapperの関数呼び出しを追跡して、モデルをディスクにダンプする
    • アプリ実行時に.createModelWithBuffer(java.nio.ByteBuffer, long)が呼び出され、このとき渡されるByteBufferが復号化された.tfliteモデルである可能性が高い
    • フックによってこのメソッドをダンプ用コードに置き換えれば、該当モデルをディスクに保存できる
  • adb pullコマンドで抽出した.tfliteモデル(currency.tflite)をローカルデバイスに持ってくる
  • Netronのようなツールでロードし、実際にTensorFlow Liteモデルであること(レイヤー、重み、バイアスなど)を確認
  • 紙幣認識モデルの完全なダンプに成功

CTRL + C; CTRL + V

  • TensorFlow Liteを使うアプリに対してこの攻撃を応用できる
  • たとえばAdobe Scanは、私が実際によく使っている素晴らしいアプリで、スマホのカメラで文書をスキャンできるのが最大の魅力
    • 誰かが..

注意事項

  • 抽出されたモデルには著作権があるため、適法な許可なく無断で使用・改変することは避けるべき
  • 本投稿の方法は研究目的のものであり、実際に適用する際は関連法規や知的財産権の問題を考慮する必要がある

3件のコメント

 
yangeok 2025-01-14

そしてモデルもリバースエンジニアリング、、

 
jhj0517 2025-01-06

わあ、apkファイルからweightファイルを抽出するんですか??
特定のライブラリに限った話とはいえ、すごいですね..

 
GN⁺ 2025-01-06
Hacker Newsのコメント
  • MLモデルの抽出は第一段階であり、データ入力前の変換と出力形式の処理が第二段階である
  • デバイス内でMLを使うことには、ユーザープライバシーを改善する大きな利点がある
  • tflite を検討しているアプリ開発者にとっては、Firebaseにモデルをホストし、処理完了後に削除するほうがより安全な方法である
    • Firebaseは、モデル更新のバージョン管理、A/Bテスト、APKサイズ削減などの機能を提供する
  • Gboardは準同型暗号を用いて、一般に使われる単語を学習し、暗号化された候補を提供している
    • 例えば、Gboardでは bizarre の一般的な綴りが2通りある
  • AIモデルは知的財産と見なされ、それを使用または修正する前には所有者の明示的な許可が必要である
  • オープンデータで訓練されたオープンモデルを視覚障害者のために解放したのは良いことだ
    • 関連論文、コード、訓練データ、モデルはGitHubからダウンロード可能である
    • MITおよびCDLA-Permissive-2.0ライセンスの下で提供されている
  • 主要プレイヤーの立場によれば、大量にモデルをダウンロードしてMLモデルを訓練することは知的財産権の侵害には当たらない
  • Androidアプリから大規模にモデルを抽出した興味深い研究論文がある
  • Fridaツールは非常に有用であり、多くの人が知的財産権の問題に関心を持っている
    • 法的問題を避けるため、モデルを「盗む」方法を宣伝しないようにしているように見える