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