HomeAllgemein

Sicherheit bei Web-Shops

Like Tweet Pin it Share Share Email

Bevor es Web-Anwendungen und Web-Shops gab, waren die Einfallstore für Hacker die auf den Servern verfügbaren Dienste wie beispielsweise FTP, POP3 oder SCP. Basierten die Schwachstellen bei diesen Diensten auf nicht eingespielten Sicherheits-Updates oder konfigurativen Mängeln, konnten Angreifer Daten einsehen. Auf diese Weise gelang es Angreifern auch, den Server, auf dem die Dienste liefen, zu übernehmen und sich dann auch weiter im Netzwerk umzusehen und dort nach Informationen und Daten zu suchen. In einfachen Fällen reicht schon eine nicht durchdachte FTP-Konfiguration und ein Angreifer kann eine einfache Shell auf den Server hochladen und ausführen. Über die Shell gelangt der Angreifer dann an Informationen, die ebenso auf dem Server gespeichert sind und die sowohl Passwörter als auch Passwort-Hashes sein können. Wenn ein Angreifer nun Passwort-Hashes findet, so wird er versuchen, diese aufzubrechen und sich mit Hilfe der somit erbeuteten Passwörter im Netzwerk anzumelden, um weitere Informationen zu stehlen.

Heute verlieren die „klassischen“ Dienste als Angriffsziele jedoch an Bedeutung. Auch wenn das regelmäßige Einspielen von Sicherheits-Updates nach wie vor so wichtig ist wie vor 20 Jahren, wird heutzutage vor allem innerhalb von Web-Applikationen nach Schwachstellen gesucht, über die ein Angreifer Daten stehlen kann. Von besonderem Interesse sind dabei nicht allein personenbezogene Daten, sondern unter anderem auch Informationen über das Nutzer-Verhalten, Kreditkarteninformationen sowie Produktions-, Herstellungs- und Baupläne.

Die Geschichte der Web-Applikationen beginnt Mitte der 90er-Jahre mit den ersten HTML-Formularen. Diese verarbeiteten erstmals benutzerspezifische Daten. Mittlerweile gehören Web-Shops zu den komplexesten Web-Anwendungen. Dabei muss der Web-Shop die Identifikation des Benutzers übernehmen, da HTTP ein verbindungsloses Protokoll ist. Die Benutzeridentifikation geschieht meistens über eine Sitzungs-ID, die der Applikation bei jeder Anfrage in Form eines Cookies, als Basic/Digest Authentication oder HTTP-Form-Parameter (GET oder POST) übergeben wird. Daraus ergeben sich eine Anzahl von Angriffsmöglichkeiten, die für Hacker interessant sind, wovon die „klassischen“ Angriffe SQL-Injection, Cross-Site Scripting (XSS), Session Hijacking, Cross-Site Request Forgery und Angriffe auf das Sitzungs-Konzept/-Verwaltung umfassen. Ist eine SQL-Injection-Schwachstelle vorhanden, kann der Angreifer Daten direkt aus der Datenbank auslesen und sogar verändern, da er direkten Zugriff auf die Datenbank hat. Hier ist es ihm nicht nur möglich, die Daten anzusehen, die der Nutzer der Web-Anwendung selbst eingegeben hat, sondern auch Daten, die vom Betreiber der Web-Anwendung in dieser Datenbank gespeichert worden sind. Besonders gravierend ist der Zugriff auf benutzerspezifische beziehungsweise personenbezogene Daten (Name, Anschrift, Bankverbindung, etc.). Wird eine Datenbank mit erhöhten Rechten ausgeführt, kann der Angreifer den Server anhand dieser Berechtigungen nachhaltiger ausspähen und erhält im schlimmsten Fall Zugriff auf weitere Server des Netzwerkes.

Cross-Site Scripting ermöglicht einem Angreifer, die Benutzer-Sitzung eines Web-Shop-Kunden zu übernehmen (Session Hijacking), indem er durch diese Schwachstelle Skript-Code im Kontext des Benutzers ausführt und bei Erfolg an dessen Zugangsdaten gelangt und somit unbegrenzten Zugriff auf das Benutzer-Konto erhält (oft reicht hierbei auch schon die „Komfort“-Funktion aus, wenn der Anwender seine Anmeldedaten im Browser speichern kann). Auf diese Weise kommt der Angreifer in Besitz an die persönlichen Daten des Nutzers und kann nun Bestellungen im Namen des Konto-Inhabers aufgeben. Cross-Site Scripting-Schwachstellen kommen sehr häufig bei Web-Anwendungen/-Shops vor und werden in der Regel in ihrer Auswirkung unterschätzt. Gibt ein User beispielsweise seine Anmeldedaten in eine der Originalseite nachempfundene (Phishing) und per Cross-Site Scripting von einem Server des Angreifers nachgeladene Login-Seite ein, so werden diese direkt auf dem Server des Angreifers gespeichert. Ein solcher Angriff lässt sich mit etwas mehr Aufwand auch derart gestalten (Übermittlung der gestohlenen Login-Daten an die Originalseite), dass der Benutzer den Diebstahl seiner Anmeldedaten nicht bemerkt. Zudem kann ein Angreifer mit Hilfe von Cross-Site Scripting sowohl Umleitungen auf Fremdsysteme erzwingen, Defacements verursachen, Malware nachladen oder auch JavaScript-basierte Keylogger platzieren.

Bei Cross-Site Request Forgery-Angriffen versucht der Angreifer definierte Aktionen (im einfachsten Fall, wenn ein User sich ausloggt) im Kontext des Benutzers auszuführen. Nicht nur die Logout-Funktion, sondern auch Funktionen, die das Löschen von Daten auslesen oder das Hochladen von Dateien ausführen, sind Ziele von Cross-Site Request Forgery-Angriffen.

Auch in der URL übermittelte Parameter, wie beispielsweise der Preis, können einem Angreifer helfen, kostengünstig in einem Web-Shop einzukaufen.

Sowohl das Sitzungs-, als auch das Berechtigungskonzept von Web-Shops sind Ziele von Angreifern. Beispielsweise ist der Zugriff auf fremde Daten (zum Beispiel Rechnungsdaten) durch ein nicht sauber implementiertes Berechtigungskonzept durch einfaches Ändern eines Parameters möglich. Die Übernahme eines Benutzer-Kontos gestaltet sich oft recht einfach, wenn nicht alle vorhandenen Maßnahmen zum Schutz der Sitzungs-ID getroffen werden.

Viele solcher Schwachstellen lassen sich durch eine konsequente, serverseitige Filterung sämtlicher vom Benutzer übermittelten Daten verhindern.

Zu der bereits schon vorhandenen Komplexität von Web-Anwendungen kommt bei Web-Shops noch eine besondere Komplexität hinzu, da oft mehrere unterschiedliche Zahlungssysteme in einen Web-Shop eingebunden werden. Eine nicht korrekte Einbindung kann beispielsweise dazu führen, dass Benutzer kostenlos in diesem Web-Shop einkaufen können[1]. Nicht nur Zahlungssysteme, sondern auch Scoring-Anbieter (beispielsweise Infoscore), die Informationen zur Bonität von Nutzern sammeln und anbieten, oder Tracking-Dienste (wie eTracker), die Informationen über das Verhalten des Nutzers innerhalb des Web-Shops sammeln und auswerten, erhöhen die Komplexität eines Web-Shops, die es Administratoren und IT-Beauftragten wiederum schwer macht, wirklich alle einzelnen Verzweigungen und Komponenten der Anwendung im Visier zu behalten. Auf diese Weise können sich Fehler einschleichen, die Sicherheitslücken aufreißen können.

Ferner stehen bei der Erstellung von Web-Shops der GO-Live im Vordergrund sowie Marketing-Aspekte und die Performance. Web-Shop-Betreiber legen viel Wert auf das Look-and-Feel, damit sich Kunden auf ihrer Seite wohl fühlen. Somit verwundert es kaum, dass sie sich scheuen, auf Kosten dieser Kriterien mit Härte gegen Hackerangriffe vorzugehen, zumal der IT-Sicherheitsaspekt auf den ersten Blick vor allem erst einmal Kosten verursacht, was besonders bei Ausschreibungen ein wichtiges Kriterium ist. Des Weiteren wird bei der Planung von Web-Shops oft nur wenig oder gar keine Zeit eingeplant, um etwaige Testsysteme auf IT-Sicherheitsschwächen zu untersuchen, bevor sie produktiv gehen.

Diese Umstände resultieren darin, dass bei vielen Web-Shops Qualität, Wartbarkeit und Sicherheit fehlen beziehungsweise zu kurz kommen.

Um den Gefahren bei Hacker-Angriffen entgegenzuwirken und aus dem gewonnenen IT-Sicherheitsbewusstsein Konsequenzen zu ziehen, sollte IT-Sicherheit als Design-Kriterium bei der Entwicklung von Web-Shops verankert werden. Durch einen Penetrationstest werden konkrete Sicherheitsschwachstellen aufgedeckt, die der Betreiber dann zügig beheben kann. Da Penetrationstests ausschließlich Momentaufnahmen  darstellen und eine sichere Applikation von heute durch eine Schwachstelle von morgen gefährdet werden kann, ist es sinnvoll, regelmäßig Penetrationstests durchzuführen. Auch wenn diese Maßnahme erst einmal ein Mehr an Kosten zu verursachen scheint, so bleiben diese Ausgaben vergleichweise gering, bedenkt man, welche Umsatzeinbußen und was für ein Image-Verlust ein Stillstand des Systems und/oder der Verlust von Kundendaten bedeutet, wenn der Ernstfall eintrifft.


[1] siehe hierzu den folgenden Artikel.

Über den Autor

Pressefoto_SchreiberDie Dienstleistung “Penetrationstest” ist mit der SySS GmbH untrennbar verbunden. Die Firma wurde 1998 von Sebastian Schreiber mit dem einzigen Ziel gegründet, Penetrationstests von besonders hoher Qualität durchzuführen. Weitere Dienstleistungen (Hacking-Workshops, Live Hacking-Auftritte und IT-Forensics) verstehen sich als Ergänzung, bei denen dem Kunden das bei Penetrationstests erworbene Spezialwissen zur Verfügung gestellt wird.

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen