Joven hacker sonriendo

Presentar error de manera segura

Nuestros ethical hackers explican cómo evitar vulnerabilidades de seguridad mediante la programación segura en ASPNET al presentar mensajes de error seguros. Un atacante puede utilizar los mensajes de error para conocer la infraestructura de la aplicación y planear la forma de vulnerarla.

Necesidad

Emitir mensajes de error que no puedan revelar información que un usuario malintencionado pueda utilizar para realizar un ataque a su sistema.

Contexto

A continuación se describe las circunstancias bajo las cuales la siguiente solución tiene sentido:

  1. Se está desarrollando una aplicación en ASP.Net.

Solución

Un aspecto importante del desarrollo de aplicaciones seguras es evitar que se filtre información relevante. Los mensajes de error le pueden dar a un atacante una idea del funcionamiento interno de la aplicación [1] . Cuando la aplicación muestra mensajes de error, no debe revelar información que a un usuario malintencionado le pueda resultar útil en el ataque a su sistema. Por ejemplo, si la aplicación intenta sin éxito iniciar sesión en una base de datos, no debe mostrar un mensaje de error que incluya el nombre del usuario que está utilizando [2].

Existen diversas maneras de controlar mensajes de error, incluyendo las siguientes:

  1. Definir la condición que valida si los datos de autenticación del usuario son correctos o no inmediatamente después de hacer la consulta en la base de datos.

  2. Incluir control de errores siempre que sea práctico y construir sus propios mensajes de error. En el controlador de errores, puede probar para ver si el usuario es local y reaccionar en consecuencia.

  3. Crear un controlador de errores global en la página o aplicación de nivel que capture todas las excepciones no controladas y las envíe a una página de error genérico. De esta manera, incluso si usted no anticipó un problema, al menos, los usuarios no verán una página de excepción.

  4. Configurar la aplicación web para que no muestre mensajes de error detallados para los usuarios remotos. Los usuarios remotos son los que solicitan las páginas mientras no está trabajando en el equipo servidor Web. Se puede redirigir los errores a una página de la aplicación. Para lograr ésto se deben seguir los siguientes pasos:

    • Establecer el atributo mode en RemoteOnly (se distingue entre mayúsculas y minúsculas). De esta forma es posible configurar la aplicación para que sólo se muestren errores detallados a los usuarios locales ,es decir, al usuario o desarrollador.

    • Se recomienda también incluir un atributo defaultRedirect que señale a una página de error personalizada de la aplicación.

    • Como alternativa, incluya elementos <error> que redirijan errores específicos a páginas específicas. Por ejemplo, puede redirigir los errores 404 estándar (no se encontró la página) a su propia página de aplicación.

      Un ejemplo del procedimiento anteriormente mencionado se muestra en el siguiente fragmento de código:

test.py
1
2
3
4
<customErrors mode="RemoteOnly" defaultRedirect="AppErrors.aspx">
   <error statusCode="404" redirect="NoSuchPage.aspx"/>
   <error statusCode="403" redirect="NoAccessAllowed.aspx"/>
</customErrors>



Haz un comentario

Estado de los servicios - Términos de Uso