跳转至

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