SharePoint 2010. Vulnerabilidad 0 days de ASP.NET

Parece que han saltado las alarmas en Microsoft. Unos Argentinos han mostrado una vulnerabilidad de ASP.NET en la ekoparty que afecta a las aplicaciones web ASP.NET. David Salgado no ha tardado en publicar un artículo sobre él y debemos de tenerlo muy en cuenta.

En el blog de ScottGu también se ha publicado un artículo sobre la vulnerabilidad y unas recomendaciones para asegurar nuestras aplicaciones.

La recomendación de Scott pasa por habilitar los errores personalizados, en nuestras aplicaciones, con un default redirect y sin especificar páginas personalizadas los códigos de error que se puedan producir y añadir un código de ofuscación a la carga de la página que utilicemos para mostrar el error.

También tenemos un script, en el artículo de Scott, que nos permite conocer que aplicaciones se pueden ver afectadas en un servidor web.

Este script es que he utilizado para revisar unos servidores SharePoint que tenemos a mano y me he llevado alguna que otra sorpresa. SharePoint utiliza la etiqueta para las páginas personalizadas de error pero no especifica cuál es la página de error por defecto.

<customErrors mode="On"/>

Tenemos un problema. Hay que modificar los web.config de las aplicaciones web de SharePoint para que incluyan una página de error por defecto. Si esto lo aplicamos a una granja de 1 o 2 servidores, la tarea es sencilla, pero cuando estamos hablando de varios frontales web, se complica ya que tenemos que ir uno por uno modificando los web.config de cada una de las aplicaciones web de SharePoint para que tengan la configuración ideal.

Lo ideal sería tener un script o una característica que realice los cambios en el web.config de todos los servidores de nuestra granja. Si optamos por la opción mas limpia y elegante, nos crearemos una característica con Visual Studio y añadimos en el evento de activación de la característica FeatureActivated el código siguiente que modifica el web.config y se asegura de que las modificaciones se repliquen a todos los servidores de  nuestra granja.

public override void FeatureActivated(SPFeatureReceiverProperties properties)

{

    SPSite site = properties.Feature.Parent as SPSite;

    SPWebApplication app = site.WebApplication;

 

    if (app != null)

    {

        //Añadimos el mode ON en el web.config

        SPWebConfigModification mod = new SPWebConfigModification("mode", "configuration/system.web/customErrors");

        mod.Sequence = 0;

        mod.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureAttribute;

        mod.Value = "On";

        app.WebConfigModifications.Add(mod);

 

        //Añadimos el defaultRedirect

        SPWebConfigModification mod2 = new SPWebConfigModification("defaultRedirect", "configuration/system.web/customErrors");

        mod2.Sequence = 0;

        mod2.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureAttribute;

        mod2.Value = "/_layouts/error.aspx";

        app.WebConfigModifications.Add(mod2);

 

        app.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();

        app.Update(true);

    }

}

Habrá que estar pendiente de esta vulnerabilidad a la espera de que salga un parche y de confirmar que con este método es más que suficiente para estar seguros.

 

Saludos a todos…

5 comentarios sobre “SharePoint 2010. Vulnerabilidad 0 days de ASP.NET”

Deja un comentario

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