Cosa rende i formati Adobe così vulnerabili? [chiuso]

7

Gli strumenti che trattano SWF, PDF, OTF ... sembrano soffrire di una quantità sproporzionata di vulnerabilità. È una caratteristica dei formati creati da Adobe che li rende più suscettibili di essere danneggiati?

Correlati:

Perché gli exploit di Adobe Flash vengono rilevati così spesso? Nota: non sto chiedendo il perché, piuttosto ciò che è comune a tutte queste tecnologie Adobe.

Che cosa era dietro l'aumento delle vulnerabilità / patch di Adobe Flash Player nel 2015?

    
posta Jedi 01.04.2017 - 16:55
fonte

2 risposte

4

Ci sono molti fattori, ma questi sono alcuni:

  1. Sono file binari non standard. Non basato su XML / JSON / YML / etc, il che significa che ogni sviluppatore di prodotti Adobe deve reinventare i propri parser, che è uno dei compiti più difficili e noiosi per i programmatori.

  2. Questi file sono spesso progettati con un'elaborazione efficiente, con pochi pensieri dati per facilitare la scrittura di un'implementazione sicura. Ad esempio, PDF contiene una tabella xrif, che contiene l'offset di byte che i programmi devono cercare () per trovare le sezioni. Se ciò non è abbastanza grave, questa tabella xref si trova alla fine del file, rendendo necessario il parser PDF per leggere il file alla fine del file. Per aggiungere ancora di più alle complicazioni, ci possono essere più di una di queste tabelle xrif in un singolo file, e alcune voci possono essere inattive o sovrascritte da voci successive.

  3. Il formato binario può contenere informazioni in conflitto. Ad esempio, una sezione PDF può essere specificata in diversi modi: ogni sezione contiene la lunghezza della sezione in numeri ASCII, un indicatore "endobj" e le voci in base alla tabella xrif. Queste informazioni in conflitto indicano che parti diverse del prodotto Adobe e diverse implementazioni possono fare affidamento su diversi modi di interpretare la stessa sezione.

  4. Questi formati di file possono contenere codice eseguibile completo di Turing. Un file PDF può contenere codice Javascript, un file SWF può contenere ActionScript. Come qualsiasi altro linguaggio macro per i documenti (ad esempio VBScript nei file MS Office, JavaScript in HTML), queste lingue complete di Turing sono una fonte di bug propri.

  5. Il tout PDF si presenta come un formato che dovrebbe apparire lo stesso dappertutto, e puoi aprire PDF antico e aspettarti di renderlo uguale nei lettori moderni. Alcuni generatori di PDF antichi hanno prodotto file PDF difettosi, il che si basa su un bug nel vecchio Reader / Acrobat. Piuttosto che riparare il programma e rifiutare questi file difettosi come corrotti, Adobe ha programmato questi hack per mantenere leggibili questi file difettosi. Sfortunatamente, questi hack non sono documentati, quindi rende difficile per altre implementazioni tenere il passo con Adobe su come analizzare esattamente questi documenti non corretti.

  6. I formati hanno una grande quantità di funzionalità che sono tangenziali alla formattazione del documento. Piuttosto che usare livelli separati, ad Adobe piace implementare tutto nelle proprie specifiche di formato. Ad esempio, molti formati di documenti come ODF, DOCX, JAR sono semplici XML / Class o altri metadati in un normale file zip. Il PDF mescola il formato compresso in un flusso di dati regolare, non puoi semplicemente usare un normale decompressore zlib per ottenere PDF non compressi. Stessa cosa con le firme digitali e il controllo della versione.

Adobe continua a guadagnare molti soldi nonostante questi problemi, che è probabilmente la ragione principale per cui non sentono davvero il bisogno di preoccuparsi di cambiare la propria cultura di sviluppatori.

    
risposta data 02.04.2017 - 07:54
fonte
4

Poiché Shockwave / Flash ha utilizzato un bytecode intermedio generato da ActionScript, è il generatore di codice e la libreria trovati nel plugin flash_player che ha una pratica di codifica della sicurezza estremamente scarsa.

Inoltre, il plugin flash_player (insieme al motore Firefox JS, al motore Chrome JS e al nodo) utilizza la generazione di codice eseguibile dinamico durante la lettura di questi bytecode intermedi che continueranno a renderlo vulnerabile per il prossimo futuro prossimo.

Ho imparato tutto questo mentre uso IDA Pro su di esso.

E ha ancora molte "opportunità".

    
risposta data 02.04.2017 - 03:58
fonte

Leggi altre domande sui tag