Antwort #10 am: 29. Januar 2014, 11:19:01
Hallo Leute,
ich habe für einen Kunden einige Fixes in seinem Shop installiert und bin dadurch wieder mal ins modified-Forum gedriftet und dabei auf diese Sicherheitsdiskussionen gestossen.
Viele fragen sich hier, was diese Patches eigentlich bewirken, und es werden verschiedene Diskussionen losgetreten, welche Maßnahmen (htaccess, IP-Blocks usw.) man ergreifen kann, um einen Angreifer auszusperren.
Meine Meinung dazu ist folgende: das einzig wirksame Mittel, um einen Angreifer tatsächlich auszusperren, ist es, den Code der Shopdateien von seinen Schwachstellen zu befreien, alles andere wird vielleicht einen infantilen Angreifer beschäftigen, ein richtiger Hacker lacht aber nur über sowas. Da durch Angriffe aber auch Existenzen bedroht sind, sollte man hier völlige Klarheit besitzen und sich nicht durch trügerische Sicherheitsmaßnahmen täuschen lassen.
Deshalb möchte ich hier einiges zur Shopsicherheit posten.
Eines vorneweg: Es wird immer wieder Sicherheitslücken geben und Patches erforderlich werden, weil bei der Entwicklung der Shopsoftware nämlich zu wenig Augenmerk auf Sicherheit gelegt wurde.
Alles fängt eigentlich damit an, dass eine richtige Shopsoftware aus TAUSENDEN von Dateien besteht, in denen an unglaublich vielen Stellen Abfragen an die Datenbank getätigt werden. Wenn diese Abfragen jetzt Daten enthalten, die bei ihrer Erfassung nicht genügend abgesichert wurden, und es erfolgt mit diesen Daten dann eine Abfrage an die Datenbank, dann hat das DBMS gar keine andere Möglichkeit als z.B. einem Angreifer mehr zu verraten als vom Entwickler ursprünglich vorgesehen war.
In den vorliegenden Patches wird versucht, dieses Versäumnis nachzuholen. Es werden jetzt Werte, mit denen Abfragen getätigt werden, endlich aufgearbeitet, so dass ein erwarteter Integer-Wert nicht plötzlich einen kompromittierenden String enthalten kann. Die Fixes der letzten Zeit deuten auf diese Stellen, andere werden folgen...
Das dumme an der Geschichte ist nämlich folgendes: Wenn ein Hacker sich auf ein Shopsystem konzentriert, dann arbeitet er alle Dateien durch und er kennt genau die Schwachstellen, d. h. die Stellen, an denen es der Entwickler versäumt hat, sicheren Code zu schreiben. Er spricht nicht nur PHP, er kann PHP lesen und denken. Deshalb ist es meiner Meinung nach absolut sicher, dass eine durch Zufall entdeckte Sicherheitslücke nur die Spitze eines Eisbergs ist, denn während die zufällig entdeckte Lücke auf wirklichem Zufall beruht, geht der Hacker mit Disziplin vor und hat sein Ziel konkret vor Augen.
Ich schätze, dass es aus diesem Grund eine unwahrscheinliche Zahl von kompromittierten Shops gibt, die meisten merken es nicht mal, weil sie sich mit htaccess und Konsorten auf der sicheren Seite wähnen...
Hier gibt es theoretisch nur die eine Möglichkeit:
Alle bekannt gewordenen Sicherheitsfixes fleissig nachinstallieren , davon abgesehen Augen zu und durch.
Die Alternative dazu wäre zwar maximale Sicherheit, aber auch extrem zeitaufwändig:
Entweder ALLE Stellen ausfindig machen, die Benutzereingaben enthalten und diese entsprechend absichern (wobei man eventuell noch die eine oder andere Hintertür übesehen könnte) oder diese ganze anfällige 'MySQL-ich schreib dir was, antworte'- Geschichte durch einen zeitgemäßgen Verbindungsaufbau mittels PDO und prepared Statements ablösen, denn dann würde sich das DBMS um die übermittelten Daten kümmern.
Greetz
drulak