Fecha: 14 de diciembre de 2024
El parámetro VIEWSTATE no Cifrado es una vulnerabilidad con severidad media de tipo configuración.
Si en la aplicación el parámetro ViewState no está cifrado, expone información sensible a la interceptación y manipulación por parte de atacantes. Esto puede permitir ataques como:
- Divulgación de información sensible: Exposición de credenciales de autenticación, datos personales y otros datos confidenciales almacenados en el ViewState.
- Sesión fijación: Ataques que permiten a un atacante tomar el control de la sesión de un usuario legítimo.
- Manipulación del estado de la aplicación: Posibilidad de alterar el comportamiento de la aplicación y realizar acciones no autorizadas.
Cómo detectar si su aplicación tiene esta vulnerabilidad
- Inspección manual: Revisar el código fuente HTML de las páginas para identificar el parámetro ViewState y analizar su contenido.
- Análisis de tráfico HTTP: Utilizar herramientas como Burp Suite o OWASP ZAP para interceptar y examinar el tráfico HTTP y buscar el ViewState sin cifrar.
- Escáneres de vulnerabilidades: Emplear escáneres automatizados para detectar esta vulnerabilidad.
Le recomendamos en caso de que su aplicativo use ViewState
- Cifrar el ViewState: Configurar el atributo validation de machineKey en web.config para utilizar el algoritmo AES:
<system.web>
<machineKey validation="AES" decryptionKey="..." decryption="Auto" />
</system.web>
- Generar claves fuertes: Utilizar un generador de números aleatorios criptográficamente seguro para crear claves machineKey únicas y complejas.
- Rotar las claves periódicamente: Implementar un mecanismo para rotar las claves machineKey de forma regular.
- Realizar pruebas exhaustivas: Verificar que el cifrado se haya implementado correctamente y que no afecte la funcionalidad de la aplicación.
- Implementar otras medidas de seguridad:
HTTPS: Proteger toda la comunicación con el servidor utilizando HTTPS.
XSS: Implementar medidas para prevenir ataques de Cross-Site Scripting (XSS).
WAF: Considerar el uso de un Web Application Firewall (WAF) para proteger la aplicación contra diversas amenazas.