Kategorien
Webdesign

Die größten Gefahren für Ihre Website: SQL-Injections und Cross-Site-Scripting

Die beliebtesten Angriffsziele der Internetkriminellen sind nicht die großen Unternehmen. Täglich attackieren sie kleine und mittlere Webshops und –sites. Sie suchen nach Kunden- und Benutzerdaten, schleusen Malware ein oder bringen den Webserver unter ihre Kontrolle. Am häufigsten nutzen Hacker SQL-Injections und Cross-Site-Scripting. Diese Sicherheitslücken sollten verantwortungsbewusste Webshop- und Websitebetreiber daher schließen.

Banken, Software-Giganten oder andere große Unternehmen investieren viel Zeit und Geld in die Sicherheit ihrer Server. Sollte doch ein Angriff gelingen, so werden die Systeme rund um die Uhr überwacht und ein Einbruch schnell erkannt. Die Sicherheitslücke wird innerhalb weniger Minuten geschlossen. Hacker wissen, bei großen Unternehmen sind die Chancen auf Profit zu gering.

Daher nehmen Internetkriminelle vor allem die Websites kleiner oder mittelständischer Unternehmen ins Visier. Kleine Internethändler schützen ihre Sites nicht in gleichem Maße wie eine Bank. Ihnen fehlt das Know-How oder das Geld für Programmierer. Diese Händler greifen zu konfektionierten Shop-Lösungen. Dadurch sind sie anfällig für Hackerangriffe.

SQL-Injection
Webshops oder Content-Management-Systeme setzen Datenbanken ein, um darin Kundendaten, Artikel und Texte abzulegen. Bei einer SQL-Injection schleust der Angreifer eigene Befehle in die Datenbank des Opfers ein. Dafür nutzt er dessen Webformulare, in die Benutzer Informationen eingeben, etwa um Bestellungen aufzugeben oder sich als Kunde zu registrieren.

Screenshot

Aus diesen Eingaben erzeugt eine Web-Applikation dynamische Datenbankanfragen. Werden dabei die Eingaben von der Web-Applikation nicht ausreichend überprüft, ist die Datenbank gefährdet. Dann ist es nämlich möglich, durch die Eingabe spezieller Zeichenketten in diese Formulare auf Inhalte und sogar das System der Datenbank zuzugreifen. Ein Beispiel: Der SQL-Befehl

  SELECT * FROM 
      
      
        customer WHERE card = ’visa’
      

liefert alle Datensätze der Tabelle „customer“ aus, die in der Spalte „card“ dem Wert „visa“ entsprechen. Wird die konstante Zeichenkette „visa“ durch eine Variable „$card“ ersetzt, sind in Verbindung mit einer Benutzereingabe unterschiedliche Zeichenketten möglich. Werden Werte wie „visa“, „amex“ oder „master“ eingegeben, reagiert die Datenbank erwartungsgemäß. Bei der Eingabe von „’;DROP TABLE CUSTOMER–“ sieht die Datenbank jedoch zwei Befehle, da das Semikolon für sie ein Trennzeichen darstellt:

  1.           SELECT * FROM     customer WHERE card = ’’
  2.           DROP TABLE CUSTOMER       --‘

Die Datenbank führt beide Befehle aus, wobei der zweite die Tabelle „customer“ löscht.

Um in dieser Art auf Inhalte oder das ganze System der Datenbank zugreifen zu können oder sie zu verändern, muss der Angreifer die Struktur der Datenbank kennen. Diese kann er herausfinden, indem er durch gezielte Eingaben Fehlermeldungen der Web-Applikation provoziert. Hat der Hacker genug Fehlermeldungen erhalten, kennt er auch den Aufbau der Datenbank.

Schutz vor SQL-Injections
Um SQL-Injections zu verhindern, müssen die Eingaben in Webformulare sorgfältig geprüft werden. Ein Filter schließt dabei gefährliche Zeichenketten aus, bevor die Applikation sie an die Datenbank sendet. Für die Einstellung des Filters gibt es zwei Strategien:

  1. „Deny all, allow some“-Strategie: Ist die Anzahl der möglichen Benutzereingaben eindeutig bestimmbar, so sind nur diejenigen erlaubt, die in einer definierten Liste geführt werden (zum Beispiel: Alter, Geschlecht, Bundesland)

„Allow all, deny some“-Strategie: Sind die Benutzereingaben nicht eindeutig vorhersehbar, so wird die Einstellung des Filters schwieriger (zum Beispiel: Name, Telefonnummer). In solchen Fällen bestimmt der Seitenbetreiber, dass definierte Elemente, etwa Semikolon oder Bindestriche, nicht in der Eingabe enthalten sein dürfen. Andernfalls verwirft die Applikation die Eingabe.

Eine weitere Methode ist der Einsatz von Prepared SQL-Statements. Dabei erstellt der Programmierer Templates der erwünschten Befehle. Die Daten werden dadurch nur noch als Parameter an einen bereits kompilierten Befehl übertragen. Unerwünschte SQL-Befehle nachträglich einzuschleusen, wird so unterbunden.

Cross-Site-Scripting
Bei Hacker-Angriffen mittels Cross-Site-Scripting, kurz XSS, wird dem Internetbrowser unsicherer Inhalt, also ein bösartiges Script, in einer vertrauenswürdigen Umgebung „untergejubelt“. Der Browser führt dadurch das bösartige Script automatisch aus. Der Hacker ist nun dazu in der Lage, Cookies des Opfers einzusehen, zu manipulieren und zu löschen. Die Folgen können weitreichend sein, da in Cookies Benutzerdaten wie Passwörter gespeichert werden.

Ausgangspunkt ist eine nicht ausreichend gesicherte Web-Applikation, die dynamische Seiten ausliefert. Gefahr entsteht, sobald der Seitenbetreiber seinen Besuchern ermöglicht, Inhalte einzustellen (zum Beispiel: Foren, Gästebücher, Kommentare). Die Angreifer können das bösartige Script einfach in einer Nachricht verpacken:

Screenshot
Der Browser stuft die Website als vertrauenswürdig ein und führt das Script aus.

Oder der Hacker führt seine Opfer mittels Link zu vertrauenswürdigen Seiten, die allerdings anfällig für XSS-Attacken sind (zum Beispiel durch Spam-Mails). Das bösartige Script ist im Link enthalten. Gibt der vertrauenswürdige Server das Script als Inhalt wieder aus, so erkennt der Browser es nicht als Text und führt es aus.

Schutz vor Cross-Site-Scripting
Die Besucher von Websites könnten sich durch das Deaktivieren aller Skripting-Funktionen vor XSS-Angriffen schützen. Da dadurch aber viele Seiten nicht mehr korrekt dargestellt werden, ist diese Variante des Schutzes ungeeignet. So bleibt den Besuchern nur, darauf zu achten, stets die neuesten Updates ihres Browsers installiert zu haben. Damit verbunden ist die Hoffnung, dass alle Sicherheitslücken im Browser geschlossen wurden. Der c’t-Browsercheck gibt über Sicherheit und Unsicherheit des Internetbrowsers Aufschluss.

Die Seitenbetreiber müssen grundsätzlich allen fremden Inhalten misstrauen und diese filtern. Dabei sollten nicht nur „böse“ Eingaben definiert und diese herausgefiltert werden. Besser ist es, sichere Eingaben zu definieren und nur solche zuzulassen. Wird dabei festgestellt, dass ein Inhalt nicht in das zulässige Muster passt, so sollte er auf keinen Fall nochmals ausgegeben werden. Das heißt, keine Fehlermeldungen wie „Ihre Eingabe XY ist ungültig“.

Hilfestellungen beim Schutz vor SQL-Injections und Cross-Site-Scripting
Beim Aufspüren von Sicherheitslücken auf Websites helfen sogenannte Schwachstellen-Scanner. Sie überprüfen Applikationen und Datenbank-Produkte auf mögliche Angriffspunkte für SQL-Injections und Cross-Site-Scripting. Es gibt eine Liste von gängigen kommerziellen und Open Source-Schwachstellen-Scannern.

Web Application Firewalls (WAF) versprechen umfassenden Schutz vor SQL-Injections und Cross-Site-Scripting. OWASP hat eine 25seitige Anleitung über Funktionsweise, Nutzen und Auswahlkriterien zu WAFs (PDF Datei).

Screenshot

Auch das Bundesamt für Sicherheit in der Informationstechnik warnt vor den Gefahren unzureichend gesicherter Web-Applikationen und veröffentlichte den Beitrag Sicherheit von Webanwendungen: Maßnahmenkatalog und Best Practices (PDF Datei). Darin werden neben den Gefahren durch SQL-Injections und Cross-Site-Scripting noch weitere Bedrohungen im Netz geschildert sowie Schutzmaßnahmen erläutert. ™

Erstveröffentlichung 19.08.2008

Kategorien
Webdesign

E-Mail-Response Management Systeme

von Manuel Diwosch

Zu viele E-Mail-Anfragen können Mitarbeiter überfordern. Die Antworten kosten viel Zeit, wodurch Mitarbeiter andere Aufgaben vernachlässigen. E-Mail-Response Management Systeme wirken dem entgegen. Sie verringern den menschlichen Arbeitsaufwand durch Textvorlagen oder automatische Antworten.

Ein E-Mail-Response Management System, kurz ERMS, dient dazu, eine große Menge eingehender E-Mails strukturiert, automatisiert und nachvollziehbar zu bearbeiten. Ein ERMS soll den Antwortprozess beschleunigen, die Effizienz der Mitarbeiter steigern, die Anzahl der gegebenen Antworten in einem bestimmten Zeitraum erhöhen und eine vollständige Dokumentation des E-Mail-Aufkommens und der Bearbeitungsvorgänge ermöglichen. Dabei beantwortet es Anfragen automatisch und selbstständig oder leitet E-Mails an die zuständigen Mitarbeiter weiter.

Unterm Strich soll mittels ERMS (Arbeits-)Zeit und somit auch Geld eingespart werden. Durch die kürzere Wartezeit auf eine Antwort steigt zudem die Kundenzufriedenheit.

Funktionsweise und Ablauf
Das ERMS ist eine datenbankbasierte Anwendung, die mit Mailservern (POP3, IMAP, SMTP) kommuniziert. Es holt die E-Mails von Postfächern ab, bereitet sie auf oder bearbeitet sie und reicht sie danach wieder an den Mailserver zum Versand zurück.

Geht eine E-Mail an einer zentralen Adresse eines Unternehmens ein (zum Beispiel: info@…, office@…), ordnet das ERMS sie als erstes zu. Bei älteren Systemen mittels Schlagwörtern und hinterlegter Regeln. Das System bewertete eine Nachricht als Beschwerde, wenn das Wort „Beschwerde“ darin vorkam. Moderne ERMS analysieren den gesamten Inhalt einer E-Mail und sind lernfähig. Der Anwender legt Kategorien an und stellt Beispielanfragen für jede Kategorie bereit. Die Anwendung lernt ab nun eigenständig, welche Inhalte zu welchen Kategorien gehören. Regeln zu hinterlegen wird dadurch überflüssig.

Durch diese Zuordnung und weitere Analyseverfahren ermittelt die Software, zu welchem Arbeitsprozess die Nachrichten gehören. Den unterschiedlichen Abteilungen des Unternehmens werden Warteschlangen zugeordnet. Darin werden die Anfragen gereiht und als Arbeitsvorrat für die entsprechenden Mitarbeiter gesammelt.

Je nach Einstellung des ERMS wählen die Bearbeiter nun eine Nachricht aus (Pull-Methode) oder bekommen Anfragen zugewiesen (Push-Methode).

Screenshot

Ohne ERMS ordnet ein Mitarbeiter die Anfragen zu. Dabei muss er erst den richtigen Ansprechpartner suchen und die E-Mails dann manuell weiterleiten. Das kostet Zeit und Arbeitsaufwand.

Das Programm ordnet aber nicht nur E-Mails zu. Moderne Systeme sind auch dazu in der Lage, oft gestellte Anfragen automatisch zu beantworten. Zum Beispiel eine Supportanfrage durch das Zusenden eines Download-Links, eines Updates oder Dokuments. Im Idealfall merkt der Kunde gar nicht, dass seine Anfrage nicht durch einen menschlichen Sachbearbeiter beantwortet wurde. Dafür ist allerdings eine hervorragende inhaltliche Analyse der Nachricht durch die Software Voraussetzung. Nur so kann die Kundenanfrage richtig erkannt und kategorisiert werden.

Zuverlässigkeit bei heiklen E-Mails
Nicht jede Frage wird täglich gestellt und manche E-Mails, beispielsweise Beschwerden sind zu heikel, um sie durch eine „Maschine“ beantworten zu lassen. Für diese Fälle legt der Anwender Schwellwerte und Regeln fest, wann ein menschlicher Berater die E-Mail beantworten muss.

Schwellwerte geben Auskunft darüber, mit welcher Trefferquote die Anfrage erkannt wurde. Liegt der Wert für eine Nachricht darunter, so muss ein menschlicher Mitarbeiter die Antwort schreiben.

Regeln stellt der Anwender für heikle Themen auf. Beispielsweise werden Nachrichten wichtiger Kunden nur durch den zuständigen Sachbearbeiter beantwortet oder Beschwerden immer von Menschen behandelt.

Doch selbst wenn das ERMS die Anfrage nicht selbstständig beantwortet, hilft es dem Bearbeiter, schneller eine fundierte und passende Antwort zu geben. Das Programm schlägt dem Mitarbeiter Textbausteine vor und bietet Wissensdatenbanken zum Nachschlagen an.

Screenshot

Wer braucht ein E-Mail-Response Management System?
Ab welchem E-Mail-Aufkommen sich ein ERMS lohnt, hängt vom Geschäftsfeld des Anwenders ab. Als Faustregel gilt: ab 100 bis 150 Mails pro Tag rechnet sich die Anschaffung. Erfordert der Mailverkehr in einem Unternehmen hochwertige Antworten und eine hohe Compliance, so kann sich ein ERMS auch schon bei niedrigerem Mail-Aufkommen lohnen.

Erfüllt eine Firma diese Voraussetzungen, versprechen die Anbieter Ersparnisse von mindestens 40 Prozent an Zeit und Kosten bei der aktiven Kundenkommunikation.

Beispielsweise vertrauen Unternehmen wie Baur Versand, buch.de, FAZ.net und cewe-color auf unterschiedliche E-Mail-Response Management Systeme.

Die Anbieter der ERMS sind meist kommerziell, wie zum Beispiel Novomind, Inexso, ATG oder ITYX. Die Preise für diese Produkte liegen bei mehreren tausend Euro. Aber auch Open Source Systeme wie der Mail Manager von logicalware sind bereits auf dem Markt. ™

Erstveröffentlichung 15.08.2008

Kategorien
Webdesign

Urheberrecht und Webdesign

Ein einzigartiges Webdesign benötigt eine gute Idee, schöpferischen Geist und Kreativität. Daher können Webdesigns auch urheberrechtlich geschützt sein. Doch wer besitzt die Rechte? Der Urheber oder der Auftraggeber? Wer besitzt die Rechte in einem Angestelltenverhältnis? Darf der Urheber sein Webdesign für Werbung in eigener Sache nutzen?

Als Urheberrecht wird das Recht des Urhebers an seiner Werkschöpfung bezeichnet. Wirtschaftliche Interessen und die Ideale des Urhebers am Werk werden darin berücksichtigt. Es greift, sobald die persönliche, geistige Arbeit eine angemessene Schöpfungshöhe erreicht hat. Dafür muss sie besonders kreativ sein und die Individualität des Schöpfers zum Ausdruck bringen. Nur so wird diese Arbeit zum „Werk“.

Die Allianz Deutscher Designer schätzt, dass nur jedes zehnte Webdesign als Werk gilt. Trotzdem können zahlreiche solcher Arbeiten oder einzelne Bausteine durch das Urheberrecht beziehungsweise verwandte Schutzrechte geschützt sein. Dr. Christian Lemke, Rechtsanwalt und Fachanwalt für Gewerblichen Rechtsschutz und IT-Recht, erklärt: „Ob ein bestimmtes Design oder Teile davon schutzfähig sind oder nicht, muss von Fall zu Fall entschieden werden. Es kommt darauf an, ob im Einzelfall eine persönliche geistige Schöpfung vorliegt.“

Screenshot

Wer sich geschützter Elemente im Internet bedient, begeht kein Kavaliersdelikt. Ihm blühen strafrechtliche Konsequenzen und der Urheber hat Unterlassungs-, Auskunfts- und Schadensersatzansprüche. Dabei spielt es keine Rolle, ob das gestohlene digitale Gut gewerblich oder privat genutzt wird.

Wer besitzt die Rechte an einem Webdesign?
Grundsätzlich liegen alle Verwertungsrechte beim Urheber. Er darf anderen mittels Lizenzvertrag Nutzungsrechte einräumen. Darin wird geregelt, ob ausschließliche oder einfache Nutzungsrechte gewährt werden:

  • Wird eine ausschließliche Lizenz erteilt, ist der Lizenznehmer der einzige, der zur Nutzung des Webdesigns berechtigt ist. Selbst dem Urheber ist das in diesem Fall untersagt.
  • Werden einfache Nutzungsrechte eingeräumt, darf der Lizenzgeber auch noch anderen Interessenten dieselben Rechte erteilen, wie dem ersten Lizenznehmer.

Die Lizenzverträge sind für den Webdesigner von entscheidender Bedeutung. Damit bestimmt er die Vervielfältigung, Verbreitung, Ausstellung, öffentliche Wiedergabe und Bearbeitung seines Produkts. Insbesondere reglementiert er den Zugang zu seinem Webdesign im Internet. In den Lizenzverträgen werden also die Rahmenbedingungen für die Verwertung festgesetzt. Sie sind Verhandlungssache.

Vertraglich nicht ausgeschlossen werden kann das gesetzliche Recht auf angemessene Vergütung für die Arbeit des Webdesigners. Auch das Recht auf Urheberbenennung ist im Kern unverzichtbar.

Sonderfall Angestelltenverhältnis
Ist der Webdesigner beim Nutzer seiner Arbeit angestellt, liegen die Verwertungsrechte nicht von Vornherein beim Urheber. „In diesem Fall kommt es darauf an, ob das Erstellen von Webdesigns im Arbeitsvertrag geschuldet ist oder nicht“, erläutert Rechtsanwalt Dr. Christian Lemke, „Gehört es zum vereinbarten Aufgabengebiet des Angestellten, so trifft den Arbeitnehmer die Verpflichtung zur Einräumung der ausschließlichen Nutzungsrechte zur zweckentsprechenden Verwendung seiner Leistungen auf seinen Arbeitgeber.“ Es geht also darum, ob das Webdesign dienstlich oder privat erstellt wurde. Nur wenn es privat entwickelt wurde, besitzt der Urheber auch die Verwertungs- und Nutzungsrechte.

Vorsicht bei Eigennutzung und Eigenwerbung
Will ein Webdesigner nach einem Auftrag, Praktikum oder der Beendigung eines Dienstverhältnisses mit seinen Designs Werbung in eigener Sache machen, muss er die seinem Auftrag- oder Arbeitgeber eingeräumten Nutzungsrechte beachten. Wurde für eine bestimmte Arbeit eine ausschließliche Lizenz erteilt oder lag diese aufgrund eines Arbeitsverhältnisses vor, so darf er das Design nicht auf seiner eigenen Homepage als Arbeitsprobe darstellen, obwohl er der Urheber ist. Dr. Lemke rät dazu, sich in so einem Fall mit dem Lizenzinhaber abzusprechen und eine schriftliche Vereinbarung zu treffen.

Internationale Aufträge
Das Urheberrecht ist von Land zu Land verschieden. Daher ist bei Aufträgen für ausländische Firmen der Territorialitätsgrundsatz zu beachten. Das heißt, für die Frage des Umfangs des Urheberrechtschutzes ist das jeweilige nationale Recht des betreffenden Schutzlandes anzuwenden. „Bei der Gestaltung von Verträgen mit ausländischen Auftraggebern sollte anwaltlicher Rat eingeholt und gegebenenfalls die Anwendbarkeit des deutschen Rechts vereinbart werden. Ich muss mich unbedingt vor Beginn der Arbeit darüber informieren, welche Lizenzen zu vergeben sind und wie die Nutzungsrechte im betreffenden Land gehandhabt werden“, warnt Rechtsanwalt Dr. Lemke.

Sind die gesetzlichen Bestimmungen geklärt, ist man auch im Ausland vor negativen rechtlichen Überraschungen gefeit. ™

Erstveröffentlichung 14.08.2008