Phishing durch „Entführung“ von Browsertabs

11. September 2014 um 16:43 Uhr von Sabine Becker

Es gibt mal wieder eine neue Phishing-Methode. Diesmal werden Nutzer nicht durch E-Mails dazu veranlaßt, auf Fake-Seiten zu gehen, um dort ihre Zugangsdaten für Bankkonten, eBay, Mailpostfächer usw. einzugeben. Diese neue Variante ist etwas trickreicher und setzt voraus, daß der Angreifer eine vom Nutzer besuchte Website vorher zumindest teilweise übernommen hat.

Immer wieder erzählen mir Menschen, daß sie eine Menge Browser-Tabs offenstehen haben und dann schon gar nicht mehr wissen, was auf welchem Tab liegt. Das kann vor allem passieren, wenn Leute ihren Rechner und damit auch ihren Browser über Tage und Wochen durchlaufen lassen.

Und ich höre regelmäßig, daß immer noch viel zu viele Nutzer keine JavaScript-Blocker wie NoScript einsetzen – weil dann ja auf so vielen Websites so vieles nicht mehr funktioniert.

Tatsächlich gibt es Websites, die ohne eingeschaltetes JavaScript gerade mal ihren Seitenkopf mit dem Logo ausliefern, die Inhalte aber nicht anzeigen. Der Sinn ist üblicherweise, daß auf jeden Fall auch die Werbung mit eingeblendet werden kann, oder anders: Daß man seine Inhalte nicht zeigen will, wenn die Nutzer nicht auch die Werbung angucken. Daß die Nutzer damit ihr System für Angriffe öffnen, ist den Anbietern dabei herzlich egal.

Denn JavaScript für eine Site zu erlauben bedeutet, dem Inhaber zu erlauben, Code auf dem eigenen Rechner auszuführen. Es gehört schon ein gewisses Vertrauen dazu: Vertraue ich dem Anbieter dieser Website dahingehend, daß er mit der Freigabe keine bösen Dinge auf meinem System treiben wird? Und: Vertraue ich ihm dahingehend, daß seine Site gut genug gepflegt wird, um nicht übernommen zu werden?

Als „bösem“ Website-Betreiber oder als jemand, der eine Site übernommen hat, steht einem Angreifer nämlich eine doch recht interessante Angriffsmethode zur Verfügung, um eine angezeigte Site zu verändern und einen Nutzer dazu zu animieren, Zugangsdaten einzugeben. Aza Raskin nennt diese Methode Tabnabbing. Dabei passiert folgendes:

Der Nutzer geht auf eine Website, läßt den Browsertab offen und wechselt auf einen anderen Browsertab oder in eine ganz andere Anwendung. Diesen Wechsel kann der Angreifer über ein JavaScript feststellen. Ebenso kann der Angreifer mit Hilfe eines solchen Scripts feststellen, welche bekannten Webdienste der Besucher so verwendet. Dabei sucht er gezielt nach den Plattformen, für die er Login-Daten abgreifen möchte.

Wird so ein Tab also nun eine Weile nicht beachtet, dann ersetzt das Script die gesamte Anzeige, zum Beispiel durch den Login von GMail: Das Favicon – das ist das kleine Bildchen, das im Browsertab angezeigt wird – wird zu dem von GMail. Der Text daneben wird in „Gmail: Email from Google“ geändert. Der Seiteninhalt wird durch eine überzeugend echt aussehende Kopie der Login-Seite von GMail ersetzt

Schaut der Nutzer dann gelegentlich über seine Tabs, zum Beispiel, weil er was sucht, dann fällt ihm der Tab mit dem GMail-Login auf. Er könnte nun denken, er habe den Login schon offenstehen gehabt und sich nur noch nicht eingeloggt, oder er sei vielleicht aus Sicherheitsgründen ausgeloggt worden. Auf den URL guckt man dann vermutlich eher nicht mehr: Wir reagieren leichter und schneller auf Grafik als auf reinen Text.

Wenn der Nutzer dann seine Zugangsdaten eingibt, gehen die direkt zum Angreifer – und der loggt den Nutzer damit per Weiterleitung (wiederum mit JavaScript) tatsächlich bei Google Mail ein. Aber nur noch dieses eine Mal: Beim nächsten Versuch dürfte das Paßwort dann geändert sein.

Das klingt nach einer Menge Aufwand für die Übernahme eines Accounts. Aber leider sind die Voraussetzungen dafür, daß der Angriff gelingen kann, viel zu gut und massenweise verbreitet:

  • Einige Webdienste haben sehr viele Nutzer – so viele, daß man praktisch davon ausgehen kann: Die meisten Angegriffenen werden mindestens einen davon benutzen.
  • Eine Menge Leute lassen alle Websites JavaScript ausführen.
  • Viele offene Tabs sind auch keine Seltenheit.
  • Übernommene Websites leider auch nicht.

Letzteres sehe ich nicht nur an den Einbruchsversuchen bei unseren und den von uns betreuten Blogs. Auch in Spamkommentaren sehe ich massenweise Links zu aufgemachten Blog-Installationen, Foren und Content Management Systemen (CMS); folge ich diesen Links testweise, dann sehe ich, daß beispielsweise eine Kirchengemeinde oder eine Apotheke unfreiwillig gefälschte Modeartikel bewirbt. Diese Veränderungen bleiben oft genug wochen- bis monatelang aktiv, bis sie mal jemand bemerkt und beseitigt oder die Site zumindest vorübergehend ganz dicht macht.

Die Verantwortung dafür, solche Angriffs-Szenarien zu verhindern, liegen also auf beiden Seiten, sowohl bei Webseiten-Betreibern als auch bei Webseiten-Besuchern.

Seiten- und Serverbetreiber:

  • Logins direkt zum Webspace nur mit sftp (secure FTP), kein ungesichertes FTP. Oder, noch besser, ssh/scp.
  • Starke Paßwörter mindestens überall da, wo sich generell Menschen mit höheren Rechten einloggen können (Administratoren, Redakteure, Moderatoren etc.).
  • Plugins zu Webanwendungen nicht aus beliebigen, sondern nur aus vertrauenswürdigen Quellen installieren.
  • Alles, was nötig ist, um eine Website betrachten zu können, sollte ohne JavaScript funktionieren. JavaScript-Funktionen sollten im Normalfall nur Zusatzfunktionen, keine Basisfunktionen der Site darstellen.
  • Zeitnah Updates für das Betriebssystem einspielen.
  • Zeitnah Updates auf die Webserver-Software einspielen.
  • Zeitnah Updates auf eingesetzte serverseitige Sprachen, insbesondere (aber nicht nur) PHP einspielen.
  • Zeitnah Updates aller Webanwendungen durchführen.
  • Und Backups sowieso. 🙂

Webseiten-Besucher:

  • Bei einem Login immer den URL prüfen.
  • Ist https aktiv? Es schadet nicht, trotzdem gelegentlich mal ins Zertifikat zu schauen.
  • JavaScript nicht generell zulassen, ggf. ein geeignetes Browser-Plugin – aus vertrauenswürdiger Quelle! – verwenden. Bei Sites, die selten oder nur einmal besucht werden, JavaScript über das Plugin nur temporär zulassen.
  • Websites, die ohne JavaScript nicht benutzbar sind, möglichst meiden, wenn ihnen nicht vertraut werden kann.

Und wie gesagt: Vertrauen heißt nicht nur, sich darauf zu verlassen, daß der Betreiber selbst keinen Unsinn anstellt, sondern auch, daß die Site nicht aufgemacht wurde.

Wir helfen gerne sowohl Betreibern als auch Nutzern, die Sicherheit im WWW zu verbessern.

Kommentieren