Saltar a contenido

Remote Command Execution

Ejecución de Comandos Remotos

Descripción

La inyección de comandos es un ataque cuyo objetivo es la ejecución de comandos arbitrarios en el sistema operativo Android a través de una aplicación vulnerable. Los ataques de inyección de comandos son posibles cuando una aplicación pasa datos no seguros proporcionados por el usuario (formularios, cookies, encabezados HTTP, etc.) al shell del sistema. En este ataque, los comandos del sistema operativo proporcionados por el atacante generalmente se ejecutan con los privilegios de la aplicación vulnerable. Los ataques de inyección de comandos son posibles en gran medida debido a una validación insuficiente de las entradas.

Recomendación

Para mitigar la vulnerabilidad de inyección de comandos, a continuación se presentan algunas recomendaciones:

  • Siempre que sea posible, evite construir comandos del sistema a partir de las entradas del usuario.
  • Utilice consultas parametrizadas para pasar parámetros a una consulta o cadena de comandos de manera segura.
  • Utilice la validación de entradas para asegurarse de que los datos proporcionados por el usuario estén saneados y solo contengan los valores esperados.

A continuación, se muestran ejemplos de código donde utilizamos consultas parametrizadas para ejecutar comandos del sistema en lugar de la concatenación en bruto.

val cmd = listOf("ls", "-al", "/path/to/directory")
val pb = ProcessBuilder(cmd)
val process = pb.start()
ProcessResult result = await Process.run(
      "ls",
      ['-al', '/path/to/directory'],
      includeParentEnvironment: false,
      environment: {});

Enlaces

Estándares

  • OWASP_MASVS_L1:
    • MSTG_PLATFORM_2
  • OWASP_MASVS_L2:
    • MSTG_PLATFORM_2
  • CWE_TOP_25:
    • CWE_20
    • CWE_78
  • GDPR:
    • ART_5
    • ART_32
  • PCI_STANDARDS:
    • REQ_6_2
    • REQ_6_3
    • REQ_11_3
  • OWASP_MASVS_v2_1:
    • MASVS_CODE_4
  • SOC2_CONTROLS:
    • CC_2_1
    • CC_3_4
    • CC_4_1
    • CC_7_1
    • CC_7_2
    • CC_7_4
    • CC_7_5
  • HIPAA_CONTROLS:
    • SECURITY212
    • SECURITY213
    • SECURITY255