Kasper-Spy: Kaspersky-Virenschutz
gefährdet Privatsphäre der Nutzer
Trends & News | c't
deckt auf
Mit seiner Antiviren-Software verspricht Kaspersky Sicherheit und Datenschutz. Durch ein Datenleck
konnten Dritte die Nutzer allerdings jahrelang beim Surfen ausspionieren.
This article is also available in
English
Für unseren großen Test von Antiviren-Software in c’t 3/2019 installierte ich den Virenschutz von Kaspersky auf meinem Arbeitsrechner, um am eigenen Leib zu
erfahren, welchen Mehrwert die Schutzprogramme der großen Antiviren-Hersteller
noch im Alltag bieten.
Die darauffolgenden Wochen und Monate waren wenig
aufregend – die Kaspersky-Software funktionierte im
Wesentlichen genauso gut oder schlecht wie der Windows Defender.
Eines Tages machte ich jedoch eine sonderbare Entdeckung. Ich ließ mir den
HTML-Quelltext einer x-beliebigen Webseite anzeigen und stieß auf die folgende
Zeile Code:
<script
type="text/javascript" src="https://gc.kis.v2.scr.kaspersky-labs.com/9344FDA7-AFDF-4BA0-A915-4D7EEB9A6615/main.js"
charset="UTF-8"></script>
Offensichtlich wurde hier ein externes JavaScript
namens main.js von einer Kaspersky-Domain
nachgeladen. Das ist nicht ungewöhnlich, schließlich kommt heutzutage kaum noch
eine Website ohne externe JavaScript-Ressourcen aus.
Ungewöhnlich wurde es erst, als ich mir den HTML-Text
weiterer Websites anzeigen ließ: Den rätselhaften Code fand ich ausnahmslos auf
jeder Site – sogar auf der Seite meiner Hausbank. Mir schwante, dass die Kaspersky-Software etwas damit zu tun haben muss.
Kaspersky wirbt mit dem Schutz der Privatsphäre. Das von c't endeckte Datenleck hat jedoch
für den gegenteiligen Effekt gesorgt. (Bild: Kaspersky.de)
Ich beschloss, der Sache auf den Grund zu gehen und
wiederholte das Experiment mit Firefox, Edge und
Opera. Auch hier stieß ich überall auf den Code. Da keine verdächtigen
Browser-Erweiterungen installiert waren, die für diesen Effekt verantwortlich
sein konnten, ließen meine Versuche nur einen Schluss zu: Der Kaspersky-Virenschutz manipulierte ungefragt meinen
Datenverkehr und schleuste den Code ein. Bisher kannte ich dieses Verhalten nur
von Online-Banking-Trojanern, die auf diese Weise Bankenseiten manipulieren, um
etwa das Überweisungsziel zu ändern.
Doch wozu macht Kaspersky
das? Um diese Frage zu klären, untersuchte ich das eingeschleuste Skript
main.js. Anscheinend ist es unter anderem dafür zuständig, grüne Schutzschilde
hinter Google-Suchtreffern einzublenden, wenn ein Link nach Einschätzung von Kaspersky sauber ist. Damit könnte meine Analyse zu Ende
sein, doch ein kleines Detail ließ mir noch keine Ruhe. In der Adresse, von der
das Kaspersky-Skript geladen wurde, steckt nämlich
eine verdächtige Zeichenfolge:
https://gc.kis.v2.scr.kaspersky-labs.com/9344FDA7-AFDF-4BA0-A915-4D7EEB9A6615/main.js
Der fett markierte Abschnitt ist nach einem
charakteristischen Muster zusammengesetzt. Der Aufbau passt zu einer
sogenannten UUID – das steht für Universally Unique Identifier. Solche IDs
nutzt man, um Dinge eindeutig identifizierbar zu machen. Doch wen oder was kann
man über die Kaspersky-ID identifizieren?
Ich weitete mein Experiment aus und installierte die Kaspersky-Software auf weiteren Rechnern. Auch auf den
anderen Systemen schleuste Kaspersky das JavaScript
ein. Ich entdeckte jedoch einen entscheidenden Unterschied: Die UUID in der
Quelladresse war auf jedem System eine andere. Die IDs waren persistent und
änderten sich auch nach mehreren Tagen nicht. Damit war klar, dass sich eine ID
dauerhaft einem bestimmten Rechner zuordnen lässt.
Die verdächtige ID
Irritiert hat mich auch der Ort, an dem ich auf die ID
stieß: Die Kaspersky-Software schleuste sie direkt in
den HTML-Code der Websites ein. Und das ist eine schlechte Idee, weil andere
Skripte, die im Kontext der Website-Domain laufen, jederzeit auf den HTML-Code
zugreifen können – und somit auch auf die eingeschleuste Kaspersky-ID.
Das bedeutet im Klartext, dass jede beliebige Website
die Kaspersky-ID des Nutzers einfach so auslesen und
zum Tracking missbrauchen kann. Wenn diese Vermutung stimmt, dann hat Kaspersky eine gefährliche Tracking-Möglichkeit geschaffen,
die jedes Cookie alt aussehen lässt: In diesem Fall können Websites die Kaspersky-Nutzer über Browsergrenzen hinweg verfolgen. Doch
damit nicht genug: Das Super-Tracking kann dann sogar den Inkognito-Modus des
Browsers überwinden und führt diesen somit ad absurdum.
Durch das Datenleck konnten Websites
unbemerkt die individuelle ID der Kaspersky-Nutzer
auslesen. Dadurch war umfassendes Tracking möglich – sogar im Inkognito-Modus.
Doch konnte ein Unternehmen, das sich seit über
zwanzig Jahren der Sicherheit und Privatsphäre seiner Kunden verschrieben hat,
so ein offensichtliches Problem übersehen haben? Ich beschloss, die Probe aufs
Exempel zu machen. Eine halbe Stunde später hatte ich eine einfache Webseite
gebastelt, welche die Kaspersky-ID der Besucher
automatisch auslesen und speichern sollte.
Und sie funktionierte auf Anhieb. Nachdem ich die IDs
einiger Testrechner eingesammelt hatte, hinterlegte ich im Code meiner
Demoseite auch noch die Namen der Kollegen, denen die Rechner gehörten. Von da
an konnte ich sie sogar persönlich begrüßen, wenn sie die Seite öffneten – ganz
gleich, welchen Browser sie nutzten und wie oft sie die Cookies gelöscht
hatten. Auch der Inkognito-Modus bot keinen Schutz vor dem Tracking. Spätestens
jetzt war mir klar, dass ich auf ein ernstes Problem gestoßen war.
Kontaktaufnahme
Um niemanden unnötig in Gefahr zu bringen, informierte
ich zunächst Kaspersky über meine Erkenntnisse. Die
deutsche Forschungsabteilung des Unternehmens antwortete kurz darauf, dass man
sich die Sache ansehen werde. Rund zwei Wochen später hatte dann auch das
Hauptquartier im russischen Moskau den Fall analysiert. Das von mir entdeckte
Problem sei real und betreffe sämtliche Consumer-Versionen der Kaspersky-Software für Windows – von der Gratis-Version
über Kaspersky Internet Security bis hin zu Total
Security. Auch in Small Office Security für kleine Unternehmen klaffte die
Lücke. Etliche Millionen Nutzer waren demnach einem Datenschutzrisiko ausgesetzt.
Meine Rückfragen ergaben, dass das Leck schon seit den
2016er Versionen besteht, die im Herbst 2015 erschienen sind. Wer ebenfalls auf
das Datenleck aufmerksam wurde, konnte es also fast vier Jahre ausnutzen. Nach
Einschätzung des Herstellers ist „solch eine Attacke zu komplex und nicht
profitabel genug für Cyberkriminelle“, es sei daher unwahrscheinlich, dass die
Lücke bereits missbraucht wurde. Ich sehe das jedoch anders: Wenn ich es
schaffe, in kürzester Zeit eine Webseite zu basteln, welche die ID ausliest und
speichert, warum sollte es dann im Laufe von vier Jahren nicht auch anderen
gelungen sein? Es gibt bekanntlich einen Haufen Unternehmen, die darauf
spezialisiert sind, Webseitenbesucher so detailliert wie möglich
auszuspionieren.
c't nachgehakt: Kaspersky-Tracking
– c't-Redakteur Ronald Eikenberg über die
Tracking-Lücke im Kaspersky-Virenschutz
Die Katze ist aus dem Sack
Da Kaspersky anscheinend den
Ernst der Lage erkannt hatte und mir einen Patch in Aussicht stellte, wartete
ich ab. Seit Juni wird der „Patch F“ tatsächlich verteilt und im Juli
veröffentlichte der Hersteller einen Sicherheitshinweis (Advisory), in dem Problem und Lösung
beschrieben sind. Ich habe Kaspersky gebeten, der
Schwachstelle eine sogenannte CVE-Nummer zuzuweisen, also eine weltweit gültige
Identifikationsnummer für Sicherheitslücken. Seitdem hat das Kind auch einen
Namen, es heißt CVE-2019-8286. Durch das Kaspersky-Advisory
und die CVE-Eintragung sind auch die Sicherheitsbehörden auf das Problem
aufmerksam geworden. Dadurch hat etwa das CERT-Bund des Bundesamts für Sicherheit
für Informationstechnik (BSI) vor dem Informationsleck gewarnt.
Nachdem Kaspersky den Patch
verteilt hatte, ließ ich es mir nicht nehmen, meine Experimente zu wiederholen.
Die Software schleust immer noch eine ID ein – nur ist diese jetzt bei allen
Nutzern identisch: FD126C42-EBFA-4E12-B309-BB3FDD723AC1. Eine Website kann
dadurch nicht länger einzelne Nutzer wiedererkennen. Es ist jedoch weiterhin
möglich, herauszufinden, ob ein Besucher die Kaspersky-Software
auf seinem System installiert hat und wie alt diese ungefähr ist. Ein Angreifer
kann diese Information nutzen, um einen auf die Schutzsoftware zugeschnittenen
Schädling zu verteilen oder auf eine passende Scam-Seite
umzuleiten – frei nach dem Motto: „Ihre Kaspersky-Lizenz
ist abgelaufen. Bitte geben Sie Ihre Kreditkartennummer ein, um das Abo zu
verlängern“. Ich habe auch dieses Problem wieder an Kaspersky
gemeldet.
Wer auf Nummer sicher gehen will, kann die verantwortliche Funktion in der Kaspersky-Software deaktivieren. Sie finden den Ausschalter, indem Sie im Hauptfenster unten links auf das Zahnradsymbol klicken und dann auf Erweitert/Netzwerk. Deaktivieren Sie anschließend unter „Verarbeitung des Datenverkehrs“ die Option „Skript für die Interaktion mit Webseiten in den Datenverkehr einbinden“. (rei
)