domingo, 30 de octubre de 2011

Eludir la prohibición de envío de ejecutables a través de Facebook

El investigador de seguridad Nathan Power ha descubierto un fallo en la subida de ficheros de Facebook que podría permitir el envío de cualquier tipo de fichero a través de los mensajes de la red social.

Facebook, a través de su servicio de mensajes entre sus usuarios, permite el envío de archivos adjuntos. Como es lógico, en ningún caso se permite  que se intercambie un archivo ejecutable, por tanto la plataforma realiza ciertas  comprobaciones sobre el fichero enviado para evitar que se trate de un binario.

Según ha confirmado el investigador, todas las comprobaciones sobre el contenido del mensaje se limitan a analizar la extensión del nombre del fichero indicado. Este dato es enviado dentro de la petición POST en la que se manda el archivo, (concretamente en el atributo filename del multipart/form-data). Al tratarse de una variable bajo el  control del cliente, es fácilmente modificable teniendo acceso al tráfico HTTP justo antes de enviar con cualquier programa, o generando una petición personalizada. Tras varios intentos, el Nathan Power finalmente consiguió evadir el filtro de Facebook, y por tanto enviar el ejecutable, simplemente añadiendo un espacio al final del nombre del fichero. De este comportamiento se extraen varias conclusiones:
  • El módulo, función o software encargado de tratar el nombre del fichero, no realiza un tratamiento adecuado del nombre del fichero. En este caso en concreto, eliminar los espacios al final del nombre del archivo.
  • Para discernir entre un archivo permitido o no, se comprueba la extensión del archivo, y se recurre a una lista negra de extensiones (exe, bat...), en lugar de una lista  blanca.
  • No se realiza comprobación alguna del tipo del contenido real del archivo (por ejemplo los dos primeros bytes).
  • Se comenten errores básicos y antiguos, que ya han solucionado desde hace tiempo otras aplicaciones que han tenido que lidiar mucho con los adjuntos: los clientes de correo.
Facebook fue avisado el día 30 de septiembre,  pero no respondió hasta pasado casi un mes. En el momento de escribir esta noticia, todavía se podían  enviar ejecutables y, como hemos comprobado, al descargar el archivo  el espacio final del fichero desaparece (quizás ya demasiado tarde).

Más información:

Facebook Attach EXE Vulnerability

Javier Rascón
jrascon@hispasec.com

Sergio de los Santos
ssantos@hispasec.com
@ssantosv

No hay comentarios:

Publicar un comentario en la entrada