it-swarm.it

Come visualizzare in sicurezza un PDF dannoso?

Ho un PDF con informazioni importanti che possono contenere malware. Quale sarebbe il modo migliore per visualizzarlo?

43
user11101

Gli exploit basati su documenti non sono diretti al documento stesso, ma piuttosto ad alcune vulnerabilità nel visualizzatore. Se visualizzi il documento in un programma che non è vulnerabile (o in una configurazione che inibisce la vulnerabilità), non verrai sfruttato.

Il vero problema è sapere se il tuo spettatore è vulnerabile o meno, il che di solito significa sapere esattamente quale sia l'exploit. Ma ci sono alternati PDF come foxit o persino il visualizzatore integrato di Google Chrome che non hanno necessariamente le stesse vulnerabilità del visualizzatore ufficiale di Adobe. Questo non è necessariamente vero per tutte le vulnerabilità , quindi è importante capire in anticipo che cosa stai ricevendo.

[~ ~ #] modifica [~ ~ #]
Se ti ritrovi spesso a occuparti di materiali potenzialmente dannosi, sarebbe molto saggio creare un ambiente virtuale rafforzato. Consiglierei l'avvio in un sistema Linux e l'esecuzione del sistema operativo di destinazione (di solito Windows) in Virtualbox o in un ambiente simile. Salvare un'istantanea del sistema operativo virtuale, quindi ripristinarla dopo aver interagito con il contenuto dannoso. Inoltre, non è una cattiva idea eseguire l'ambiente Host Linux da un'installazione di sola lettura (ad es. Live-CD).

31
tylerl

Mettilo attraverso un visualizzatore PDF che non sia vulnerabile all'exploit. Se è lo spettatore di qualcun altro, è ancora più sicuro. Prova Google Docs , dove lo analizzeranno e visualizzarlo come HTML, in modo che il payload dannoso non ti danneggi. (Sono sicuro che il loro parser PDF parser è estremamente sicuro, quindi non dovresti sentirti male nel poterli eventualmente infettare. )

18
B-Con

Usa pdf.js con un browser sandbox (come Chromium) in una macchina virtuale senza accesso alla rete.

Dovrebbe essere abbastanza complicato per far uscire un malware.

7
ysdx

In questa situazione ho sempre usato il comando "stringhe" della shell Unix/Linux/OSX. Sui sistemi * nix, procedere come segue:

strings ScaryFile.pdf | less

Puoi anche ottenere "stringhe" per Windows, come indicato da Polynomial, di seguito. Puoi scaricarlo qui . Funziona su XP o superiore. Ecco un esempio di utilizzo su Windows:

strings ScaryFile | findstr /i TextToSearchFor

Ma per il resto della mia risposta qui presumo che tu sia su * nix, poiché questa è la mia esperienza con le stringhe. Supponendo che tutto ciò che stai cercando sia il contenuto del testo (non bitmap o grafica vettoriale), puoi scorrere verso il basso o cercare e trovare i bit del testo che ti servono. Sfortunatamente, per trovarlo devi guadare tonnellate di metadati, la maggior parte dei quali è in XML, e formattare le impostazioni in qualche altro markup, oltre ad alcuni binari (come ASCII, non byte grezzi). Quindi potresti voler usare le capacità di ricerca del comando "less". Per cercare nel documento la stringa con distinzione tra maiuscole e minuscole "thingyouwant", usa il tasto barra + la stringa + return:

/thingyouwant

Quindi premi il tasto "n" per vedere la prossima istanza di "thingyouwant", ancora e ancora fino a trovare quello che vuoi. Puoi usare il "?" chiave per fare la stessa cosa verso l'alto. Vedi la pagina man di meno (digita "man less") per più magia.

Puoi anche analizzare cose come gli URL a cui il documento collega:

strings ScaryFile.pdf| grep -i "http" | sort | uniq | less

Ma, come detto sopra, il 99% di ciò che vedrai dall'output di "stringhe" sarà costituito da metadati e impostazioni di formattazione.

6
Luke Sheppard

Utilizzare una macchina virtuale che può essere ripristinata per pulire l'ardesia dopo i test. Se il lettore PDF è vulnerabile, la tua workstation reale avrà molte meno probabilità di essere colpita.

6
user65388

Un modo semplice e diretto per aprire PDF potenzialmente dannosi su un computer Windows è usare Sumatra PDF visualizzatore. Sumatra è un piccolo, leggero PDF che non ha alcun supporto per moduli interattivi compilabili o javascript in PDF.

Sumatra ha anche opzioni di configurazione per bloccarlo ulteriormente , come prevenire il file system o l'accesso a Internet.

Il PDF ha molte funzionalità interattive intese a rendere il formato più utile, ma che creano significativi rischi per la sicurezza, tra cui: - L'uso di JavaScript per fornire contenuto interattivo , che consente l'automazione dell'interfaccia utente - La capacità di interagire con il localefile system - la capacità di inviare una richiesta HTTP a un server remoto - la capacità di trasportare un payload di allegati di file arbitrari, incluso malware - la capacità di presentare all'utente un modulo compilabile , quindi catturare e agire sulle informazioni compilate Queste abilità combinate insieme formano un potente toolkit per un aggressore. Molti cosiddetti attacchi "download drive-by" si basano sull'uso di PDF.

Comune PDF tentano di fornire sicurezza per queste funzionalità creando ambienti sandbox o fornendo suggerimenti all'utente, ma queste soluzioni sono entrambe più complesse (e quindi soggette alle proprie vulnerabilità) e meno compatibili con altre prodotti delle parti rispetto alla soluzione più semplice di lasciare semplicemente fuori quella funzionalità.

Sumatra è un esempio di un PDF che non fornisce molte delle funzioni più comunemente utilizzate in PDF. Eliminando completamente intere categorie di potenziale attacchi, tali programmi riducono notevolmente il rischio di visualizzare unknown PDF.

Un ulteriore vantaggio dell'utilizzo di un visualizzatore meno popolare è che, essendo sia meno comune che meno potente, è un obiettivo meno interessante.

Il visualizzatore di Sumatra potrebbe essere sfruttato da un PDF appositamente predisposto che sfrutta alcuni bug sconosciuti per causare un overflow del buffer, ad esempio. Tali casi sono rari tuttavia, e non ci sono stati significativi exploit di sicurezza per Sumatra negli ultimi anni.

4
barbecue

Le ultime versioni di Adobe Reader (versione 10.1 e successive) supportano "Modalità protetta" o sandboxing che può essere utilizzato per visualizzare file non attendibili PDF. Ciò limita efficacemente l'accesso di il processo che visualizza il PDF in %appdata%\Adobe\Acrobat e altri PDF aperti esplicitamente dall'utente.

La modalità protetta deve essere attivata andando nel menu Modifica-> Preferenze e selezionando la scheda Generale o Sicurezza, a seconda della versione:

enter image description here

Ovviamente, ti consigliamo di chiudere tutti i PDF sensibili come i tuoi estratti conto prima di aprire quello non attendibile.

2
Dmitry Grigoryev

Un'altra opzione facile e che richiede meno tempo è quella di aprirla nell'app Sandboxie, che lo isolerebbe.

1
Lee

Possiamo dire TUTTO l'attacco in natura o mirato usando dannoso PDF è coperto da tecniche di offuscamento per rafforzare il processo di analisi o rilevamento.

La maggior parte della tecnica di offuscamento utilizza principalmente l'offuscamento JavaScript come eval (), String.fromCharCode (), argument.callee (), base64 e persino con PDF valori chiave come/Author,/Parole chiave,/Data di creazione e così via.

Potremmo non essere in grado di visualizzare il contenuto del file dannoso PDF (quelli all'interno del flusso di oggetti PDF) poiché potrebbero essere sgonfiati comunemente con FlateDecode. Ma ci sono strumenti disponibili per permetterci di gonfiare il contenuto all'interno del flusso degli oggetti PDF, come pdf-parser (http://blog.didierstevens.com/programs/pdf-tools/) e FileInsight ( http://www.McAfee.com/us/downloads/free-tools/fileinsight.aspx) La maggior parte del codice JavaScript offuscato si trova all'interno del flusso inflated PDF stream.

Possiamo consigliarti di ottenere l'ultima versione patchata di PDF con funzionalità JavaScript disattivata per aprire il file, ma la buona soluzione è quella di ottenere una macchina virtuale dove puoi eliminarla o ripristinare l'istantanea dopo aver aperto il file.

1
d3t0n4t0r

Puoi aprire il PDF in un contenitore. Ecco un'immagine docker che puoi usare: https://hub.docker.com/r/chrisdaish/acroread/

MY_PDF_DIR='/tmp/foobar'
docker pull chrisdaish/acroread
docker run  -v $MY_PDF_DIR:/home/acroread/Documents:rw \
        -v /tmp/.X11-unix:/tmp/.X11-unix \
        -e uid=$(id -u) \
        -e gid=$(id -g) \
        -e DISPLAY=unix$DISPLAY \
        --name acroread \
        chrisdaish/acroread

Si aprirà un Acrobat Reader che verrà visualizzato tramite il server X locale.

L'approccio riduce la superficie di attacco, ma non è sicuro al 100% in quanto ha accesso al tuo server X.

1
Valer

È possibile utilizzare una combinazione visualizzatore/SO meno popolare. Immagino che nessuno abbia come target Okular in esecuzione su FreeBSD (anche se può ancora essere vulnerabile), quindi se apri il file in un VM dovresti essere molto sicuro.

Per danneggiare il payload canaglia deve corrispondere alla versione del visualizzatore e ovviamente al sistema operativo e all'architettura della CPU. È davvero roba di assemblaggio e memoria di basso livello (il payload prevede di essere collocato in un determinato indirizzo di memoria e si aspetta che siano disponibili alcune funzioni di sistema standard). Se si modifica uno di questi, il payload potrebbe non essere eseguito correttamente (o il visualizzatore potrebbe semplicemente arrestarsi in modo anomalo senza causare danni).

0
filo