El 0 day de asp.net… modo de evitarlo? y referencias

Buenas…

En la ekoparty de Argentina, Juliano Rizzo y Thai Duong, mostraron un 0 day sobre ASP.NET. A quitarse el sombrero.. donde hay talento lo hay… pero.. hay un pero y muy gordo. Me parece aberrante su decisión de hacerlo público en una conferencia sin avisar a la empresa en cuestión previamente y más el entregar algunos pen drives con el código fuente del exploit.

Volviendo al asunto… un 0 day es una vulnerabilidad nueva, nadie teóricamente sabe que existe y no se puede estar preparado para ella.

He estado leyendo bastante sobre cuál es la parte vulnerable y como se explota. Pero por ahora no hay demasiada documentación de este caso en concreto y mucho son conjeturas de expertos en seguridad y expertos en .NET

Por si os interesa leer sobre ello, personalmente las mejores lecturas que he encontrado sobre el tema son:

http://www.reddit.com/r/programming/comments/dfhnz/think_the_aspnet_padding_oracle_exploit_is_no_big/  (Importante leer los comentarios)

http://threatpost.com/en_us/blogs/new-crypto-attack-affects-millions-aspnet-apps-091310?page=1

http://visualstudiomagazine.com/articles/2010/09/14/aspnet-security-hack.aspx

http://usenix.org/events/woot10/tech/full_papers/Rizzo.pdf

Y la respuesta de MS a día 19/09

http://weblogs.asp.net/scottgu/archive/2010/09/18/important-asp-net-security-vulnerability.aspx

Hay que mirarlo con un poco de ojo crítico… muchas personas opinan sin saber, muchos intentan hacer astillas solo por ser Microsoft, etcétera… no le quito importancia en absoluto. Pero permanezco cauto hasta que encuentre un documento o el código fuente o algo más que opiniones e hilos de discusión.

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.

Hay muchas teorías de que: Habilita Custom errors ya una misma página y ya está… ó  eso pasa por no usar SSL ó que cambies de AES a 3DES ó que si tienes una red mínimamente securizada, va a parecer un DoS y se va a bloquear la IP…  personalmente aún no tengo una opinión 100% formada.

Pero teniendo en cuenta que es un ataque Padding Oracle… se basa en aprender y recabar información en base a respuestas diferentes resultado de peticiones mal formadas. De modo que la recomendación que hace MS Corporación a través del blog de Scottgu, me parece más que razonable… misma página de error para todo, no demos pistas de nada hasta que esto se aclare un poco más y veamos dónde hay que tocar para arreglarlo.

Happy hacking!

~ds

PD –> Las actividades que más me han gustado y atraido de nuestro mundillo son las de la seguridad y el análisis postmortem. De hecho los ratos más satisfactorios desde que tengo un PC siempre los recuerdo en esos ámbitos :)  En seguridad tenía la necesidad de tener que estar siempre al día de todo, tBBDD, fwrks, desarrollo, SO… y además algo de picardía para buscar huecos o hacer algo de ingeniería social. En análisis postmortem tienes que tener muy bien unidos todos los puntos para entender qué esta pasando. Conocer de verdad lo que tienes delante, pq el problema está ahi y sólo dependes de tu capacidad para encontrarlo. Ambas disciplinas me aportaron las mismas sensaciones… la realización cuando das en el clavo y encuentras el hueco, cuando funciona el rootkit o encuentras el problema en el dump.

Ese es el momento álgido y no otro. El momento en el que lo logras. Sonries porque eres un crack, avisas a quién ha hecho el juguete defectuoso y te vas a tomar algo con el resto de geeks con los que currabas en esto.  Personalmente dudo que tirar 4 pendrives en una charla, cargarte el fin de semana de muchos admins/developers, dejar daños colaterales a algunos usuarios y ser el chulo de la conferencia cause el mismo subidón que haberlo logrado. IMHO estas acciónes muestran una absoluta falta de ética.

Publicado por

7 comentarios sobre “El 0 day de asp.net… modo de evitarlo? y referencias”

  1. Buen artículo,

    No estoy muy metido en este mundillo de la seguridad, pero lo sigo bastante y si algo he podido ver, es que hay demasiada gente que lo único que busca es la gloria y las alabanzas…

    Lo de hacerlo público en la conferencia sin avisar bueno, puedo tragarlo aunque no lo comparto, pero lo de repartir pendrives con el exploit… deleznable :-/

  2. Gente, porque veo que hay opinion sin saber 100% la info (seria bueno que aclares esto que te voy a comentar).

    Primero Microsoft estaba al tanto del problema (se le habia reportado). Segundo la tecnica que probaron los researchers contra ASP NET es algo que se conoce desde el 2002 para escenarios menos favorables como sesiones SSH (solo que nadie se habia puesto a probarlo en ese tipo de entorno)

    Es cierto que dieron 2 copias en pendrives y se arrojaron al publico. Ahora la realidad es que en los mismos no esta el fuente disponible en forma directa. Hay que hacer reverse engineering y resolver varios problemas que los researchers pusieron, para que no sea solo «descomprimir y usar». Suponiendo que quienes se hicieron de esas copias resuelvan todos esos problemas y puedan acceder al codigo, por el tipo de informacion, quedense tranquilos que va a pasar un rato hasta que pulule por la red.

  3. @J Gracias por el comentario. Como he dicho en el post, hay mucha incertidumbre en torno al tema y lo mejor es tener criterio y cuidado. Sobre que MS lo sabe… dudo que lo supiesen y lo dejasen sin corregir. Una cosa es la aplicación teódica del Padding oracle y otra es saber que afecta…
    Y sobre el hecho de que den dos ejecutables o dos fuentes, creoque es indiferente.. y más en ese foro donde tienes gente que desensambla con los ojos cerrados 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *