Android Class Load Hijacking
Android 类加载劫持
描述
应用程序加载存储在不安全位置的 jar/apk。
该加载过程可能会被劫持,从而允许恶意应用程序访问私人数据并执行意外的任意代码。
建议
如果您使用 DexClassLoader 来加载和执行额外的 DEX 代码:
- 不要使用全局可写目录(例如 SD 卡)作为 dexPath
- 不要使用全局可写目录(例如 SD 卡)作为 ODEX(即 DexClassLoader 构造函数的第二个参数,优化的 DEX)
如果您使用 PathClassLoader 来加载和执行额外的 jar/资源:
- 不要使用全局可写目录(例如 SD 卡)作为路径 (path)
- 不要使用全局可写目录(例如 SD 卡)作为 libpath。默认情况下,外部存储在挂载时带有 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