Frage:
Wie kann ich ein schädliches PDF sicher anzeigen?
user11101
2012-08-19 22:02:53 UTC
view on stackexchange narkive permalink

Ich habe ein PDF mit wichtigen Informationen, die möglicherweise Malware enthalten. Was wäre der beste Weg, um es anzuzeigen?

Ist es von JS Art? Ich denke, Sie können JS ausschalten.
Ich würde es in einer virtuellen Maschine ohne Netzwerkzugriff öffnen.
Hier kann sich die Frage stellen, ob eine statische oder dynamische Analyse am effektivsten ist.
Wenn eine PDF-Datei schädliche Software enthält, sollte sie nicht mehr angezeigt werden. Außerdem gibt es wahrscheinlich nicht einmal nicht böswillige Inhalte. Sie können die PDF-Datei auch in einer virtuellen Linux-Maschine öffnen, aber wie gesagt, der Inhalt ist wahrscheinlich nicht mehr vorhanden.
@curiousguy - ok. Ich weiß das nicht Warum hat jemand legalen JS-Code in einer PDF-Datei ODER Was kann eine Nicht-JS-PDF-Datei nicht?
Öffnen Sie es ... aber nicht in einer alten Version von Adobe Reader usw., die bekannte Schwachstellen aufweist.Der sicherste Weg ist in einer VM, aber das bedeutet nicht, dass es sicher ist, wenn Sie nichts finden und es auf Ihrem normalen Computer öffnen.
Elf antworten:
#1
+33
tylerl
2012-08-19 22:45:56 UTC
view on stackexchange narkive permalink

Dokumentbasierte Exploits richten sich nicht auf das Dokument selbst, sondern auf eine Sicherheitslücke im Viewer. Wenn Sie das Dokument in einem Programm anzeigen, das nicht anfällig ist (oder in einer Konfiguration, die die Sicherheitsanfälligkeit verhindert), werden Sie nicht ausgenutzt.

Das eigentliche Problem besteht darin, zu wissen, ob Ihr Viewer dies ist oder nicht anfällig, was normalerweise bedeutet, genau zu wissen, was der Exploit ist. Es gibt jedoch alternative PDF-Viewer wie Foxit oder sogar den in Google Chrome integrierten Viewer, die nicht unbedingt die gleichen Sicherheitslücken aufweisen wie der offizielle Viewer von Adobe. Dies gilt nicht unbedingt für alle Schwachstellen. Daher ist es wichtig zu verstehen, worauf Sie sich im Voraus einlassen.

BEARBEITEN
Wenn Sie häufig mit potenziell schädlichen Materialien zu tun haben, ist es sehr ratsam, eine gehärtete virtuelle Umgebung einzurichten. Ich würde empfehlen, ein Linux-System zu starten und Ihr Zielbetriebssystem (normalerweise Windows) in Virtualbox oder einer ähnlichen Umgebung auszuführen. Speichern Sie einen Snapshot des virtuellen Betriebssystems und kehren Sie dann zu diesem Snapshot zurück, nachdem Sie mit der Interaktion mit dem schädlichen Inhalt fertig sind. Es ist auch keine schlechte Idee, die Linux-Hostumgebung von einer schreibgeschützten Installation (d. H. Live-CD) aus auszuführen.

Die Hauptanfälligkeit in Adobe (die ich nicht verwende) ist die Verwendung von Javascript, um eine unsichere undokumentierte API aufzurufen, auf der Shellcode ausgeführt wird. Ich habe Origami verwendet, um zu entschlüsseln und zu dekomporieren, und pdfid, um zu überprüfen, ob es Javascript-Trigger hat (was es nicht tut) ... aber ich denke, das ist nicht einmal für jemanden von Bedeutung, der Adobe Viewer nicht verwendet.
Ein einigermaßen einfaches Setup wäre eine VM + [Sandboxie] (http://www.sandboxie.com/) + [DigiSigner] (http://en.wikipedia.org/wiki/DigiSigner)
Ich benutze weder Foxit noch Adobe. Ich benutze einen obskuren Leser. Vor kurzem stürzte es ab, als ich eine PDF-Datei öffnete. Kann dies ein Malware-Angriff sein? Wie überprüfe ich?
Hinweis zur Bearbeitung - Die meisten modernen Linux-Systeme verfügen über mehrere native PDF-Viewer (einschließlich einer alten Version von Adobe Reader, normalerweise müssen Sie sich nicht darum kümmern - ich schlage vor, Okular zu verwenden, und die meisten Versionen von evince und mupdf funktionieren hervorragend als Nun), Sie müssen keine Windows-VM verwenden.
@FirstNameLastName ist es leid, weniger bekannte Produkte zu verwenden, um Infektionen zu vermeiden.1: Das Produkt verwendet möglicherweise eine gemeinsame Bibliothek und kann unwissentlich aktiv genutzt werden. 2: Es wird möglicherweise nicht so oft oder so schnell gepatcht wie mehr Mainstream-Produkte.Gehärtete VM ist wirklich der einzige Weg, um sicher zu sein.
#2
+20
B-Con
2012-08-20 01:22:45 UTC
view on stackexchange narkive permalink

Stellen Sie es in einen PDF-Viewer, der für den Exploit nicht anfällig ist. Wenn es der Betrachter eines anderen ist, ist das noch sicherer. Versuchen Sie Google Text & Tabellen, wo sie es analysieren und als HTML anzeigen, damit die böswillige Nutzlast Ihnen keinen Schaden zufügt. (Ich bin sicher, dass der PDF-Parser äußerst sicher ist, sodass Sie sich nicht schlecht fühlen sollten, wenn Sie sie möglicherweise infizieren.)

Ich möchte die Informationen im PDF nicht an Google weitergeben, aber danke.
Die Verwendung von Google Text & Tabellen ist ein guter Rat, aber "Über einen PDF-Viewer, der nicht für den Exploit anfällig ist" klingt für meine Ohren seltsam.Normalerweise wissen Sie nicht, ob ein bestimmter Betrachter anfällig ist, bis es zu spät ist.
@DmitryGrigoryev Wenn der Exploit wie fast alle von Javascript abhängt, macht ein Viewer, der Javascript nicht unterstützt, diesen Exploit unmöglich.Ein Exploit, der von Dateianhängen abhängt, wird von einem Viewer, der keine Anhänge unterstützt, unmöglich gemacht.Ein Exploit, der vom Abrufen von Daten von einer URL abhängt, kann nicht funktionieren, wenn der Viewer das Abrufen von Daten von einer URL nicht unterstützt.Und so weiter.
@barbecue Wenn es gut genug ist, "fast alle" Exploits zu vermeiden, sollte man sich auf jeden Fall an einen PDF-Viewer ohne JS-Unterstützung halten.
@DmitryGrigoryev Ich bin mir nicht sicher, worum es Ihnen geht.Ein Exploit, der speziell auf die Arbeit mit Sumatra abzielt, ist möglich, wie ich in meiner Antwort angegeben habe.Ihre Wahrscheinlichkeit ist außerordentlich gering.Wenn Sie behaupten, dass es eine Möglichkeit gibt, 100% aller Exploits zu eliminieren, liegen Sie einfach falsch.Es gibt keine solche Methode.
@barbecue "Wenn Sie behaupten, dass es eine Möglichkeit gibt, 100% aller Exploits zu eliminieren, liegen Sie einfach falsch."- Ich behaupte nicht, dass B-Con vorschlägt, "einen PDF-Viewer zu verwenden, der für den Exploit nicht anfällig ist".Wenn Sie sich nicht sicher sind, worum es mir geht, können Sie B-Con einfach antworten lassen.
@barbecue: Der Ausdruck "ist nicht anfällig für den Exploit" ist ein beiläufiger Begriff und der Kontext der Frage ist wichtig.Trotz der Tatsache, dass es keine 100% narrensicheren Methoden gibt, um Malware zu vereiteln, finden wir in der Praxis Wege, um Malware zu umgehen.Ich empfehle dem OP, die wahrgenommene Bedrohung zu analysieren und sie einem PDF-Parser zu unterziehen, der wahrscheinlich nicht anfällig ist.Ein PDF-Parser eines Drittanbieters überträgt den größten Teil des Risikos auf einen Drittanbieter, und das Risiko dieses Drittanbieters ist wahrscheinlich gering, da er wahrscheinlich für die Behandlung von Malware-Fällen entwickelt wurde.
@B-Con Ich denke, wir sind uns völlig einig.Fast alle PDF-Exploits hängen von der Ausführung bösartiger Skripte ab.Wenn Sie die Möglichkeit zur Ausführung von Skripten vollständig eliminieren, sind Sie gegen alle derartigen Exploits immun, was die Mehrheit darstellt.
#3
+8
ysdx
2012-08-24 13:36:48 UTC
view on stackexchange narkive permalink

Verwenden Sie pdf.js mit einem Sandbox-Browser (z. B. Chromium) in einer virtuellen Maschine ohne Netzwerkzugriff.

Es sollte ziemlich schwierig sein, eine Malware zu entfernen dies.

#4
+6
Luke Sheppard
2012-08-20 10:04:33 UTC
view on stackexchange narkive permalink

In dieser Situation habe ich immer den Unix / Linux / OSX-Shell-Befehl "strings" verwendet. Gehen Sie auf * nix-Systemen folgendermaßen vor:

  Strings ScaryFile.pdf | less  

Sie können auch "Strings" für Windows erhalten, wie unten von Polynomial erwähnt. Sie können es hier herunterladen. Läuft unter XP oder höher. Hier ist ein Beispiel für die Verwendung unter Windows:

  Strings ScaryFile | findstr / i TextToSearchFor  

Aber für den Rest meiner Antwort hier gehe ich davon aus, dass Sie auf * nix sind, da dies meine Erfahrung mit Strings ist. Angenommen, Sie suchen nur nach Textinhalten (keine Bitmaps oder Vektorgrafiken), können Sie nach unten scrollen oder Teile des benötigten Textes suchen und finden. Um es zu finden, müssen Sie leider Tonnen von Metadaten durchsuchen, von denen die meisten in XML vorliegen, und Formatierungseinstellungen in einem anderen Markup sowie einige Binärdateien (als ASCII, keine Rohbytes). Daher möchten Sie möglicherweise die Suchfunktionen des Befehls "less" verwenden. Um das Dokument nach der Groß- und Kleinschreibung "thingyouwant" zu durchsuchen, verwenden Sie den Schrägstrich + Ihre Zeichenfolge + die Rückgabe:

  / thingyouwant  

Drücken Sie dann die "n" -Taste, um die nächste Instanz von "thingyouwant" immer wieder zu sehen, bis Sie finden, was Sie wollen. Du kannst den ... benutzen "?" Schlüssel, um dasselbe nach oben zu tun. Weitere Informationen finden Sie in der Manpage "Weniger" (Typ "Man Less").

Sie können auch analysieren, auf welche URLs das Dokument verweist:

  Strings ScaryFile.pdf | grep -i "http" | sortieren | uniq | weniger  

Wie oben erwähnt, werden 99% der Ausgaben für "Zeichenfolgen" Metadaten und Formatierungseinstellungen sein.

[Windows hat auch Zeichenfolgen] (http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx).
+1 für Strings (1) und pdfinfo mit einem Follow-up in evince. Das Durchsuchen der Datei nach JS und Aufrufen externer Ressourcen ist sehr effektiv, wenn auch etwas langsam.
Sie sollten sich aus Sicherheitsgründen nicht auf Zeichenfolgen verlassen: http://lcamtuf.blogspot.ca/2014/10/psa-dont-run-strings-on-untrusted-files.html?m=1
#5
+6
user65388
2012-08-20 11:47:12 UTC
view on stackexchange narkive permalink

Verwenden Sie eine virtuelle Maschine, die nach Tests zurückgesetzt werden kann, um Slate zu reinigen. Wenn der PDF-Reader anfällig ist, ist die Wahrscheinlichkeit, dass Ihre reale Workstation betroffen ist, sehr viel geringer.

#6
+5
barbecue
2017-02-19 01:53:02 UTC
view on stackexchange narkive permalink

Eine einfache und unkomplizierte Möglichkeit, möglicherweise schädliche PDF-Dateien auf einem Windows-Computer zu öffnen, ist die Verwendung des PDF-Viewers Sumatra. Sumatra ist ein kleiner, leichter PDF-Viewer, der interaktive ausfüllbare Formulare oder Javascript in PDF-Dateien überhaupt nicht unterstützt.

Sumatra verfügt auch über Konfigurationsoptionen, um es noch weiter zu sperren, z. B. das Verhindern des Dateisystems oder des Internetzugangs.

Das PDF-Dateiformat verfügt über viele interaktive Funktionen soll das Format nützlicher machen, birgt jedoch erhebliche Sicherheitsrisiken, darunter: - die Verwendung von Javascript zur Bereitstellung interaktiver Inhalte, die die Automatisierung der Benutzeroberfläche ermöglichen - die Fähigkeit zur Interaktion mit das lokale Dateisystem - die Fähigkeit, eine HTTP-Anfrage an einen Remote-Server zu senden - die Fähigkeit, eine Nutzlast beliebiger Dateianhänge zu übertragen, einschließlich Malware - das Die Fähigkeit, dem Benutzer ein ausfüllbares Formular zu präsentieren und dann die ausgefüllten Informationen zu erfassen und darauf zu reagieren. Diese Fähigkeiten zusammen ergeben ein leistungsstarkes Toolkit für einen Angreifer. Viele sogenannte "Drive-by-Download" -Angriffe beruhen auf der Verwendung von PDF-Dateien.

Gängige PDF-Viewer versuchen, diese Funktionen zu schützen, indem sie Sandbox-Umgebungen erstellen oder den Benutzer dazu auffordern. Diese Lösungen sind es jedoch sowohl komplexer (und daher ihren eigenen Schwachstellen unterworfen) als auch weniger kompatibel mit den Produkten anderer Parteien als die einfachere Lösung, diese Funktionalität einfach ganz wegzulassen.

Sumatra ist ein Beispiel für einen PDF-Viewer, der nicht viele der Funktionen bietet, die in PDF-Exploits am häufigsten verwendet werden. Durch die vollständige Eliminierung ganzer Kategorien potenzieller Angriffe verringern solche Programme das Risiko, unbekannte PDF-Dateien anzuzeigen.

Ein weiterer Vorteil der Verwendung eines weniger beliebten Viewers besteht darin, dass es weniger interessant und weniger leistungsfähig ist und ein weniger interessantes Ziel darstellt.

Der Sumatra-Viewer könnte möglicherweise von einer speziell gestalteten PDF-Datei ausgenutzt werden, die einen unbekannten Fehler ausnutzt, um beispielsweise einen Pufferüberlauf zu verursachen. Solche Fälle sind jedoch selten und es gab in den letzten Jahren keine wesentlichen Sicherheitslücken für Sumatra.

Was lässt Sie denken, dass Sumatra sicherer ist als jeder der 1001 anderen PDF-Viewer da draußen?
@DmitryGrigoryev Meine Gründe für diese Annahme sind in meiner Antwort klar angegeben.Ich empfehle, den ersten Absatz noch einmal zu lesen und den Link im zweiten Absatz zu lesen.Dort finden Sie Ihre Antworten.
Es ist nicht nötig, unhöflich zu sein.Ich habe Ihre Antwort vollständig gelesen, aber ich verstehe nicht, was Sumatra so besonders macht.Es gibt viele PDF-Viewer, die JS entweder nicht unterstützen oder vom Benutzer deaktivieren lassen.
#7
+2
Dmitry Grigoryev
2017-06-21 15:26:22 UTC
view on stackexchange narkive permalink

Die neuesten Versionen von Adobe Reader (Version 10.1 und höher) unterstützen "Protected Mode" oder Sandboxing, mit dem nicht vertrauenswürdige PDF-Dateien angezeigt werden können. Dadurch wird der Zugriff des Prozesses zum Anzeigen der PDF-Datei auf % appdata% \ Adobe \ Acrobat und andere PDF-Dateien, die vom Benutzer explizit geöffnet werden, effektiv eingeschränkt.

Der geschützte Modus muss aktiviert sein Aktiviert, indem Sie zum Menü Bearbeiten-> Einstellungen gehen und je nach Version entweder die Registerkarte Allgemein oder Sicherheit auswählen:

enter image description here

Offensichtlich sind Sie ' Sie möchten vertrauliche PDF-Dateien wie Ihre Kontoauszüge schließen, bevor Sie die nicht vertrauenswürdigen öffnen.

Was wird als "unsicherer Ort" angesehen?Würde dies beispielsweise ausgelöst, wenn Sie ein Dokument von einem USB-Stick öffnen?
@Jean-FrancoisT.Ich benutze Acrobat nicht mehr, aber soweit ich mich erinnere, gelten USB-Sticks als unsichere Standorte.Vertrauenswürdige Speicherorte sind Ihre lokalen Laufwerke, mit Ausnahme problematischer Ordner wie "Downloads" und "Temp". Alles andere ist nicht vertrauenswürdig.
#8
+1
d3t0n4t0r
2012-10-04 03:44:31 UTC
view on stackexchange narkive permalink

Wir können sagen, dass ALLE Angriffe in freier Wildbahn oder gezielte Angriffe mit schädlichen PDF-Dateien mit Verschleierungstechniken abgedeckt sind, um den Analyse- oder Erkennungsprozess zu beschleunigen.

Die meisten Verschleierungstechniken verwenden hauptsächlich JavaScript Verschleierung wie eval (), String.fromCharCode (), argument.callee (), base64 und sogar mit PDF-Schlüsselwerten wie / Author, / Keywords, / CreationDate usw.

Dies ist möglicherweise nicht möglich Zeigen Sie den Inhalt der schädlichen PDF-Datei (die im PDF-Objektstrom enthalten sind) an, da diese möglicherweise mit FlateDecode häufig entleert wird. Es stehen jedoch Tools zur Verfügung, mit denen wir den Inhalt des PDF-Objektstroms aufblasen können, z. B. PDF-Parser (http://blog.didierstevens.com/programs/pdf-tools/) und FileInsight (http: // www. mcafee.com/us/downloads/free-tools/fileinsight.aspx). Der größte Teil des verschleierten JavaScript-Codes befindet sich im aufgeblasenen PDF-Stream.

Wir empfehlen Ihnen, die neueste gepatchte Version des PDF-Readers mit deaktivierter JavaScript-Funktionalität zum Öffnen der Datei zu erwerben. Die gute Lösung ist jedoch um eine virtuelle Maschine zu erhalten, auf der Sie sie löschen oder den Snapshot nach dem Öffnen der Datei zurücksetzen können.

#9
+1
Lee
2017-02-15 17:24:10 UTC
view on stackexchange narkive permalink

Eine weitere einfache und weniger zeitaufwändige Option besteht darin, sie in der Sandboxie-App zu öffnen, um sie zu isolieren.

Angesichts der Tatsache, dass diese Antwort im Jahr 2017 verfasst wurde, frage ich mich, warum Sie die Verwendung von Sandboxie anstelle der in Adobe Reader integrierten [Sandbox] (https://security.stackexchange.com/a/162444/71607) befürworten.
#10
+1
Valer
2017-03-08 17:00:28 UTC
view on stackexchange narkive permalink

Sie können das PDF in einem Container öffnen. Hier ist ein Docker-Image, das Sie verwenden können: https://hub.docker.com/r/chrisdaish/acroread/

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

Dadurch wird ein Acrobat Reader geöffnet, der über den lokalen X-Server angezeigt wird

Der Ansatz reduziert die Angriffsfläche, ist jedoch nicht 100% sicher, da er Zugriff auf Ihren X-Server hat.

#11
  0
filo
2016-03-18 16:52:35 UTC
view on stackexchange narkive permalink

Sie können eine weniger beliebte Kombination aus Viewer und Betriebssystem verwenden. Ich denke, niemand zielt auf Okular ab, das unter FreeBSD ausgeführt wird (obwohl es immer noch anfällig sein kann). Wenn Sie also die Datei in einer VM öffnen, sollten Sie sehr sicher sein.

Um Schaden zu verursachen, muss die unerwünschte Nutzlast übereinstimmen Natürlich die Viewer-Version und das Betriebssystem sowie die CPU-Architektur. Es handelt sich wirklich um Assembler- und Speichermaterial auf niedriger Ebene (die Nutzdaten erwarten, dass sie an einer bestimmten Speicheradresse platziert werden und dass einige Standardsystemfunktionen verfügbar sind). Wenn Sie eine dieser Optionen ändern, wird die Nutzlast möglicherweise nicht ordnungsgemäß ausgeführt (oder der Viewer stürzt einfach ab, ohne Schaden zu verursachen).



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...