跳转至

Debug mode enabled

调试模式已启用

描述

Android Manifest 中定义的 Application 中的 android: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