14P by neo 2달전 | ★ favorite | 댓글 3개
  • 많은 앱이 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는 거의 모든 운영체제에서 실행 가능한 동적 계측 도구로, 실행 중인 프로세스에 연결하여 동작을 변경할 수 있음
  • 프로세스 실행 중에 붙어 메서드 호출을 추적하고, 인자와 반환값을 확인하거나, 메서드 내용을 원하는 로직으로 덮어쓸 수 있음
    • 예: 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은 내가 실제로 자주 사용하는 멋진 앱으로, 휴대폰 카메라로 문서를 스캔하는 것이 가장 좋은 기능
    • 누군가..

주의사항

  • 추출된 모델은 저작권이 있으므로, 적법한 허가 없이 무단 사용/수정은 지양해야 함
  • 본 포스팅의 방법은 연구 목적이며, 실제 적용 시 관련 법규와 지적 재산권 이슈를 고려할 필요가 있음

와 모델도 리버싱,,

우와 apk 파일로 부터 weight 파일을 추출??
특정 라이브러리 한정이라지만 대단한데요..

Hacker News 의견
  • ML 모델을 추출하는 것은 첫 번째 단계이며, 데이터 입력 전 변환과 출력 형식을 처리하는 것이 두 번째 단계임
  • 기기 내에서 ML을 사용하는 것은 사용자 프라이버시를 개선하는 큰 장점이 있음
  • tflite를 고려하는 앱 개발자는 Firebase에 모델을 호스팅하고 작업 완료 후 삭제하는 것이 더 안전한 방법임
    • Firebase는 모델 업데이트 버전 관리, A/B 테스트, APK 크기 감소 등의 기능을 제공함
  • Gboard는 동형 암호화를 사용하여 공공의 일반적인 단어를 학습하고 암호화된 제안을 제공함
    • 예를 들어, Gboard에서 'bizarre'의 두 가지 일반적인 철자가 있음
  • AI 모델은 지적 재산으로 간주되며, 이를 사용하거나 수정하기 전에 소유자의 명시적 허가가 필요함
  • 오픈 데이터로 훈련된 오픈 모델을 시각 장애인을 위해 해방한 것에 대해 잘한 일임
    • 관련 논문, 코드, 훈련 데이터 및 모델은 GitHub에서 다운로드 가능함
    • MIT 및 CDLA-Permissive-2.0 라이선스 하에 있음
  • 주요 플레이어의 입장에 따르면, 대량으로 모델을 다운로드하고 ML 모델을 훈련하는 것은 지적 재산권을 침해하지 않음
  • Android 앱에서 대규모로 모델을 추출한 흥미로운 연구 논문이 있음
  • Frida 도구는 매우 유용하며 많은 사람들이 지적 재산권 문제에 관심을 가짐
    • 법적 문제를 피하기 위해 모델을 '훔치는' 방법을 광고하지 않으려는 시도로 보임