Quali sono i rischi per la sicurezza forniti dal lettore PDF integrato di Firefox 19 (pdf.js)?

18

Firefox 19 viene fornito con pdf.js come lettore PDF predefinito .

Uno degli obiettivi principali dichiarati è ridurre l'esposizione degli utenti al lettore / plug-in Adobe PDF spesso vulnerabile.

Quindi quali nuovi rischi porta pdf.js?

Un utente malintenzionato che può indurre un utente a sfogliare il proprio PDF dannoso potrebbe anche consentire all'utente di accedere a una pagina Web dannosa. Qualsiasi vulnerabilità nel renderer HTML5 o nell'interprete javascript avrebbe potuto comunque essere sfruttata in questo modo.

    
posta Michael 26.02.2013 - 14:00
fonte

3 risposte

23

In realtà ritengo che gli sviluppatori di Mozilla siano stati abbastanza intelligenti con questo.

Storicamente, la maggior parte degli exploit PDF provengono dal motore di rendering piuttosto che dal lato di analisi. Adobe è stato saggiamente presto per il fatto che la struttura e il contenuto malformati li avrebbero rovinati, e si sono impegnati a fare in modo che il loro motore di analisi fosse solido. Se guardi alcuni dei recenti articoli di 0 giorni per Adobe Reader, vedrai che la maggior parte di essi si basa su bug nel motore di rendering e su alcune delle aree più esotiche della gestione dei contenuti.

Il nuovo motore Firefox PDF prende semplicemente la struttura del PDF e la traduce in una struttura DOM, che può essere resa dal renderer HTML standard del browser e interagita con JavaScript. Ciò rimuove una porzione enorme della superficie di attacco e consente loro di concentrarsi interamente sulla sicurezza del motore di traduzione dei documenti. È probabile che eventuali bug reali sfruttabili dipendono da un errore secondario che potrebbe essere sfruttato comunque con altri mezzi.

Se ci sono exploit, li vedo provenire dalle seguenti aree:

  • Oggetti di terze parti caricati nella pagina, che possono quindi sfruttare un bug Java / Flash / HTML5 / ecc. separato. Probabilmente prevenibile utilizzando una politica di origine del contenuto restrittivo.
  • Ignorare l'escape del contenuto in modo da poter eseguire JavaScript arbitrario nel contesto del PDF. Ancora una volta, il significato di questo è legato alle politiche di origine.
  • Overflow del buffer in qualsiasi codice nativo responsabile della traduzione PDF. Poiché la maggior parte del motore sembra essere basata su JavaScript, non sono sicuro di quanto probabile sia.

Tutto sommato, non penso che porti un maggior rischio per la sicurezza, e una volta passato in giro per alcuni mesi lo considererei un sostituto ideale per i plug-in Adobe PDF, che sono stati un fonte di molti mal di testa.

    
risposta data 26.02.2013 - 14:25
fonte
12

Gli exploit si dividono in due categorie distinte: quelli che infrangono le regole semantiche del linguaggio di implementazione (buffer overflow, use-after-free, cast di tipi non controllati ...) e quelli che giocano "secondo le regole". Dato che il nuovo lettore PDF è scritto in Javascript, gli exploit della prima categoria dovrebbero essere estremamente rari, a causa della protezione intrinseca integrata nella lingua (accessi di array controllati, garbage collection, tipizzazione strong ...). Per ottenere un'esecuzione arbitraria di codice da software Javascript, devi trovare un buco nel motore JavaScript stesso; i buchi nel software scritto in Javascript porteranno "solo" a un'eccezione, cioè a un arresto anomalo del software, il che è sconveniente, ma non tanto quanto vedere la tua macchina dirottata.

Presumibilmente, il motore Javascript di Firefox è stato accuratamente testato, poiché è molto usato.

Gli exploit che riproducono "secondo le regole" includono tutti i metodi per aggirare la Stessa politica di origine e l'abuso di gateway per i locali risorse. Questi non sono resi intrinsecamente più difficili o più facili in virtù del fatto che il lettore PDF sia implementato in Javascript. Tuttavia, fare cose del genere è simile al rendering di contenuti Web in modo sicuro, cosa che è stata per anni l'obiettivo principale di Firefox. Possiamo sperare che implementando il rendering PDF nel browser, saranno in grado di cavalcare il duro lavoro già fatto per proteggere il tuo browser da pagine Web ostili. Almeno, quando si tratta di contenere script PDF in una sandbox appropriata, mi fiderei delle persone che lo hanno fatto per anni (gli sviluppatori di Firefox) più delle persone per le quali questo è solo un elemento di lavoro secondario, distinto dal loro core craft ( gli sviluppatori di Adobe Reader).

Quindi, per sicurezza , questo nuovo lettore sembra davvero abbastanza promettente. Le cose diventano migliori, non peggiori.

    
risposta data 26.02.2013 - 14:52
fonte
3

Gli exploit PDF non stanno sfruttando il formato di file PDF. Invece, stanno sfruttando le vulnerabilità trovate nel lettore PDF.

Se un file PDF contiene un exploit per il lettore di Adobe, l'apertura del file utilizzando pdf.js impedirà il funzionamento dell'exploit. Supponendo che Mozilla stia correggendo regolarmente i bug in pdf.js , ciò può ridurre l'impatto degli exploit PDF.

Come hai detto tu, qualsiasi vulnerabilità trovata in Firefox può essere sfruttata. Questo può essere visto come un mezzo per ridurre la dipendenza da Adobe per gli aggiornamenti di sicurezza.

    
risposta data 26.02.2013 - 14:10
fonte

Leggi altre domande sui tag