Web-Application-Security und E-Commerce

Wissenswertes rund um den Schutz von Webshop-Lösungen

15.12.2008 von Peter Höpfl
E-Commerce vereinfacht Geschäftsprozesse und verschafft Wettbewerbsvorteile, die optimal ausgeschöpft werden wollen. Die vom Internet ausgehenden Risiken in der Web-Applikationsplanung bleiben dabei häufig außen vor. Nur wer jedoch die gängigen Sicherheitslücken und Angriffstechniken kennt, kann den zunehmend professionellen Cyber-Kriminellen die Stirn bieten.

Was ist die gängigste Betrugsmethode?

Das Versenden von Phishing-Mails zählt zu den populärsten Methoden, um vertrauliche Daten in E-Commerce-Infrastrukturen und Online-Bezahlsystemen auszuspionieren - und zu missbrauchen. Vor allem Mittelständler, die über keine dedizierte IT-Sicherheitsabteilung verfügen, geraten zunehmend ins Visier von Betrügern. Der Begriff Phishing umfasst den Versand betrügerischer E-Mails mit dem Ziel, den Empfänger zur Preisgabe persönlicher Informationen zu bewegen. Häufig sind E-Mails mit falschen Absenderadressen in ihrer Aufmachung elektronischen Nachrichten von vertrauenswürdigen Unternehmen täuschend ähnlich und enthalten einen Link, der meist direkt auf eine gefälschte Internet-Seite führt. Abgefischt werden neben aktuellen Zugangs- und Transaktionsdaten Informationen zur Identität - etwa Geburtsdatum, Anschrift und Führerscheinnummern - sowie Konto- und Kreditkartendaten. Phishing-Versuche sind nicht mehr so leicht zu erkennen wie früher - sich ständig wandelnde Angriffstechniken der Online-Datendiebe erschweren es erheblich, zwischen Legitimem und Gefälschtem zu unterscheiden.

Der beste Schutz vor Phishing besteht darin, grundsätzlich allen E-Mails zu misstrauen, die persönliche Daten fordern. Seriöse Firmen verlangen niemals die Eingabe von Zugangs- oder Kontodaten. Zudem sollten Mails von unbekannten Absendern nicht beantwortet und beigefügte Anhänge nicht geöffnet werden.

Was ist Cross Site Scripting (XSS)?

Das so genannte Cross Site Scripting ist eine zunehmend verbreitete Methode, Web-Applikationen anzugreifen. Dabei manipuliert ein Angreifer die Web-Anwendung so, dass sie schädlichen Skriptcode in die dem Besucher angezeigte Seite einbettet. Der Browser verarbeitet den eingeschmuggelten Code dann so, als sei es ein legitimer Inhalt der Web-Seite - mit allen entsprechenden Sicherheitsfreigaben. Ferner droht Unternehmen im Fall eines Server-Absturzes und dem damit verbundenen Datenverlust erheblicher Schaden. Denn oft fehlt ein ausgearbeiteter Krisenplan im Hinblick auf ein verlässliches Ersatzsystem zur Datensicherung, was die zeitnahe Wiederherstellung von Daten erschwert.

Was hilft gegen XSS-Attacken?

Sämtliche Informationen, die per Formulareingabe oder URL-Parameter (Uniform Resource Locator) an den Server übermittelt werden, sind zunächst auf Schadcodes zu überprüfen. Gibt ein User zur Registrierung auf einer Website etwa als Benutzernamen "<script type='text/javascript'> alert('hallo');</script>" ein, dürfte nach dem Senden der Formulareingabe in keinem Fall ein Dialogfenster "Hallo" statt des Benutzernamens erscheinen. Dies wäre ein eindeutiges Indiz für eine nicht geprüfte und folglich für Cross Site Scripting und eventuell sogar SQL-Injection anfällige Web-Seite. Gerade Schwachstellen im Eingabefeld wie dem Suchformular ermöglichen es, Inhalte auszutauschen oder schädlichen Programmcode auszuführen, um den Benutzer zu täuschen und so an seine Zugangsdaten oder Kontoinformationen zu gelangen. Mit einem Web-Scanner lassen sich Web-Seiten einfach auf XSS-Lücken abklopfen.

Wie lassen sich Session-Hijacking und SQL-Injection verhindern?

Viele Web-Applikationen arbeiten mit Sessions, um den Nutzer nach dem Einloggen zu identifizieren. Hier hat sich der Gebrauch von GUIDs (Globally Unique Identifiers) bewährt. Dabei handelt es sich um eine 32-stellige alphanumerische Zeichenkette, die das Identifizieren der Session-ID durch Ausschnüffeln (Session-Hijacking) praktisch unmöglich macht.

Ein großer Teil der Web-Anwendungen greift auf eine SQL-Datenbank zurück. Das als SQL-Injection bezeichnete Einschleusen oder Manipulieren von SQL-Kommandos ist derzeit die von Hackern am häufigsten genutzte Angriffstechnik auf Anwendungsebene. Besonders anfällig sind fehlerhaft konzipierte Websites, deren Datenbankschnittstellen unnötig Informationen preisgeben.

Solche Schwachstellen finden sich vor allem in Anmeldeformularen oder Formularen zur Anforderung vergessener Passwörter. Um SQL-Injection vorzubauen, sollten sämtliche Zugriffe auf die Datenbank von der Web-Anwendung aus nur über so genannte Prepared Statements oder besser Stored Procedures erfolgen. Der direkte Einsatz von SQL-Befehlen hingegen sollte möglichst vermieden werden.

Glossar

Cross-Site Scripting: Manipulation von Parametern, so dass im Browser Skriptcode ausgeführt wird.

Default-Anwendung: Vorgegebene Softwareeinstellung, die gewählt wird, wenn der Benutzer oder Programmierer selbst keinen Wert eingibt.

Doppel-Opt-in: Verfahren, bei dem der Eintrag in eine Abonnentenliste in einem zweiten Schritt bestätigt wird. Meist wird hierzu eine E-Mail-Nachricht mit Bitte um Bestätigung an die eingetragene Kontaktadresse gesendet.

GUID (Globally Unique Identifier): Global nur einmal vergebene Zahl, die in verteilten Computersystemen zum Einsatz kommt.

Phishing: Betrügerei, bei der versucht wird, Internetbenutzer mit E-Mails von angeblich vertrauenswürdigen Absendern auf gefälschte Websites zu locken.

Prepared Statements: vorbereitete Anweisung für ein Datenbanksystem, das anstelle von Parameterwerten Platzhalter enthält.

Secure Coding Guidelines: Coding-Richtlinien für sicheres E-Business.

Session: Logische Verbindung zwischen Client und Server; kann über mehrere Einzelzugriffe hinweg bestehen.

Session-Hijacking: Angriff auf eine verbindungsbehaftete Datenkommunikation zwischen zwei Computern.

Session-ID: Identifikationsmerkmal, um mehrere zusammengehörige Anfragen eines Benutzers zu erkennen und einer Sitzung zuzuordnen.

Skript: Programm, das in einer Interpreter-Sprache geschrieben ist.

Stored Procedures: Eigenständiger Befehl, der eine Abfolge von gespeicherten Befehlen ausführt.

SQL-Injection: Spezielle Angriffsmethode auf Datenbanken.

Web-Scanner: Programm zum Testen von Verwundbarkeit, Angriffspunkten und Schwachstellen einer Web-Applikation.

Welche grundsätzlichen Schutzmaßnahmen gibt es?

Ein Großteil denkbarer Angriffsszenarien lässt sich allein durch die richtige Konfiguration der Skripting-Umgebung abwehren. Dabei ist zu beachten: Je weniger Rechte und Funktionen eine Applikation voraussetzt beziehungsweise erhält, desto weniger kann schiefgehen. Im Idealfall sollte eine Webshop-Applikation auf Basis der "Secure Coding Guidelines" entwickelt sein und regelmäßig daraufhin überprüft werden.

Durch Setzen einiger Optionen und Parameter lassen sich gefährliche Funktionen abstellen beziehungsweise im Ernstfall der Schaden begrenzen. So schützt zum Beispiel das Arbeiten mit "Doppel-Opt-ins" bei der Online-Registrierung über eine E-Mail-Adresse vor Missbrauch. Hierbei erhält der Nutzer nach der Anmeldung per Mail die Aufforderung, die angegebenen Daten zu bestätigen - erst dann wird sein Account akzeptiert. Ferner sollten Sicherheitsvorkehrungen wie das Filtern von Javascript-Codes beziehungsweise XSS, der Gebrauch von GUIDs sowie Schutzmaßnahmen gegen SQL-Injection getroffen und in alle Web-Applikationen integriert werden.

Wie lassen sich Web-Bedrohungen nachhaltig abwehren?

Anspruchsvolle Konzepte betrachten Sicherheit als andauernden Prozess und basieren auf den drei Säulen: Sicherheit innerhalb der Server-Plattform, die Absicherung der Web-Anwendung selbst sowie der Umgang mit Daten innerhalb der Firma. Quelle: Atrada


Um Web-Bedrohungen effektiv entgegenwirken und im entscheidenden Moment schnell reagieren zu können, sollte das Thema Sicherheit als andauernder Prozess behandelt werden und - zum optimalen Schutz der Lösung, aber auch aus Kostengründen - bereits in die Planung von E-Commerce-Projekten einfließen. Umfassende Konzepte basieren auf drei Säulen: Sicherheit innerhalb der Server-Plattform, Absicherung der Web-Anwendungen selbst sowie der sichere Umgang mit Daten innerhalb des Unternehmens.

Im Hinblick auf eine umfassende Sicherheit im System gilt es darüber hinaus, fremden Daten prinzipiell zu misstrauen, da sich nie ausschließen lässt, dass sie manipuliert sind. Neben der Implementierung gängiger Sicherheitsstandards und gesundem Misstrauen spielt letztendlich erhöhte Wachsamkeit, sprich: fortwährende Überwachung, eine tragende Rolle.

Was ist bei der Absicherung der Server-Plattform zu beachten?

Die Sicherheit von Server und Netz bilden das Sicherheitsfundament einer Web-Anwendung. Grundsätzlich gilt es, die Server-Plattform in mehrere Zonen aufzuteilen - und selbstverständlich eine Firewall einzusetzen. Dabei sollten nur Web-Applikations-Server direkt mit dem Internet verknüpft werden. Bei allen anderen Systemen, die nicht unmittelbar vom User angesprochen werden - beispielsweise dem Datenbank-Server - ist eine Web-Verbindung zu vermeiden. Nur so lässt sich das Angriffsrisiko verringern. Gelangt ein Angreifer beispielsweise an Login-Daten eines Datenbank-Servers, sind sie für ihn wertlos, solange er nach der Devise der geringsten Privilegien keinen Zugriff auf den Server erlangt. Darüber hinaus gelten heute regelmäßige Software-Updates als unabdingbarer Standard, um sich vor Angriffen von außen zu schützen. Auch sollten auf den eingesetzten Systemen nur für den Betrieb zwingend erforderliche Dienste laufen: Je weniger "Default"-Anwendungen aktiviert sind, desto kleiner die potenzielle Angriffsfläche.

Inwieweit sind die eigenen Mitarbeiter gefordert?

Der richtige Umgang mit sicherheitsrelevanten Themen im Unternehmen selbst wird oft vernachlässigt, ist zum eigenen Schutz jedoch unabdingbar. Daher gilt es, die Zugriffsberechtigung auf Kundendaten für jeden Mitarbeiter klar zu regeln - und zwar nach der Devise: "Weniger ist mehr". Je weniger Personen hier Einblick haben, desto eher sind die Informationen vor unbefugtem Zugriff geschützt. Vor diesem Hintergrund empfiehlt es sich zum einen, einen Zugriffsschutz von innen zu installieren, zum anderen, die erfolgten Zugriffe mit Hilfe von Spezialsoftware zu protokollieren. Auf diese Weise lassen sich Änderungen in den Bestandsdaten jederzeit nachvollziehen. (kf)