Quienes me siguen en twitter (twitter.com/gabo) se habrán enterado sobre la vulnerabilidad en ASP.NET que me hizo decir algunas maldiciones en días pasados. Es una vulnerabilidad importante que Microsoft comentó en un Security Advisory y se trata básicamente de que un atacante pueda hacer peticiones al servidor web y verificando los mensajes de error que este arroje, descifrar el contenido de algunos archivos que no están expuestos por default por IIS, como el archivo web.config, donde algunos almacenan por ejemplo información de conexión a servidores SQL Server y algunos otros (malamente) también usuarios y passwords.
¿Qué hay que hacer? Afortunadamente Microsoft ha lanzado ya actualizaciones por Windows Update, si no lo has hecho o por alguna razón no lo puedes ejecutar, aquí lo puedes descargar directamente:
Windows Server 2008 R2 and Windows 7 |
|
|
.NET Framework Version |
KB Article |
Patch |
.NET Framework 3.5.1 (Default install) |
||
.NET Framework 4 |
Windows Server 2008 SP2, Windows Vista SP2 |
|
|
.NET Framework Version |
KB Article |
Patch |
.NET Framework 2.0 SP2 (default install) |
||
.NET Framework 4 |
||
.NET Framework 3.5 SP1 |
||
.NET Framework 3.5 |
||
.NET Framework 1.1 SP1 |
*Si se listan varias descargas sobre una versión de .NET (por ejemplo en .NET 3.5 SP1 y .NET 3.5) entonces todos los parches deben ser instalados (sin importar el orden).
Windows Server 2008, Windows Vista SP1 |
|
|
.NET Framework Version |
KB Article |
Patch |
.NET Framework 2.0 SP1 (default install) |
||
.NET Framework 4 |
||
.NET Framework 3.5 SP1 |
||
.NET Framework 2.0 SP2 |
||
.NET Framework 3.5 |
||
.NET Framework 1.1 SP1 |
*Si se listan varias descargas sobre una versión de .NET (por
ejemplo en .NET 3.5 SP1 y .NET 3.5) entonces todos los parches deben ser
instalados (sin importar el orden).
Windows Server 2003 SP2 32-bit |
|
|
.NET Framework Version |
KB Article |
Patch |
.NET Framework 1.1 SP1 (default install) |
||
.NET Framework 4 |
||
.NET Framework 3.5 SP1 |
||
.NET Framework 2.0 SP2 |
||
.NET Framework 3.5 |
*Si se listan varias descargas sobre una versión de .NET (por
ejemplo en .NET 3.5 SP1 y .NET 3.5) entonces todos los parches deben ser
instalados (sin importar el orden).
Windows Server 2003 64-bit |
|
|
.NET Framework Version/SP |
KB Article |
Patch |
Default OS Configuration |
NA |
NA |
.NET Framework 4 |
||
.NET Framework 3.5 SP1 |
||
.NET Framework 2.0 SP2 |
||
.NET Framework 3.5 |
||
.NET Framework 1.1 SP1 |
*Si se listan varias descargas sobre una versión de .NET (por
ejemplo en .NET 3.5 SP1 y .NET 3.5) entonces todos los parches deben ser
instalados (sin importar el orden).
Windows XP SP3 32-bit and 64-bit |
|
|
.NET Framework Version/SP |
KB Article |
Patch |
Default OS Configuration |
NA |
NA |
.NET Framework 4 |
||
.NET Framework 3.5 SP1 |
||
.NET Framework 2.0 SP2 |
||
.NET Framework 3.5 |
||
.NET Framework 1.1 SP1 |
*Si se listan varias descargas sobre una versión de .NET (por
ejemplo en .NET 3.5 SP1 y .NET 3.5) entonces todos los parches deben ser
instalados (sin importar el orden).
Consideraciones
Fue muy hábil el equipo de expertos que descubrió esta vulnerabilidad, y fue una bastante importante pues afectaba todas las versiones de ASP.NET, pero afortunadamente la respuesta de Microsoft fue casi inmediata con la publicación de un workaround que evitaba ser expuestos por esta. Lo más importante es que si mantienes un sitio ASP.NET te asegures no caer en prácticas comunes y poco confiables como dejar los usuarios y contraseñas en texto plano en ningún archivo del sitio web. Velo así, es una carpeta expuesta a la internet para todos, aún con restricciones de IIS ¿dejarías la contraseña de tu coreo electrónico en un archivo .PPTX expuesto? Sólo es cuestión de sentido común.
Con información de los posts de ScottGu:
- ASP.NET Security Vulnerability (detalles sobre la situación)
- ASP.NET Security Update now available (este listado de parches disponibles)
- ASP.NET Security Fix now on Windows Update (detalles para obtener los parches a través de Windows Update)
¿y solo hasta ahora es que se detecta? Bueno.. como dicen.. más vale tarde que nunca (o que después de un ataque masivo a sitios asp.NET) para capturar información desde el querido webconfig
muchachos encripten todo lo que metan en el web.config aun cuando solamente sean direcciones IP de sus servers.