Das Internet hat unser Leben enorm bereichert. Heute können wir innerhalb von Augenblicken über den ganzen Globus hinweg kommunizieren. Dank dem Internet verfügen wir über Plattformen, auf die wir über alle möglichen Geräte und von überall her zugreifen können. Es ist inzwischen Teil unserer Lebensführung und ermöglicht uns den Zugriff auf Wissen wie nie zuvor in der Geschichte der Menschheit.
Grosse Fortschritte bringen bekanntlich auch grosse Probleme. Die Grundarchitektur des Internets, die ja verteilter und vernetzter Natur ist, hat auch neue Einfallstore für Cyberkriminelle eröffnet.
Web-basierte Angriffe gehören inzwischen zum «täglichen Brot» von Cybercrime-Profis. Ich spreche bewusst von Profis, denn die Tage der Gelegenheitshacker sind vorbei. Gegenwärtig sehen wir uns mit organisierter, oft staatlich unterstützter Cyberkriminalität konfrontiert.
Dieser Beitrag beleuchtet einige der gängigsten Web-basierten Angriffe. Wir müssen sie kennen, um einerseits eine widerstandsfähige, effektive Sicherheitsstrategie zu entwickeln und um andererseits zeitgemässe Ansätze für den Umgang mit diesen Bedrohungen zu finden.
Web-Angriff 1: Angriff der Killerdatenbanken
Die Datenbank ist eine grundlegende Komponente der Web-Architektur. Datenbanken speichern Informationen, die Bausteine des Internets. Diese Informationen können alle möglichen Formen annehmen – von der Sozialversicherungsnummer bis zur Anmeldeinformation. Webdatenbanken sind das Ziel von «injection attacks» («Einschleusungsattacken») genannten Angriffen. Das Unternehmen Veracode hat in einem Statusbericht festgehalten, dass SQL-Injection-Angriffe zu den am meisten verbreiteten Web-Attacken gehören.
Bei den Datenbanken gibt es zwei Grundtypen: SQL- und NoSQL-basierende Systeme. Beide sind potenziell für Injection-Angriffe empfänglich. Beim Angriff auf eine Webdatenbank nutzt der Hacker ein Eingabefeld auf der Web-Benutzerschnittstelle, das normalerweise für Datenbankabfragen verwendet wird. Das kann zum Beispiel das Eingabefeld für den Benutzernamen oder das Passwort sein (wobei die Abfrage mittels Senden-Schaltfläche ausgelöst wird). Statt einen Benutzernamen oder ein Passwort anzugeben, fügt der Hacker einen SQL-Befehl ein – oder im Fall einer NoSQL-Datenbank einen JSON-String bzw. eine JSON-Zeichenkette. Der Schadcode wird an die Datenbank gesandt, wo der Befehl wie im Fall eines erwarteten Strings (z.B. ein Benutzername) ausgeführt wird. Angestrebtes Ziel von Injection-Angriffen auf Datenbanken ist Datenexport. Cyberkriminelle sind darauf aus, personenbezogene Daten («Personally Identifying Data, PII») zu erbeuten, Konten zu löschen, Scheinkonten einzurichten und Daten zu verändern. Injection-Angriffe können sogar dazu verwendet werden, Denial-of-Service-Attacken auszulösen.
Es ist sehr wichtig für Organisationen, ihre Datenbanken gegen solche Angriffe zu schützen, da Verletzungen der Datensicherheit und des Datenschutzes Geld, Zeit und womöglich den Ruf kosten. Es gibt jedoch Methoden und Werkzeuge, um Angriffe dieser Art zu verhindern. Dazu gehört etwa sicherzustellen, dass nur erwartete Strings an die Datenbank übermittelt (Parameterabfragen) oder dass ganze Abfragen in der Datenbank gespeichert (gespeicherte Prozedur) und bloss noch die «Lücken ausgefüllt» werden können. Auch Werkzeuge wie Web Application Firewalls (WAF) sind ein wesentlicher Bestandteil einer Verteidigung gegen SQL-Injection-Angriffe. Laut dem Ponemon Institute wurden 2013 zwei Drittel der US-amerikanischen Unternehmen Opfer von SQL-Injection-Angriffen. Für die Vermeidung von Angriffen befürworteten in der gleichen Studie 88 Prozent der Befragten den Einsatz von Tools wie zum Beispiel WAF.
Eine der berühmtesten SQL-Injection-Attacken wurde von Albert Gonzalez gegen Geldautomaten durchgeführt. 170 Millionen Kreditkarten waren davon betroffen. Jüngeren Datums ist der SQL-Injection-Angriff auf SAP, mit der die Kontrolle über eine ihrer medizinischen Applikationen übernommen wurde. Das SQL-Injection-Vorgehen bereitet Unternehmen mit Datenbanken und Webschnittstellen massive Kopfschmerzen.
Web-Angriff 2: Wenn’s denn nicht kaputt ist…
Die Angriffsgruppe «Broken authentication and session management» (fehlerhafte bzw. “kaputte” Authentisierung und Sitzungsmanagement) fasst Schwachstellen zusammen, die zu einem Traum für Hacker werden können. Diese Art der Verwundbarkeit steht inzwischen auf dem zweiten Rang in der OWASP TOP 10, einer Auflistung der kritischsten Schwachstellen in Webanwendungen.
Die Authentisierung kann auf verschiedene Weise umgangen werden («broken»). Dazu gehören:
- Brute-Force-Angriffe («rohe Gewalt»): Qualitativ mangelhafte Authentisierung, wie zum Beispiel einfach zu erratende Passwörter und Benutzernamen, gilt es zu vermeiden. Zu den einfachsten und effizientesten Werkzeugen zur Vermeidung von Brute-Force-Angriffen gehören Richtlinien zur Schaffung von starken und dennoch benutzerfreundlichen Passwörtern und Benutzernamen.
- Abfangen von unverschlüsseltem Datenverkehr: Es ist einfacher als es klingt. Es gibt frei erhältliche Geräte zum Abfangen unverschlüsselter Daten, die von Penetrationstester verwendet werden und weniger als US$ 100 kosten. Man-in-the-Middle-Angriffe können leicht entstehen, wenn der Cyberkriminelle die Anmeldedetails von Nutzern und die Session-ID kapern kann, um sich dann als jener Nutzer auszugeben. SSL/TLS-Verschlüsselung muss für alle zugänglichen Teile einer Webapplikation eingesetzt werden, besonders dort, wo die Website Nutzereingaben sammelt.
- Schlecht umgesetztes Session-Management: HTML ist zustandlos („state-less“) und deshalb wird nichts zwischen mehreren Seitenanfragen gespeichert. Bei komplexeren Webanwendungen, d.h. bei jenen, die Anmeldedaten verlangen, braucht es Mechanismen, um diese Details zwischen den Seitenaufrufen zu speichern (damit der Nutzer über die gesamte Sitzung hinweg eingeloggt bleibt). Eine schlechte Umsetzung in diesem Bereich – beispielsweise vorhersehbare Session-IDs – kann zur «Sitzungsentführung» (session highjacking) und somit zum Diebstahl der Anmeldedaten führen.
- Phishing: Phishing im Allgemeinen und Spear Phishing im Speziellen entwickelt sich zur Waffe der Wahl für Cyberkriminelle, um an Anmeldedaten zu kommen. Oft haben sie es auf Administratorenzugriffsrechte abgesehen. Wie wirkungsvoll das ihnen gelingt, belegen die zahlreichen Berichte über massive Vorfälle in den letzten Jahren. Die Implementierung einer Zwei-Faktor-Authentisierung kann das Risiko mindern.
- Kontowiederherstellung: Um den Missbrauch von Anmeldedaten zu verhindern, braucht Ihre Webanwendung Mechanismen für die Passwortwiederherstellung, die sicher und zugleich nutzerfreundlich ausgelegt sind. Stellvertretend für diese Problematik steht der Hackerangriff auf private Fotos von Prominenten 2014 («celebrity hack»). Bei diesem Vorfall wurden intime Aufnahmen weiterverbreitet, nachdem sich Cyberkriminelle Zugang zu einem Nutzerkonto über ein fehlerhaftes Passwortwiederherstellungssystem verschafft hatten. Es ist entscheidend, das System mit einer zusätzlichen Verifizierungsstufe vor der eigentlichen Wiederherstellung auszurüsten, damit solche Schwachstellen nicht ausgenützt werden.
Authentisierung gehört zu den anspruchsvollsten Aspekten der Webapplikationssicherheit. Entsprechend weist die Implementierung verschiedene Facetten auf. Hier tauchen Stichwörter wie schwache kryptografische Standards, vorhersehbare Login-Credentials und Session-Management-Probleme auf. All dies kann mit dem richtigen Werkzeug berücksichtigt werden. Dazu gehören zum Beispiel brauchbare Passwortrichtlinien, die Hinzunahme eines zweiten Faktors sowie die konsequent umgesetzte Verschlüsselung. Die wohl einfachste und widerstandsfähigste Lösung gegen die geschilderten Attacken ist der Einsatz eines Reverse Proxy mit sicherer Authentisierung und Session-Management.
Web-Angriff 3: XSS – die falsche Grösse…
Cross-Site-Scripting oder XSS (deutsch Webseitenübergreifendes Skripting) ist eine Variation der Injektion-Attacke. In diesem Fall wird schädlicher JavaScript-Code ins Backend der Webdatenbank eingeschleust. Zur Einschleusung werden verschiedene Mitteln benutzt, zum Beispiel ein Blogkommentar, eine Anzeige oder ein Video. XSS ist eine äusserst beliebte Angriffsvariante und wird u.a. dazu genutzt, um Malware zu verbreiten, Nutzer-Sessions zu kapern, illegales Material zu zeigen oder gar um Session-Cookies und Login-Credentials von Nutzern zu stehlen. Da das Bewusstsein für klassische SQL-Injection-Angriffe steigt und diese Angriffsschiene zunehmend abgeblockt wird, werden Cyberkriminelle vermehrt auf XSS setzen.
Der Einsatz einer WAF gegen XSS ist eine gute Strategie, doch um wirklich effektiv zu sein, muss dies über alle Domains und Sub-Domains hinweg geschehen, weil sonst der XSS-Angriff einfach ein anderes Einfallstor findet – keine Türe darf offen stehen…
Das Open Web Application Security Project OWASP führt XSS-Angriffe auf Platz 3 in der Top-Ten-Liste der Sicherheitslücken. Ein neuer Vektor ist bekannt unter dem Begriff Malvertising. Beim Malvertising missbraucht ein Cyberkrimineller eine Online-Werbeanzeige oder ein Video, um Schadcode in das Gerät des Nutzers zu schleusen. Dies gelingt indem Schwachstellen im Browser oder in Software wie Adobe Flash ausgenutzt werden. Dies wird immer mehr zum Problem. Googles Double Click Netzwerk wurde kürzlich infiziert und musste sich in der Folge von über 350 Millionen «bösen Werbungen» befreien. XSS-Angriffe werden oft mit der «drive by download» Methode kombiniert. Dabei wird ein Nutzer automatisch (ohne Zutun des Nutzers) auf eine betrügerische Website umgeleitet, wenn eine infizierte Werbeanzeige erscheint. Typischerweise nutzt ein „drive by download“ ein Exploit-Kit wie Angler Toolkit, um Schwachstellen auf dem Gerät des Nutzers aufzuspüren und es mit Malware zu infizieren.
Web-Angriffe auf Distanz halten
Die drei geschilderten Arten von Attacken auf die Webapplikationssicherheit sind Teil einer komplexen Mischung von Vektoren und Akteuren, die ihren Vorteil über Softwareschwachstellen, Injection-Methoden und Social Engineering suchen. Die Aufzählung ist natürlich alles andere als vollständig, denn es gibt viele Arten von Angriffsmethoden und ohne Zweifel werden weitere dazukommen. Viele Angriffe auf Webanwendungen setzen die eine oder andere Form von Nutzerinteraktion voraus. Diese kann sich auf einer Benutzeroberfläche abspielen oder über Phishing E-Mails manifestieren, die Nutzer auf eine gefälschte Website locken. Berührungspunkte, die Menschen involvieren, müssen bei Web-basierten Angriffen immer berücksichtigt werden.
Webapplikationsbedrohungen gehören zu unserer Alltagerfahrung, die mit unserem offenen Internet zu tun hat, das uns eine Fülle von Services für das Allgemeinwohl bietet. Doch wir können diese Bedrohungen beherrschen und zwar durch waches Gewahrsein, Ausbildung und die richtigen Abwehrmassnahmen, wie sie im Text geschildert wurden. Wir können unser offenes Web schützen. Wesentlichen Anteil an unserer Abwehr haben Werkzeuge und Methoden wie Web Application Firewalls, sorgfältig umgesetzte Credential Policies sowie risiko-angepasste Authentisierungsprozesse. Dies schafft nicht nur eine sicherere Umgebung für die eigene Organisation, sondern erhöht auch die Sicherheit für alle, die mit unseren Services in Kontakt kommen.