Kaspersky: Sorge um Spionagefunktion im Virenschutz

Kaspersky Website EN

Ein unerwarteter Fund auf meinem Bürechner offenbarte ein besorgniserregendes Datenaustrittsproblem, verursacht durch die Antiviren-Software von Kaspersky. Ursprünglich hatte ich die Software installiert, um den versprochenen Mehrwert im alltäglichen Gebrauch zu erleben. Als Journalisten des c’t Magazins testen wir regelmäßig Antiviren-Software, und dies war Teil eines Tests für unsere c’t-Ausgabe 3/2019.

Die folgenden Wochen und Monate schienen wenig Aufregendes zu bieten – die Kaspersky-Software funktionierte im Wesentlichen genauso gut oder schlecht wie der Windows Defender. Eines Tages jedoch machte ich eine seltsame Entdeckung. Ich betrachtete den HTML-Quellcode einer beliebigen Website und stieß auf folgende Codezeile:

Offensichtlich wurde ein externes JavaScript namens main.js von einer Kaspersky-Domain geladen. Dies ist nicht ungewöhnlich, da eine Website heutzutage kaum noch ohne externe JavaScript-Ressourcen auskommt. Als ich jedoch den HTML-Quellcode anderer Websites überprüfte, die in meinem Browser angezeigt wurden, fand ich auf jeder einzelnen Seite denselben seltsamen Code. Ohne Ausnahme wurde selbst auf der Website meiner Bank ein Skript von Kaspersky eingeschleust. Dies weckte in mir den Verdacht, dass die Kaspersky-Software damit etwas zu tun haben könnte.

Kaspersky Website ENKaspersky Website EN

Kaspersky wirbt mit dem Schutz der Privatsphäre. Der von c’t aufgedeckte Datenaustritt bewirkte jedoch das Gegenteil.

Um dies zu untersuchen, experimentierte ich mit den Webbrowsern Firefox, Edge und Opera. Wieder tauchte überall dieselbe Codezeile auf. Da ich keine verdächtigen Browser-Erweiterungen installiert hatte, die dafür verantwortlich sein könnten, lag die einfache Schlussfolgerung nahe, dass Kasperskys Virenschutz meinen Datenverkehr manipulierte. Ohne meine Erlaubnis injizierte er diesen Code. Zuvor hatte ich ein solches Verhalten nur von Online-Banking-Trojanern beobachtet. Das sind Schadprogramme, die darauf ausgelegt sind, Bank-Websites zu manipulieren, um beispielsweise heimlich den Empfänger einer Geldüberweisung zu ändern. Aber was zum Teufel tat Kaspersky dort?

Meine erste Untersuchung des Kaspersky-Skripts main.js zeigte mir, dass es unter anderem grüne Icons bei Google-Suchergebnissen anzeigt, wenn Kaspersky glaubt, der entsprechende Link führe zu einer sauberen Website. Hier hätte meine Analyse enden können, doch es gab dieses eine kleine Detail: Die Adresse, von der das Kaspersky-Skript geladen wurde, enthielt eine verdächtige Zeichenkette:

https://gc.kis.v2.scr.kaspersky-labs.com/<strong>9344FDA7-AFDF-4BA0-A915-4D7EEB9A6615</strong>/main.js

Der fett markierte Teil hat ein charakteristisches Muster. Die Struktur entspricht einem sogenannten Universally Unique Identifier (UUID). Diese IDs werden verwendet, um Dinge, nun ja, eindeutig zu identifizieren. Aber wer oder was konnte anhand der Kaspersky-ID identifiziert werden?

Weiterlesen >>  Revolutionäre Adobe Fotobearbeitung: Neue Photoshop-Innovationen

Ich erweiterte mein Experiment und installierte die Kaspersky-Software auf anderen Computern. Kaspersky injizierte auch auf diesen Systemen JavaScript. Dabei entdeckte ich jedoch einen entscheidenden Unterschied: Die UUID in der Quelladresse war auf jedem System anders. Die IDs waren persistent und änderten sich auch nach mehreren Tagen nicht. Es war also klar, dass jeder Computer eine eigene, dauerhaft zugewiesene ID besaß.

Die verdächtige ID

Weiter irritierte mich die Platzierung der ID: Die Kaspersky-Software injizierte sie direkt in den HTML-Quellcode jeder Website. Das ist eine bemerkenswert schlechte Idee. Andere Skripte, die im Kontext der Website-Domain laufen, können jederzeit auf den gesamten HTML-Quellcode zugreifen, das bedeutet, sie können die Kaspersky-ID auslesen.

Mit anderen Worten: Jede Website kann die Kaspersky-ID eines Nutzers auslesen und für Tracking-Zwecke verwenden. Wenn derselbe Universally Unique Identifier wiederkehrt oder auf einer anderen Website desselben Betreibers erscheint, können diese erkennen, dass derselbe Computer genutzt wird. Wenn diese Annahme zutrifft, hat Kaspersky einen gefährlichen Tracking-Mechanismus geschaffen, der Tracking-Cookies alt aussehen lässt. In diesem Fall können Websites Kaspersky-Nutzer verfolgen, selbst wenn diese zu einem anderen Browser wechseln. Schlimmer noch, das Super-Tracking kann sogar den Inkognito-Modus des Browsers überwinden.

POC FF Private AST SCPOC FF Private AST SC

Der Datenaustritt ermöglichte Websites, die individuelle ID von Kaspersky-Nutzern unbemerkt auszulesen. Dies machte ein weitreichendes Tracking möglich – selbst im Inkognito-Modus.

Aber konnte ein Unternehmen, das sich seit über zwanzig Jahren der Sicherheit und Privatsphäre seiner Kunden verschrieben hat, ein derart offensichtliches Problem übersehen? Ich beschloss, es auf die Probe zu stellen. Eine halbe Stunde später hatte ich eine einfache Website erstellt, die die Kaspersky-ID von Besuchern automatisch auslas und speicherte.

Weiterlesen >>  Firefox für Mac OS herunterladen und installieren: Ihr umfassender Leitfaden

Ich fürchte, es funktionierte einwandfrei. Nachdem ich die IDs mehrerer Testcomputer gesammelt hatte, speicherte ich auch die Namen der Kollegen, denen die Computer gehörten, im Code meiner Demoseite. Von diesem Moment an begrüßte mich meine Testseite persönlich, wenn sie die Seite öffneten – egal welchen Browser sie nutzten oder wie oft sie Cookies löschten. Selbst der Inkognito-Modus bot keinen Schutz vor meinem Kaspersky-infizierten Tracking. An diesem Punkt war klar, dass es sich um ein ernstes Sicherheitsproblem handelte.

Kontaktaufnahme

Im c’t Magazin bemühen wir uns, Nutzer keinen Risiken auszusetzen. Daher informierte ich Kaspersky zunächst über meine Erkenntnisse. Die Forschungsabteilung des Unternehmens antwortete umgehend. Man würde sich der Sache annehmen. Etwa zwei Wochen später hatte die Zentrale in Moskau, Russland, den Fall analysiert. Das von mir entdeckte Problem wurde als real eingestuft. Es betraf alle Consumer-Versionen der Kaspersky-Software für Windows, von der kostenlosen Version über Kaspersky Internet Security bis hin zu Total Security. Zusätzlich war auch die Variante Small Office Security betroffen. Mehrere Millionen Nutzer müssen exponiert gewesen sein.

Meine Nachfragen ergaben, dass der Leak mit den “2016er” Editionen von Kaspersky eingeführt wurde, die im Herbst 2015 veröffentlicht wurden. Und die UUID war nicht versteckt. Wenn ich sie zufällig finden konnte, dann könnten diverse Leute, von eifrigen Marketern bis hin zu böswilligen Angreifern, sie seit fast vier Jahren ausgenutzt haben.

Laut Kaspersky sei “ein solcher Angriff zu komplex und für Cyberkriminelle nicht profitabel und daher unwahrscheinlich”. Ich muss widersprechen: Wenn ich in kurzer Zeit eine Website erstellen konnte, die die IDs ausliest und speichert, warum hätten es andere nicht irgendwann in den letzten vier Jahren gekonnt? Zahlreiche Unternehmen sind darauf spezialisiert, Website-Besucher so detailliert wie möglich auszuspionieren. Dies wäre ein Segen für ihre Spionagebemühungen.

Weiterlesen >>  Adobe Photoshop 2022: Deinstallation und mehr

Die Katze ist aus dem Sack

Da Kaspersky offenbar die Ernsthaftigkeit der Situation erkannt hatte und mir einen Patch versprach, wartete ich ab. Im Juni wurde tatsächlich der “Patch F” verteilt, und im letzten Monat veröffentlichte Kaspersky eine Sicherheitsmitteilung, die das Problem und seine Lösung beschreibt. Auf meine Anfrage hin ordnete der Hersteller der Schwachstelle auch eine “CVE”-Nummer zu, eine weltweit gültige Identifikationsnummer für Sicherheitslücken. Damit hat der Leak einen offiziellen Namen: CVE-2019-8286.

Die Kaspersky-Mitteilung und die CVE-Registrierung haben das Problem in das Bewusstsein von Sicherheitsbehörden gerückt. So hat beispielsweise das deutsche CERT-Bund eine Warnung bezüglich des Informationslecks herausgegeben. Darüber hinaus gibt es einen Eintrag in der National Vulnerability Database der US-CERT.

Nachdem Kaspersky den Patch verteilt hatte, zögerte ich nicht, meine Experimente zu wiederholen. Die Software schmuggelte immer noch ein Skript mit einer ID in jede Webseite – aber die ID ist nun für alle Nutzer einer bestimmten Kaspersky-Edition identisch: FD126C42-EBFA-4E12-B309-BB3FDD723AC1. Eine Website kann einzelne Nutzer nicht mehr erkennen. Das bedeutet jedoch, dass immer noch festgestellt werden kann, ob ein Besucher Kaspersky-Software auf seinem System installiert hat und wie alt diese Software ist.

Das sind tatsächlich wertvolle Informationen für einen Angreifer. Sie könnten diese Informationen nutzen, um auf die Schutzsoftware zugeschnittene Malware zu verteilen oder den Browser auf eine passende Betrugsseite umzuleiten. Stellen Sie sich etwas vor wie: “Ihre Kaspersky-Lizenz ist abgelaufen. Bitte geben Sie Ihre Kreditkartennummer ein, um Ihr Abonnement zu verlängern.” Selbstverständlich habe ich auch dieses Problem an Kaspersky gemeldet.

Um auf Nummer sicher zu gehen, können Sie die entsprechende Funktion in Kasperskys Software deaktivieren: Klicken Sie auf das Zahnradsymbol unten links im Hauptfenster, dann auf Zusätzliche Einstellungen / Netzwerk. Deaktivieren Sie schließlich unter “Verarbeitung von Web-Traffics” die Option “Skript in den Web-Traffic injizieren, um mit Webseiten zu interagieren”.