it-swarm.com.de

Kann das einfache Dekomprimieren eines JPEG-Bildes einen Exploit auslösen?

Der Roman Daemon wird häufig dafür gelobt, dass er in seiner Darstellung realistisch ist, anstatt nur Schlagworte zu mischen.

Dies kam mir jedoch unrealistisch vor:

Graggs E-Mail enthielt ein vergiftetes JPEG des Brokerage-Logos. JPEGs waren komprimierte Bilddateien. Wenn der Benutzer die E-Mail angezeigt hat, hat das Betriebssystem einen Dekomprimierungsalgorithmus ausgeführt, um die Grafik auf dem Bildschirm zu rendern. Es war dieser Dekomprimierungsalgorithmus, der Graggs bösartiges Skript ausführte und ihn in das System des Benutzers schlüpfen ließ - und ihm vollen Zugriff gewährte. Es gab einen Patch für den Dekomprimierungsfehler, aber ältere, reiche Leute hatten normalerweise keine Ahnung von Sicherheitspatches.

Gibt es so etwas? Basiert diese Beschreibung auf einem echten Exploit?

Dies wurde im Dezember 2006 veröffentlicht.

Ist es sinnvoll zu sagen, dass "das Betriebssystem" das Bild dekomprimiert hat, um es zu rendern?


Beachten Sie, dass dies nichts mit der Sicherheit von PHP Skripten zum Hochladen von Bildern. Ich frage nach dem Dekodierungsprozess zum Anzeigen eines JPEG zu tun hat, nicht mit Skripten, die Eingaben von übernehmen Remote-Benutzer oder Dateien mit dem falschen Namen .jpeg. Das doppelte Markieren, auf das ich antworte, sieht selbst für ein Schlagwort-Match schlecht aus. wirklich nichts ähnliches außer Bilddateien zu erwähnen.

102
JDługosz

Gibt es so etwas?

Absolut. Das Zuführen böswilliger Eingaben zu einem Parser ist eine der häufigsten Methoden zum Erstellen eines Exploits (und für ein JPEG bedeutet "Dekomprimierung" "Parsen").

Basiert diese Beschreibung auf einem echten Exploit?

Möglicherweise basiert es auf der Sicherheitsanfälligkeit Microsoft Windows GDI + -Pufferüberlauf :

Die JPEG-Analysekomponente von GDI + (Gdiplus.dll) behandelt fehlerhafte JPEG-Bilder mit einem Pufferüberlauf. Durch die Einführung einer speziell gestalteten JPEG-Datei in die anfällige Komponente kann ein entfernter Angreifer eine Pufferüberlaufbedingung auslösen.

...

Ein entfernter, nicht authentifizierter Angreifer kann möglicherweise beliebigen Code auf einem anfälligen System ausführen, indem er eine speziell gestaltete JPEG-Datei einführt. Dieses schädliche JPEG-Bild kann über eine schädliche Webseite, HTML-E-Mail oder einen E-Mail-Anhang in das System eingeführt werden .

.

Dies wurde im Dezember 2006 veröffentlicht.

Die Sicherheitsanfälligkeit bezüglich GDI + JPEG-Analyse wurde im September 2004 veröffentlicht.

Ist es sinnvoll zu sagen, dass "das Betriebssystem" das Bild dekomprimiert hat, um es zu rendern?

Sicher; In diesem Fall war es eine Systembibliothek, für deren Korrektur ein Patch des Betriebssystemherstellers erforderlich war. Oft werden solche Bibliotheken von mehreren Softwarepaketen verwendet, sodass sie eher Teil des Betriebssystems als anwendungsspezifisch sind.

Tatsächlich "hat die E-Mail-Anwendung eine Systembibliothek aufgerufen, um ein JPEG zu analysieren", aber "das Betriebssystem" ist nah genug für einen Roman.

180
gowenfawr

Mit anderen einverstanden zu sein, ja zu sagen, ist durchaus möglich, aber auch eine interessante Anekdote hinzuzufügen:

Joshua Drake (@jduck) entdeckte einen Fehler, der auf einem sehr ähnlichen Konzept beruhte (Bilder werden vom Betriebssystem interpretiert), der schließlich den Namen "Stagefright" erhielt und ein lächerliche Anzahl von Android) betraf. Geräte .

Er entdeckte auch einen ähnlichen bildbasierten Fehler in libpng , der zum Absturz bestimmter Geräte führen würde. Er twitterte ein Beispiel für den Exploit mit den Worten "Hey, sieh dir dieses coole bösartige PNG an, das ich erstellt habe, es wird wahrscheinlich dein Gerät zum Absturz bringen", ohne zu bemerken, dass Twitter das automatische Rendern von Inline-Bildern hinzugefügt hat. Unnötig zu erwähnen, dass viele seiner Follower ihre Computer zum Absturz brachten, sobald der Browser versuchte, das Miniaturbild des Bildes in ihren Feed zu laden.

49
Nic Barker

Unrealistisch? Es gab kürzlich einen kritischen Fehler beim Parsen der Schriftdefinition: https://technet.Microsoft.com/en-us/library/security/ms15-078.aspx und libjpeg-Changenotes sind voller Sicherheitshinweise. Das Parsen von Dateien [1] ist schwierig: Überläufe, Unterläufe, Zugriff außerhalb der Grenzen. Vor kurzem wurden viele Fuzzing-Tools für die halbautomatische Erkennung von Eingaben entwickelt, die zu Abstürzen führen können.

[1] oder Netzwerkpakete, XML- oder sogar SQL-Abfragen.

12
user158037

Wie andere bereits betont haben, nutzen solche Angriffe normalerweise Pufferüberläufe aus.

In Bezug auf die Grundlagen des Vorgehens spricht man von einem Stack-Smashing-Angriff. Dabei wird Aufrufstapel beschädigt und eine Adresse in legitimen Code, der ausgeführt werden soll, mit einer Adresse in vom Angreifer bereitgestellten Code überschrieben, der stattdessen ausgeführt wird.

Details finden Sie unter nsicher.org/stf/smashstack.html .

2

Ja das ist möglich:

Eine neue Variante des schändlichen Zeus-Banking-Trojaners - ZeusVM genannt - ist nach den gemeinsamen Ergebnissen von Jerome Segura, Senior Security Researcher bei Malwarebytes, und dem französischen Sicherheitsforscher Xylitol in JPG-Bilddateien verborgen.

Die Handlung ist als Steganographie bekannt - das Verbergen von Nachrichten oder Bildern in anderen Nachrichten oder Bildern.

Im Fall von ZeusVM ist der Code der Malware in unscheinbaren JPG-Bildern versteckt, wie ein Blog-Beitrag von Segura am Montag enthüllte. Diese Fotos dienen ZeusVM als Fehlleitung zum Abrufen der Konfigurationsdatei.

"Das JPG enthält die Malware-Konfigurationsdatei, bei der es sich im Wesentlichen um eine Liste von Skripten und Finanzinstituten handelt. Sie muss jedoch nicht vom Opfer selbst geöffnet werden", sagte Segura in einer E-Mail-Korrespondenz am Dienstag gegenüber SCMagazine.com. "Tatsächlich hat das JPG selbst für den Benutzer nur eine sehr geringe Sichtbarkeit und ist größtenteils eine Tarntechnik, um sicherzustellen, dass es vom Standpunkt der Sicherheitssoftware aus nicht erkannt wird."

Quelle .

1
TheJulyPlot