Es posible explotar C #, Java, Python o cualquier lenguaje que se ejecute dentro de una VM (es decir, en tiempo de ejecución administrado)

0

¿Es posible explotar una aplicación vulnerable que se ejecuta dentro de una máquina virtual de proceso ?

Digamos que tenemos una vulnerabilidad de desbordamiento de búfer en una aplicación Java, pero la JVM no es vulnerable. ¿Hay alguna forma de explotarlo?

    
pregunta user46969 20.05.2014 - 23:07
fuente

2 respuestas

3

No es posible tener una vulnerabilidad de desbordamiento de búfer en un entorno de memoria administrada como Java, .Net o Python. Dado que el tiempo de ejecución, no los desarrolladores administran las asignaciones de memoria y desasignaciones, esta clase de vulnerabilidad no existe.

Dicho esto, existen vulnerabilidades en estos entornos, pero la JVM (o equivalente) es relativamente irrelevante. Por ejemplo, Java tiene problemas para evitar que los applets escapen del entorno limitado y ASP.NET sufrió un oráculo de relleno .

Por lo tanto, cualquier lenguaje ofrece el potencial de explotaciones en abundancia. Los lenguajes de memoria administrada simplemente eliminan las vulnerabilidades específicas de la administración de memoria manual, como los desbordamientos de búfer. Sin embargo, incluso esto solo es cierto en el entorno de ejecución. Java le permite ejecutar código no seguro fuera de la JVM a través de JNI, y .Net ofrece lo mismo a través de P / Invoke o COM-Interop. Nuevamente, en estos casos, el tiempo de ejecución no es significativo, ya que se omite por completo.

    
respondido por el Xander 21.05.2014 - 00:49
fuente
1

Si una aplicación es vulnerable, es por definición explotable. Usted dice que una aplicación es "vulnerable", pero en realidad es un acortamiento de la frase "vulnerable a la explotación". Los dos conceptos son aproximadamente sinónimos.

La vulnerabilidad tiene en cuenta el marco. No ves explotaciones de desbordamiento de búfer en los programas de Python porque el marco protege contra eso. Pero no protege de forma implícita contra ataques de inyección o almacenamiento inseguro, por lo que espera ver explotaciones dirigidas a esas áreas.

Tenga en cuenta que el marco no tiene ninguna vulnerabilidad; Python no es susceptible de ataques de inyección, ni Java, pero ninguno de los marcos protege contra esos ataques de la misma manera que lo hacen para los desbordamientos de búfer. Entonces, mientras que Python no es vulnerable, un programa escrito en Python podría ser.

    
respondido por el tylerl 21.05.2014 - 05:06
fuente

Lea otras preguntas en las etiquetas