Los navegadores web son programas clave para navegador por Internet, y cuanto más protegidos estén, mejor será para el usuario final. Tanto Chrome como Firefox añaden constantemente mejoras de seguridad, además de arreglar posibles fallos o vulnerabilidades que puedan poner en peligro nuestra navegación.
Una función de seguridad muy importante que ha añadido Firefox en su versión 50 es la protección ante ataques de confusión de MIME (content sniffing). Este tipo de ataques suelen ser realizados con imágenes, y consisten en que un atacante puede ‘disfrazar’ código malicioso, y darle la apariencia de ser otros archivos.
Cuando un navegador web recibe un archivo de un servidor, éste recibe una respuesta del servidor para ver el Content-Type header, o el encabezado del archivo, el cual le dice al navegador qué tipo de archivo estamos descargando, ya sea una imagen o un archivo de texto, escrito por ejemplo como ‘image/jpeg’, ‘text/html’ o ‘application/pdf’.
Esto en un mundo donde todos los servidores estén correctamente configurados sería perfecto, pero por desgracia no es así. En algunas ocasiones, la respuesta que recibe el navegador al preguntar por el tipo de archivo es incorrecta, o incluso directamente no recibe ninguna.
En estos casos, el navegador usa una técnica conocida como MIME sniffing, con el fin de detectar cuál es el tipo de archivo que está descargando. Para ello, analiza los primeros bytes de un archivo, o también analiza el contexto del archivo. Si tiene un tag IMG, el archivo probablemente será una imagen, enviándola al programa que tengamos diseñado para abrir ese contenido.
Ataques de confusión de MIME
El problema de este sistema es que queda expuestos a ataques de confusión de MIME en servidores que no están correctamente configurados, o aquellos que no tienen este tipo de opciones habilitadas.
Un ataque de este tipo ocurre cuando un atacante cambia la extensión del archivo y altera la primera parte de un archivo JavaScript, haciendo entender al servidor y al navegador que el archivo se trata de una imagen. Cuando se descarga la imagen en el ordenador de destino, se pueden ejecutar códigos maliciosos XSS o CSRF.
Reglas para prevenirlo
Mozilla era consciente de ello, y ha puesto una solución en Firefox 50. Para ello, utilizará un método estricto de carga de contexto (o context load). Si el archivo no es lo que el navegador detecta, Firefox no lo descargará.
Esto no protege en su totalidad de los ataques, pero disminuye muy significativamente la posibilidad de que alguien tome un servidor mal configurado y modifique la cabecera de los archivos.
Quizá te interese…
Mozilla comienza a añadir soporte para WebP en Firefox
El plan de Mozilla para que tengamos Firefox de 64 bit en Windows
Firefox 49 guardará automáticamente las contraseñas de los sitios HTTP para cuando accedas con HTTPS