Analisi PDF dannoso

15

Ho analizzato un PDF . Sospetto che contenga contenuti dannosi. Per la maggior parte, mi sono sempre fidato degli strumenti automatici per determinare se un PDF poteva essere aperto in sicurezza. Tuttavia, i miei occhi sono stati aperti a tutte le tecniche di crittografia e offuscamento in oggi selvaggio. Quindi ho iniziato a rivedere i miei PDF manualmente utilizzando strumenti come questi e PDFStreamDumper . Ho esaminato le specifiche PDF che si trovano qui .

Ovunque guardi, nessuno sembra spiegare lo scopo delle direttive /<Abbreviation> . Ad esempio, l'estratto trovato nell'intestazione.

Non riesco a trovare i riferimenti /JT . Oppure perché /GoTo non specifica una posizione.

Il secondo oggetto specifica /Cn e /V ma non riesco a trovarli neanche.

Il terzo oggetto /Dt e /JTM , non hanno riferimenti nella specifica PDF. Qualcuno può darmi qualche indicazione. Sono disposto a fare la ricerca ma non sono sicuro di cosa sto guardando oltre ai comandi abbreviati contenuti in un oggetto. C'è un foglio di trucchi con queste direttive elencate e il loro scopo?

Intestazione

<<

    /JT 2 0 R
    /OpenAction 
    <<

        /D [ 9 0 R /Fit ]
        /S /GoTo

    >>

    /Outlines 8683 0 R
    /PageLabels 8875 0 R
    /PageLayout /SinglePage
    /PageMode /UseOutlines
    /Pages 5437 0 R
    /Type /Catalog
>>

Secondo oggetto

<<

    /A [ 3 0 R ]
    /Cn [ 4 0 R ]
    /V 1.1
>>

Terzo oggetto

<<

    /Dt (D:20101223094432)
    /JTM (Distiller)
>>

Nota: ho eseguito il file tramite Total virus con solo alcune bandiere rosse. Il pdf conforme alle specifiche 1.7.

    
posta Ccorock 10.11.2014 - 20:20
fonte

1 risposta

2

Questo link è per strumenti di sviluppo compatibili con PDF: link In particolare, il riferimento a 1.7 che DarkLighting menziona è: link

La sezione 3.2.4 del documento sembra rispondere alla tua domanda:

   3.2.4Name Objects
   A name object is an atomic symbol uniquely defined by a sequence of characters.
Uniquely defined means that any two name objects made up of the same sequence of characters 
are identically the same object. Atomic means that a name has no internal structure;
although it is defined by a sequence of characters, those characters are not considered 
elements of the name.

        A slash character (/) introduces a name. The slash is not part of the name but is 
a prefix indicating that the following sequence of characters constitutes a name. 
There can be no white-space characters between the slash and the first character in 
the name. The name may include any regular characters, but not delimiter or white-space 
characters (see Section 3.1, “Lexical Conventions”). Uppercase and lowercase letters are 
considered distinct: /A and /a are different names. The following examples are valid 
literal names:
    /Name1
    /ASomewhatLongerName
    /A;Name_With−Various***Characters?
    /1 . 2
    /$$
    /@pattern
    /. notdef

Quindi sembrerebbe che / JT / Cn / V e così via siano oggetti con nome all'interno di un oggetto dizionario PDF (identificato da parentesi angolate doppie < < ... > >). Nei tuoi esempi, tutti questi elementi "non identificati" sono contenuti all'interno degli oggetti del dizionario. Vedi la sezione 3.2.6 per una descrizione più dettagliata di questo elemento.

È anche immaginabile che queste siano parte delle opzioni di estensibilità del PDF descritte in 2.2.8:

Additionally, PDF provides means for applications to store their own private 
information in a PDF file. This information can be recovered when the file is 
imported by the same application, but it is ignored by other applications. 
Therefore, PDF can serve as an application’s native file format while its 
documents can be viewed and printed by other applications. Application-specific 
data can be stored either as marked content annotating the graphics objects in 
a PDF content stream or as entirely separate objects unconnected with the PDF content.

Fondamentalmente, è difficile dire quali sono tutti i vari oggetti non standard definiti senza passare per ognuno di essi e decodificarli (tramite uno strumento di automazione sviluppato autonomamente o manualmente).

Non concordo con DarkLighting riguardo al commento di / GoTo. I renderizzatori di PDF dovrebbero leggere l'intero contenuto del dizionario prima di intraprendere qualsiasi azione. Le specifiche PDF non indicano che l'ordine è importante - solo che sia " / S / GoTo " e " / D < [qualche tipo di destinazione] >" sono dichiarati Nel tuo esempio dice vai a Pagina 9, Posizione 0.

    
risposta data 03.12.2014 - 00:18
fonte

Leggi altre domande sui tag