Vamos a listar las noticias en orden cronológico, para intentar entender la vulnerabilidad:
- Miercoles 15-Sep, Juliano Rizzo anunciaba a Clarín se iba a presentar una vulnerabilidad de ASP.NET durante la conferencia de seguridad Ekoparty. Nota: Uno de cada cuatro sitios web está expuesto a ciberataques.
- Jueves 16-Sep, El equipo de investigación, Thai Duong and Juliano Rizzo, de la vulnerabilidad pública un video en youtube de como atacar y tomar el control total de un famoso CSM: DotNetNuke. Video: POET vs ASP.NET: DotNetNuke.
- Viernes 17-Sep, El equipo presenta su investigación: Padding Oracles Everywhere, en la conferencia de seguridad Ekoparty.
- Viernes 17-Sep, Microsoft lanza un boletín de seguridad anunciando la vulnerabilidad de ASP.NET. Nota: Microsoft Security Advisory (2416728).
- Viernes 17-Sep, El blog oficial de Microsoft sobre Seguridad, explica los detalles sobre la vulnerabilidad. Nota: Understanding the ASP.NET Vulnerability.
- Viernes 17-Sep, El blog Microsoft Security Response Center (MSRC), da la cara y dice que están trabajando arduamente para parchar el problema. Nota: Security Advisory 2416728 Released.
- Sábado 18-Sep, mientras tu estábas de parranda o recuperandote de la resaca del viernes, el gran ScottGu’s da una respuesta clara de como podemos evitar de alguna forma ser atacados explotando esta vulnerabilidad. Nota: Important: ASP.NET Security Vulnerability.
- Sábado 18-Sep, empezaron los rebotes de esta vulnerabilidad en Geeks.ms: [ASP.NET] Vulnerabilidad de Seguridad (Todas las versiones) y Importante!: Vulnerabilidad de Seguridad detectada en ASP.NET.
- Domingo 19-Sep, el maestro David Salgado intenta describir y enteder la vulnerabilidad para la lengua hispana: El 0 day de asp.net… modo de evitarlo? y referencias.
- Lunes 20-Sep, ScottGu crea una FAQ sobre esta vulnerabilidad: Frequently Asked Questions about the ASP.NET Security Vulnerability.
- Lunes 20-Sep, Wait… SharePoint está construido sobre ASP.NET, Alberto Diaz con una entrada al respecto: SharePoint 2010. Vulnerabilidad 0 days de ASP.NET.
- Lunes 20-Sep, El blog oficial de SharePoint responde a está vulnerabilidad: Security Advisory 2416728 (Vulnerability in ASP.NET) and SharePoint.
Y así estamos…
Si no quieren leer todos los enlaces, el resumen de David Salgado sobre la vulnerabilidad:
En resumen… explota una vulnerabilidad relacionada con el algoritmo de cifrado que se utiliza en la autenticación por Forms. Va probando diferentes entradas y detectando la diferencia de respuesta de la aplicación para aprender y finalmente dar con una clave que da acceso.
Y si no queda claro aún, puede ver el video con la demo completa. Y la solución que se tiene ahora, pasa por evitar “responder” a los intentos de usar esta vulnerabilidad. ¿Cómo?. Evitar que los atacantes obtengan información usando los errores personalizados de ASP.NET (customErrors element, web.config).
La vulnerabilidad y BlogEngine:
No hay una respuesta oficial de BlogEngine, pero podemos hacer lo siguiente (para dormir tranquilos) hasta tener alguna respuesta oficial. Referencia: The Asp.Net Vulnerability and DotNetBlogEngine.Net.
1. Cambiar el elemento customErrors en el archivo web.config:
1: <customErrors mode="RemoteOnly" defaultRedirect="~/error404.aspx" />
2: <error statusCode="404" redirect="error404.aspx" />
3: </customErrors>
Por el siguiente:
1: <customErrors mode="On" redirectMode="ResponseRewrite"
2: defaultRedirect="~/fail.aspx" />
2. Crear la siguiente página ASPX, y subirla a la carpeta root de BlogEngine:
1: <%@ Page Language="C#" AutoEventWireup="true" %>
2: <%@ Import Namespace="System.Security.Cryptography" %>
3: <%@ Import Namespace="System.Threading" %>
4:
5: <script runat="server">
6: void Page_Load() {
7: byte[] delay = new byte[1];
8: RandomNumberGenerator prng = new RNGCryptoServiceProvider();
9:
10: prng.GetBytes(delay);
11: Thread.Sleep((int)delay[0]);
12:
13: IDisposable disposable = prng as IDisposable;
14: if (disposable != null) { disposable.Dispose(); }
15: }
16: < /script>
17: <html>
18: <head runat="server">
19: <title>Error</title>
20: </head>
21: <body>
22: <div>
23: An error occurred while processing your request.
24: </div>
25: </body>
26: </html>
A estar pendientes en estos días, para ver que pasa con esta vulnerabilidad.
Saludos,
[Actualización 24/09/2010] Se actualizo la solución provisoria en el aviso de seguridad Microsoft Security
Buenas, gracias por la info.
Tenes idea si usando forms authentication mediante cookies me afecta tambien esta vulnerabilidad?