Joven hacker sonriendo

Hackeamos su software

cero falsos positivos

Inteligencia experta + automatización eficaz

Proteger el ViewState

Nuestros ethical hackers explican cómo evitar vulnerabilidades de seguridad mediante la programación segura en ASP.NET al proteger adecuadamente el ViewState. La información almacenada en el ViewState le permite a un atacante conocer detalles técnicos de la misma para realizar ataques complejos.

Necesidad

Se requiere proteger el ViewState en ASP.NET.

Contexto

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

  1. La aplicación esta construida en ASP.NET version 1.1 , 2.0 , superior.

Solución

Un mecanismo ampliamente utilizado en ASP.NET para intercambiar información en el lado del cliente es el ViewState. Consiste en un campo oculto de las aplicaciones web que contiene información acerca del estado general de la página. Esta información, a diferencia de las cookies no es accesible desde todas las páginas del sitio web. Además en ASP.NET el ViewState es utilizado para mejorar el rendimiento del servidor, permitiéndole preservar elementos en la interfaz de usuario sin necesidad de realizar multiples peticiones al servidor.

Los desarrolladores normalmente utilizan el ViewState para almacenar información entre peticiones sucesivas, evitando así sobrecargar el servidor. Esta información permite conservar datos del usuario en el lado del cliente, y tiene un gran número de usos. Por ejemplo, permitir que una vez enviado un formulario, el usuario sea capaz de regresar y modificar algún valor, sin necesidad de llenar el formulario desde el principio. Sin embargo si un ViewState no es adecuadamente protegido puede revelar información técnica a un usuario malicioso. Incluso puede ser modificado por un atacante, para probar si se genera algún comportamiento inesperado en la validación del servidor.

Para proteger el ViewState en ASP.NET se deben tener en cuentas las siguientes consideraciones:

  1. Cifrar el ViewState desde el archivo de configuración. Asignar el valor Always al atributo viewStateEncryptionMode del elemento pages. Este se encuentra en el archivo de configuración de la aplicación web.config [2].

    web.config
    1
    2
    3
    <page
       viewStateEncryptionMode=Always
    />
    
  2. Cifrar el ViewState desde la página. Para ello, asigne el valor Always al atributo viewStateEncryptionMode en la directiva @Page.

  3. Habilitar la ejecución MAC para el ViewState. Es necesario especificarle a ASP.NET que ejecute un código de autenticación de mensajes (MAC) para el ViewState de la página cuando el cliente lo devuelve. Para realizar esto, se debe asignar el valor true al atributo enableViewStateMac del elemento pages, contenido en el archivo de configuración de la aplicación web.config.




Haz un comentario

Estado de los servicios - Términos de Uso