2012-04-08 1 views
3

Ich habe gelesen, dass einige Bildbetrachter von entsprechend manipulierten Bildern gehackt wurden (in einem Format, das dafür besonders geeignet ist? Nicht sicher über die Details).Wie funktionieren ausgefuchste Image-Exploits für Bildbetrachter? können sie mit verwaltetem Code und zufälligen Pixeländerungen besiegt werden?

Also, wie könnte diese Bedrohung vollständig beseitigt werden? Angenommen, wir erstellen einen Viewer für das betroffene Format, das in den verwalteten Code geschrieben wurde, und wandeln Bilder in einen reinen BMP um (oder etwas anderes, das so einfach ist, dass seine Betrachter nicht gehackt werden können). Würde das Problem verschwinden? Wie wäre es, zuerst in BMP zu konvertieren und dann einige tiefgreifende kleine Pixeländerungen einzuführen, um den möglichen Hack besser zu stören?

Nehmen wir an, dieser Image-Sanitisierungskonverter würde in die Firewall integriert werden, so dass nur "sichere" bereinigte Images standardmäßig beim normalen Browsing geladen würden. Würde dies das Problem lösen? Oder ist meine Argumentation falsch aufgrund eines fehlerhaften Verständnisses der Natur von bildbasierten Exploits?

Antwort

1

Ihre Frage, ich denke, läuft darauf hinaus, ob der Angriff lebt in den Daten oder im Bild. Wenn es in den Daten ist, dann wird nur die Decodierung des Bildes und die Neucodierung mit einem bekannten guten Codierer die Sicherheit gewährleisten. Wenn es im Bild ist, müssen Sie möglicherweise die Pixel ändern.

Das berühmte Beispiel dafür war mishandling of JPEG comment fields with bad lengths, ursprünglich ein Bug in Netscape, aber später unabhängig eingeführt in Windows. Dies war eher ein Datenproblem als ein Bildproblem. der Teil der fraglichen Daten ist nicht einmal Bilddaten, es sind Metadaten. Wenn Sie das Bild mit einem Sandbox-Decoder dekodieren, vielleicht das beschädigte Kommentarfeld erkennen und wiederherstellen und es dann mit einem freundlichen Encoder neu codieren, wäre das Ergebnis selbst für anfällige Decoder sicher. Dies naiv zu tun, würde zu einem Qualitätsverlust führen. Es ist möglich, JPEG-Dateien verlustfrei zu transcodieren, aber dafür ist Code erforderlich.

Mein Bauchgefühl ist, dass Angriffe auf Image-Ebene nicht möglich sind, nur Angriffe auf Datenebene. Bildformate sind ausreichend spezifiziert und grundsätzlich einfach genug, dass der Inhalt des Bildes den Decodierungsprozess nicht beeinflussen sollte. Das kann ich allerdings weder beweisen, noch wirklich dafür argumentieren.

Verwandte Themen