MySQL Sicherheitslücke als Blob?

danielmaann

Mitglied
Hallo zusammen

Ich möchte in meiner Software die Möglichkeit haben das ein Benutzer ein Bild hochladen kann. Dies sollte als BLOB in der DB abgelegt werden. Ich kenne mich mit IT-Security nicht so aus, aber habe mal was gelesen, dass man Schadcode in Bilder binden kann (wie Trojaner mit sogenannten Binders...). Nun habe ich die befürchtung, dass ein Benutzer einen Schadcode in ein Bild einschleusen kann, welcher so in die DB abgespeichert wird. Beim Anzeigen bzw. auslesen und ausführen des BLOB's würde ja der Schadcode ausgeführt werden, oder nicht?

Kann mir jemand dazu etwas beibringen?
Falls dies in der Praxis tatsächlich möglich ist, wie könnte ich mich davon schützen?

Beste Grüsse
 
it depends (mit der Datenbank hat das allerdings nichts zu tun...)

Wenn das Bild ein valides Bild ist und die zum Anzeigen/Bearbeiten/Whatever genutzten Programme keine Sicherheitslücken haben, ist das keine Sicherheitslücken. Nirgends wird ein Bild einfach so ausgeführt.

Wenn das allerdings zB eine Serveranwendung ist, und ein anfälliges ImageMagick zur Verarbeitung genutzt wird, und der Nutzer ein kompromittiertes Bild hochlädt, dann kann es zu Remote-Code-Exceution auf dem Server kommen.

Und analog; wenn der Server zwar sicher ist (aber nicht sinnvoll validiert), aber ein Nutzer ein kompromittiertes Bild hochlädt, welches bei einem anderem Nutzer angezeigt wird, und dieser nutzt ein anfälliges Programm, kommt es bei diesem Nutzer zur Ausführung von Schadcode.


Wie man sich schützt in Kurzform: Alle Nutzereingaben validieren, Sicherheitspatches einspielen, Server entsprechend absichern.
 
Also es geht darum. Der Benutzer sollte ein Bild hochladen können. Dieses Bild sollte nur vom Administrator angesehen werden können... Sprich, andere Benutzer sollten das nicht sehen. Das Bild existiert ja in der Datenbank. Das Bild wird auf dem Server (Apache) ausgeführt mit PHP jedoch in einem Browser dem Administrator angezeigt. Natürlich ist der Browser so eine Art Sandbox und die Codeexecution wird nicht auf dem Clientrechner passiert. Aber ich befürchte das der Schadcode dann auf dem Server ausgeführt wird.

Wie könnte ich das Bild validieren und prüfen ob es Schadcode frei ist?

Beste Grüsse
Dani
 

Zurück
Oben