コンテンツにスキップ

Android Class Load Hijacking

Androidのクラスロードハイジャッキング

説明

アプリケーションは、安全でない場所に保存されたjar/apkをロードしています。

このロードプロセスはハイジャックされる可能性があり、悪意のあるアプリケーションによる非公開データへのアクセスや、予期しない任意のコードの実行を許す可能性があります。

推奨事項

追加のDEXコードをロードして実行するためにDexClassLoaderを使用する場合:

  • dexPathに(SDカードなどの)誰でも書き込み可能なディレクトリを使用しないでください。
  • ODEX(DexClassLoaderコンストラクタの2番目のパラメータである最適化されたDEX)に(SDカードなどの)誰でも書き込み可能なディレクトリを使用しないでください。

追加のjar/リソースをロードして実行するためにPathClassLoaderを使用する場合:

  • pathに(SDカードなどの)誰でも書き込み可能なディレクトリを使用しないでください。
  • libpathに(SDカードなどの)誰でも書き込み可能なディレクトリを使用しないでください。デフォルトでは、外部ストレージはマウントされたファイルシステムでのネイティブバイナリの実行を防ぐためにnoexecフラグ付きでマウントされます。

リンク

基準

  • OWASP_MASVS_L1:
    • MSTG_PLATFORM_2
  • OWASP_MASVS_L2:
    • MSTG_PLATFORM_2
  • CWE_TOP_25:
    • CWE_22
  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_3_5
    • REQ_6_2
    • REQ_6_3
    • REQ_11_3
  • OWASP_MASVS_v2_1:
    • MASVS_CODE_4
  • SOC2_CONTROLS:
    • CC_2_1
    • CC_4_1
    • CC_7_1
    • CC_7_2
    • CC_7_4
    • CC_7_5
  • HIPAA_CONTROLS:
    • SECURITY251
    • SECURITY212
    • SECURITY213