Simplificando las Cabeceras HTTP de Seguridad con la Gestión de Tráfico edgeNEXUS: X-Content-Type-Options

flightpath http header in action

 

Algo que aparece con frecuencia en esas pruebas de penetración de seguridad que todos tenemos que soportar (desgraciadamente, por una buena razón) es la falta o incoherencia a la hora de proporcionar la cabecera HTTP X-Content-Type-Options en las respuestas del servidor web. Esto puede resultar irritante, pero cuanto más seguro sea nuestro sitio y sus visitantes, mejor.

¿Para qué sirve esta cabecera? Es sencillo; Chrome e Internet Explorer tienen una función llamada “MIME-Sniffing” que está activada por defecto y detecta el tipo de contenido que se encuentra en la respuesta de un servidor web. Esto se utiliza para mostrar mejor una página web, incluso si el servidor web se equivoca en algo, o una página está mal escrita y ha especificado un tipo de contenido incorrecto.

Por ejemplo, un sitio puede enviar una respuesta indicando que el contenido incluido es texto, mediante la cabecera Content-Type y un valor de text/plain. El navegador detectará que en realidad es un PDF y lo mostrará correctamente. De lo contrario, podría intentar mostrarlo como texto, lo que daría como resultado una página ilegible. Para algunos desarrolladores de navegadores, esa página bonita es mejor que cumplir las normas.

¿No suena demasiado mal? Bueno, cualquier software que puedas emplear en tu navegador para impedir la descarga, visualización o ejecución de determinados tipos de contenido puede ser potencialmente eludido mediante esta función. Hay muchas razones por las que podemos querer bloquear ejecutables, archivos zip, archivos Word y similares. En Windows todavía es posible “poseer” un PC con sólo una imagen GIF.

Cualquier software que utilicemos para protegernos de estas amenazas bloqueando este contenido sólo puede inspeccionar el valor de la cabecera Content-Type y actuar adecuadamente en función de su valor. Que el navegador haga algo completamente distinto de lo que cabría esperar no es útil y supone un riesgo.

Lo bueno de utilizar un equilibrador de carga es que sólo tenemos que hacerlo en un único lugar para desplegarlo en todos nuestros servidores. No necesitamos depender de desarrolladores ni de reconfiguraciones de Apache. En el equilibrador de carga edgeNEXUS sólo tenemos que importar una plantilla de configuración jetPACK y asignar una regla de tráfico flightPATH al Servicio o Servicios Virtuales que deseemos proteger.

La regla sólo añade la cabecera si no existe, por lo que funcionará incluso cuando nuestros servidores web ya la inserten o sólo la inserten para páginas concretas. Esta regla debería formar parte de tu configuración estándar del Servicio Virtual: no tienes nada que perder sea cual sea el sitio aunque, por supuesto, siempre se recomienda hacer pruebas. Puedes descargar el jetPACK en el sitio Github de edgeNEXUS aquí.

Esta es una de las muchas reglas flightPATH que hemos desarrollado, y que puedes implementar para mejorar la seguridad de tu sitio y de sus usuarios. Para saber más sobre las cabeceras HTTP relacionadas con la seguridad, consulta estos artículos:

 

Lo bueno de utilizar un equilibrador de carga es que sólo tenemos que hacerlo en un único lugar para desplegarlo en todos nuestros servidores. No necesitamos depender de desarrolladores ni de reconfiguraciones de Apache.

About Donna Toomey