コンテンツにスキップ

Debug mode enabled

デバッグモード有効

説明

Android Manifestで定義されているApplicationandroid:debuggable属性は、アプリケーションをデバッグできるかどうかを決定します。

デバッグモードを使用すると、攻撃者はアプリケーションのファイルシステムにアクセスし、デバッガーをアタッチして機密データにアクセスしたり、悪意のあるアクションを実行したりできます。

jdbを使用してデバッグセッションを開始するには、以下の手順を使用できます:

  • adb jdwpを使用して、ターゲットアプリケーションのPIDを特定します:
$adb jdwp
3466
15446
  • adbを使用して通信チャネルを作成し、jdbを使用してアタッチします:
$adb forward tcp:7777 jdwp:$(adb shell ps | grep "package-id")
$jdb -attach localhost:7777
  • アプリケーションのファイルシステムにアクセスします:
$adb shell
$run-as package-id
$...insert malicious action...

攻撃者はソースコードにアクセスしなくてもアプリケーションをデバッグでき、それを利用してユーザーの代わりに悪意のあるアクションを実行したり、アプリケーションの動作を変更したり、認証情報やセッションCookieなどの機密データにアクセスしたりできます。

推奨事項

Android ManifestのApplicationタグで、属性android:debuggeableをfalseに設定して、デバッグモードを無効にします。

<application android:icon="@drawable/icon" android:debuggable="false">

リンク

基準

  • OWASP_MASVS_L1:
    • MSTG_CODE_2
  • OWASP_MASVS_L2:
    • MSTG_CODE_2
  • PCI_STANDARDS:
    • REQ_2_2
  • HIPAA_CONTROLS:
    • SECURITY212
    • SECURITY213
    • SECURITY255