lunes, junio 22, 2015

Fugas de información en aplicaciones .NET por dejar el modo Debug activado

Este tercer artículo dedicado a los mensajes de error en aplicaciones .NET va enfocado a algo que a pesar de ser bastante evidente, sigue siendo común encontrar en auditorías de servidores web que soportan este tipo de tecnologías. En los dos artículos anteriores os dejé textos centrados en los riesgos que provocan dejar activado Trace Viewer y Elmah, permitiendo que una atacante pudiera acceder a datos sensibles de las conexiones de los usuarios. Hoy le toca el turno a las aplicaciones que tienen los mensajes de error configurados en modo DEBUG.

Figura 1: Fugas de información en aplicaciones .NET por dejar el modo Debug activado

El modo DEBUG se configura en las aplicaciones .NET para que el programador no solo pueda obtener información explícita de los mensajes de error con los códigos de error correspondientes, sino que además se muestran las líneas de código en las que se ha producido el fallo en el servidor. 

Figura 2: Errores explícitos con fugas de información y secciones de código con el modo debug ON

Detectar que un servidor tiene estos mensajes de error activados, y por tanto levantar una alerta de seguridad en una auditoría, es tan sencillo como que en en los mensajes de error no solo aparezca la descripción detallada del error en el título, sino que aparezcan las líneas numeradas de la sección del código donde falló.
<configuration>
<system.Web>
<compilation debug="true">
<system.Web>
</configuration>
Figura 3: Configuración de modo DEBUG ON en Errores .NET

Esto es así, porque en la configuración del Web.Config - o incluso en la configuración de Machine.Config a nivel de servidor completo - se ha definido que una aplicación está en modo Debug, con el parámetro compilation, tal y como se puede ver a en la Figura 3. Si está a False, el error que se obtendría es el que se puede ver a continuación.

Figura 4: Errores de aplicación en .NET cuando no hay modo Debug activado

Para que esto estuviera correcto, se debería configurar el parámetro compilation a false. Una aplicación .NET con el modo Debug desactivado, no mostrará un mensaje de error con las líneas de código, y por tanto dará muchos menos leaks de información. Si tienes algún WAF, es probable que los mensajes de este tipo saltan todas las alertas, ya que reglas como las de Mod_Security los detectan. Cuando tu aplicación esté en producción pon el modo Debug a false sí o sí.

Saludos Malignos!

4 comentarios:

shoman dijo...

Lo mismo pasa con django, de modo que, mucho cuidado!

ST REPARA dijo...

gracias por el aporte,he llegado a este poat de casualidad y la verdad que tiene muy buena pinta este blog, tienes un post de las conversaciones de watshapp muy bueno enhorabuena por el blog

ML dijo...

A veces un mensaje sin error puede tenerte un tiempo enorme comiéndote la cabeza para corregirlo, así que es una maravilla poder tener información.

Reparacion electrodomesticos dijo...

Me has solucionado el problema que tenía cambiando de compilation a false, gracias compañero!

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares