S-Protect: c’t entdeckt Sicherheitsmängel in Banking-Software der Sparkasse

Sicheres Online-Banking, sogar auf infizierten Rechnern: Das klingt unmöglich? Nicht weniger versprechen Sparkassen mit ihrem Banking-Browser S-Protect.

In Pocket speichern vorlesen Druckansicht 171 Kommentare lesen
,
Update
Lesezeit: 16 Min.
Von
  • c’t-Investigativteam
Inhaltsverzeichnis

Würden Sie auf einem virenverseuchten Rechner Online-Banking betreiben? Mit S-Protect, dem "sicheren Browser Ihrer Sparkasse", soll genau das möglich sein. Er bringt spezielle Schutzfunktionen mit, an denen sich Cyber-Schurken die Zähne ausbeißen sollen – sogar dann noch, wenn bereits ein Trojaner auf dem System lauert.

Vorreiter war die Sparkasse am Niederrhein, die ihren Kunden die Banking-Software bereits seit einem Jahr im Rahmen eines Pilotprojekts anbietet. Auch auf der Website der Kieler Förde Sparkasse kann man S-Protect herunterladen. Das Pilotprojekt verlief für die Beteiligten offenbar erfolgreich, denn inzwischen können alle Sparkassen die Software für Windows und macOS ins Angebot aufnehmen. Diese Entscheidung trifft jede Sparkasse individuell.

Der in einer Pilot-Sparkasse verantwortliche "Gruppenleiter Online-Banking" lobte S-Protect im Kundenmagazin Sparkassen-Kurier in den höchsten Tönen: "Selbst die fiesesten Trojaner, Viren und Phishing-Attacken müssen draußen bleiben", deshalb könne man "sogar auf einem infizierten Rechner top-sicheres Online-Banking nutzen".

Gewagtes Versprechen auf der Website der Kieler Förde Sparkasse: Der Banking-Browser "S-Protect" soll sicheres Online-Banking sogar auf infizierten Computern erlauben.

Wie das funktioniert, beschreibt die Sparkasse auf der Download-Seite des Programms: "Über S-Protect öffnen Sie Ihr Online-Banking in einem sicheren Bereich, in den man von außen nicht eindringen kann. So bewegen Sie sich in einer Schutzzone außerhalb des Zugriffsbereichs von Datendieben."

Das klingt fantastisch, schließlich gilt seit jeher, dass man mit einem verseuchten Rechner keinesfalls weiterarbeiten sollte – von Online-Banking ganz zu schweigen. Das empfiehlt zwar auch die Sparkasse nicht, möglich sein soll es aber trotzdem. S-Protect wäre ein großer Wurf, wenn es hält, was es verspricht. Um das herauszufinden, haben wir die Banking-Software im c’t-Labor auf Herz und Nieren getestet. Uns interessierte vor allem, wie zuverlässig die Schutzzone das Online-Banking gegen Zugriffe durch andere Prozesse abschirmt.

Im Normalfall muss sich ein Trojaner nicht besonders anstrengen, um auf Tastatur, Bildschirm und Arbeitsspeicher zuzugreifen und seinem Opfer unbemerkt beim Banking über die Schulter zu schauen. Es reichen die Standard-Zugriffsrechte aus, die der Schädling beim Start sowieso schon besitzt. Das macht das Online-Banking auf infizierten Rechnern so gefährlich. Auch unsere Zugriffsversuche beschränkten sich auf die Rechte des bei der Windows-Installation angelegten Standardnutzers, damit S-Protect eine faire Chance bekam.

Der erste Eindruck war durchaus positiv: Das Programm ist mit rund 12 MByte recht schlank und startete augenscheinlich ohne Installation, wie es die Sparkasse auf der Download-Seite versprochen hatte. Zunächst erschien ein Splashscreen mit dem vertrauten Sparkassen-Logo und dem Text "S-Protect - Der sichere Browser Ihrer Sparkasse", kurz darauf der Browser mit der vorkonfigurierten Bank; in unserem Fall die Sparkasse am Niederrhein.

Erfreulich schlank präsentierte sich auch die Oberfläche, da es nur wenige Funktionen gab: Über das Menü auf der linken Seite erreichten wir jederzeit Startseite, PDF-Export, Druckfunktion, virtuelle Tastatur (dazu gleich mehr) und Einstellungen. Der Browser reagierte flink und die Navigation auf der Bankseite ging leicht von der Hand.

Ein Ausflug in die Weiten des Internets fand jedoch ein jähes Ende: S-Protect blockierte Zugriffe auf sämtliche Websites, die nicht auf der voreingestellten Banking-Whitelist standen. Was nach einer Bevormundung klingt, ist eine wichtige Schutzfunktion von S-Protect. So ist sichergestellt, dass man sich nicht auf eine Phishing-Website verirrt – eine sinnvolle Einschränkung mit einem echten Sicherheitsgewinn.

Eine weitere Besonderheit ist die virtuelle Bildschirmtastatur, die per Maus oder Touchscreen bedient wird. Die Idee dahinter ist simpel: Wer Passwörter per Mausklick eingibt, schlägt Keyloggern ein Schnippchen. Solche Bildschirmtastaturen findet man beispielsweise auch in speziell gehärteten Banking-Browsern aus Internet-Security-Suiten.

Wer möchte, kann das Login-Formular der Banken-Website automatisch von S-Protect ausfüllen lassen. Hierzu speichert die Software die Zugangsdaten verschlüsselt auf dem Rechner. Je seltener man die Zugangsdaten eintippt, desto weniger Gelegenheiten gibt es für Keylogger. Der Start von S-Protect lässt sich optional durch Windows Hello absichern, dann ist zur Nutzung beispielsweise die Windows-PIN gefragt.

An dieser Stelle könnten wir den Artikel mit einer Empfehlung beenden, aber da war ja noch was: das Versprechen der Sparkasse, dass S-Protect sogar auf einem infizierten Rechner sicheres Online-Banking möglich macht. Daran musste sich die Software messen lassen.

Wir wechselten daher die Rolle vom Bankkunden zum Hacker. Wir begannen mit einem einfachen Experiment und machten einen Screenshot, während S-Protect aktiv war. Schließlich sollte ein aktiver Trojaner den Inhalt der sicheren Schutzzone eigentlich nicht auslesen dürfen. Das Ergebnis ließ uns hoffen: Das Programmfenster von S-Protect war auf dem Screenshot schwarz, nur der Desktop drumherum sichtbar.

Anschließend bauten wir mit der Fernsteuerungs-Software AnyDesk eine Verbindung zum Testrechner auf, um einen Fernzugriff zu simulieren. Auch hier blieb das Fenster schwarz, allerdings konnten wir es per Maus und Tastatur steuern.

So war es uns im Blindflug möglich, den Inhalt der gerade geöffneten Bankseite über die Zwischenablage in ein ungeschütztes Editor-Fenster einzufügen und zu lesen. Auch der PDF-Export erwies sich als Komplize, da wir die Website damit als PDF speichern und anschließend öffnen konnten.

Die virtuelle Bildschirmtastatur öffnete sich jedoch völlig ungeschützt, ohne Screenshot-Sperre. Wir sahen nicht nur Bildschirmtastatur, sondern auch die Position des Mauszeigers. So ließ sich die Eingabe der Zugangs-PIN Klick für Klick mitverfolgen.

Das Fenster von S-Protect (hinten) war vor Screenshots geschützt. Die wichtige Bildschirmtastatur jedoch nicht.

Die größte Gefahr geht von Trojanern aus, die nach dem Gießkannenprinzip verteilt werden und rund um die Uhr auf Datenbeute lauern. Wir überprüften daher, wie aufwendig es war, die Eingaben auf der ungeschützten Bildschirmtastatur automatisch zu erfassen.

Der Aufwand war gering: Es genügte ein drei Zeilen langes Proof-of-Concept-Skript, das bei jedem Mausklick einen Screenshot speicherte. Das Ergebnis war eine Reihe von Bildschirmfotos, anhand derer sich die Bewegung des Mauszeigers über die einzelnen Buchstaben zweifelsfrei nachvollziehen ließ.

Ein weiteres Skript von uns lauerte auf Tastatureingaben und simulierte einen Keylogger. Es sammelte tatsächlich allerhand Eingaben ein – allerdings deutlich mehr, als wir erwartet hatten. Sobald das Programmfenster von S-Protect aktiv war, wurde das Skript von einer Buchstabenlawine überrollt, noch bevor wir auch nur eine Taste gedrückt hatten.

Offensichtlich versuchte S-Protect, Keylogger in die Irre zu führen, indem es zufällige Tastenanschläge simulierte, von denen der Anwender nichts mitbekommt. Diese Verteidigungsstrategie war zunächst durchaus effektiv, denn unsere tatsächlichen Tastatureingaben gingen in der Masse unter und waren nicht von den simulierten Eingaben zu unterscheiden.

S-Protect versucht Keylogger mit simulierten Tastenanschlägen (oben rechts) in die Irre zu führen. Diese ließen sich jedoch leicht herausfiltern.

Unter Windows ist es jedoch einfach möglich, in einem Skript zwischen Eingabegeräten zu unterscheiden. Das gelang uns mit einem weiteren Proof-of-Concept-Skript, das die Spreu vom Weizen trennte und die von S-Protect simulierten Tastenanschläge zuverlässig aussortierte. Übrig blieben die Eingaben von der echten Tastatur.

Hinter S-Protect steckte anscheinend keine revolutionäre Schutztechnologie, sondern vielmehr der Versuch, Trojaner durch Tricksereien am Zugriff auf Daten aus dem Browser zu hindern. Mit diesem Eindruck überprüften wir weitere Schutzmaßnahmen des Browsers.

Zunächst war da noch der Screenshot-Schutz, der zwar nicht die virtuelle Tastatur schützte, aber den Rest des Programmfensters. Microsoft stellt Entwicklern eine Funktion namens SetWindowDisplayAffinity() bereit, die den Fensterinhalt einer Anwendung vor Screenshots schützt. Dies weckte den Verdacht, dass S-Protect mit dieser Funktion arbeitete. Microsoft betont allerdings, dass es "im Gegensatz zu einem Sicherheits-Feature oder einer Implementierung von Digital Rights Management (DRM) keine Garantie dafür gibt, dass die Verwendung [...] einen strikten Schutz von Fensterinhalten bietet".

Wir stießen im Netz schnell auf ein Skript, das die fragliche Funktion austrickst. Damit gelang es uns, das Programmfenster von S-Protect vollständig zu erfassen. Mithilfe einer Screenshot-Serie ließ sich so die gesamte Nutzung der Anwendung Schritt für Schritt nachvollziehen.

Eine gleichermaßen alte wie gefährliche Masche von Banking-Trojanern ist die Manipulation der dargestellten Banking-Websites. Das Opfer bekommt so zum Beispiel einen irrtümlichen Geldeingang vorgegaukelt, um es dazu zu bringen, die Summe zurückzuüberweisen. Genauso gut könnte es der Angreifer über die Website – vermeintlich im Namen der Bank – dazu auffordern, eine Schadsoftware auf dem Handy zu installieren, um den für Transaktionen erforderlichen zweiten Faktor abzugreifen.

Wir ließen ein Skript ein rahmenloses Fenster zeichnen, das sich als Overlay über den Bildschirm legte. Anschließend schleusten wir es über eine Standardfunktion von Windows in das S-Protect-Fenster ein und konnten damit pixelgenau beliebige Inhalte überdecken.

Das Overlay war vom echten Inhalt des Fensters optisch nicht zu unterscheiden und bewegte sich passend mit, als wir das Fenster über den Desktop schoben. Wir konnten damit sowohl einzelne Elemente des Fensters überdecken als auch die geöffnete Website mit einer völlig anderen.

Unter Windows können Prozesse grundsätzlich auf die Arbeitsspeicherbereiche anderer Prozesse zugreifen. Das ist ein kritischer Ort, da dort viele Daten liegen, mit denen ein Prozess gerade arbeitet: geöffnete Webseiten, Zugangsdaten und vieles mehr. Um einen Trojanerzugriff auf den Speicher zu simulieren, durchsuchten wir Speicher-Dumps der Prozesse von S-Protect nach Zugangsdaten, welche wir kurz zuvor eingegeben hatten. Wir konnten diese Daten im Klartext wiederfinden.

Im Arbeitsspeicher stießen wir unter anderem auf ein Passwort im Klartext, das wir S-Protect anvertraut hatten.

Etwas Weiteres fiel uns auf, als wir S-Protect beim Start mit dem Process Monitor von Sysinternals über die Schulter schauten: Das Programm bestand zwar augenscheinlich nur aus der Datei S-Protect.exe und kam laut Download-Seite ohne Installation aus. Tatsächlich machte es sich aber im AppData-Verzeichnis des Systems breit, ohne den Nutzer aktiv darüber zu informieren. Erst in der eingebauten Hilfe entdeckten wir den Hinweis, dass dieser Ordner zu entfernen sei, um S-Protect vom Computer zu entfernen.

In AppData kopierte es nicht nur eine ausführbare Kopie seiner selbst, sondern auch Banking-Zugangsdaten, die während der Nutzung von der optionalen Auto-Login-Funktion eingesammelt wurden. Die kritischen Dateien waren zwar verschlüsselt, es reichte aber aus, S-Protect mit demselben Windows-Konto zu starten, um sie entschlüsseln zu lassen und darauf zuzugreifen.

Ein Blick in den AppData-Ordner von S-Protect zeigte auch, dass es keineswegs nur aus der ausführbaren Datei S-Protect.exe bestand, sondern sich aus vielen Einzelkomponenten zusammensetzte. Diese waren digital signiert – ein sinnvoller Schutzmechanismus. Die Sparkasse am Niederrhein erklärte auf der Download-Seite sogar, wie man die Datei S-Protect.exe anhand ihrer digitalen Signatur auf Echtheit überprüft.

Damit nach dem Start dieser Datei niemand dazwischenfunkt, muss sie die Signaturen ihrer Komponenten ebenfalls überprüfen, bevor sie diese ausführt. Hier ist uns jedoch ein Schlupfloch aufgefallen: Nachdem wir eine der ausführbaren Dateien im AppData-Ordner mit einer unsignierten Datei überschrieben hatten, wurde diese beim Start von S-Protect mit ausgeführt. Selbst wenn man sich also die Mühe machte, die digitale Signatur von S-Protect zu überprüfen, konnte man nicht sicher sein, dass nach dem Starten nur digital signierter Code der Entwickler ausgeführt wird.

Zum Schluss unserer Recherche gingen wir noch einem Sicherheitsproblem nach, das der IT-Experte Stefan Kanthak bereits im Vorfeld entdeckt und über den IT-Blog Borncity publiziert hatte. Demnach war S-Protect anfällig für das sogenannte DLL-Hijacking: Dabei handelt es sich um einen seit rund zwölf Jahren bekannten Programmierfehler, der dafür sorgt, dass Anwendungen beliebige DLL-Dateien importieren und ausführen, wenn sich diese passend benannt im selben Ordner befinden.

Um der Sache nachzugehen, starteten wir S-Protect aus dem Download-Ordner und beobachteten währenddessen die Dateizugriffe mit dem Process Monitor. S-Protect versuchte 44-mal auf nicht existente DLL-Dateien im Download-Ordner zuzugreifen. Wir platzierten eine mit dem Pentesting-Tool Metasploit erstellte DLL im Ordner und benannten sie nach einer der von S-Protect gesuchten Dateien.

Nachdem wir die Banking-Software erneut gestartet hatten, führte sie den Metasploit-Code in der DLL sofort aus. Daraufhin baute das Testsystem eigenmächtig eine sogenannte Reverse-Shell-Verbindung zu einem unserer Analysesysteme auf und schuf so eine Backdoor.

Wir setzten uns am 18. Mai mit dem Dachverband der Sparkassen-Finanzgruppe (DSGV) per Mail in Verbindung und berichteten von unseren Funden. Jedoch meldete sich nicht der Sparkassenverband zurück, sondern die Kieler Softwarefirma Coronic, um mit uns über die Sicherheitsmängel zu sprechen. Bevor wir darauf eingingen, kontaktierten wir den DSGV erneut, um die Situation aufzuklären.

Daraufhin teilte uns der Verband mit, dass es sich bei dem "sicheren Browser Ihrer Sparkasse" nicht um ein Produkt der Sparkassen handele. Der eigentliche Hersteller sei Coronic, der auch die Verantwortung für die Sparkassen-Software trage. Es gebe zwischen dem DSGV und Coronic lediglich eine Vereinbarung.

Der Sparkassen-Dachverband übernimmt keine Verantwortung für "den sicheren Browser Ihrer Sparkasse".

Tatsächlich war auf der Homepage der Coronic GmbH ein Produkt namens PROTECT gelistet, das die Firma laut den Angaben auf ihrer Website nicht nur an Sparkassen, sondern auch an Volksbanken verkaufte. In einem Dokument des Herstellers, das sich an interessierte Sparkassen richtete, fanden wir dann auch das gewagte Sicherheitsversprechen wieder: "PROTECT kann auch auf einem bereits durch Viren und Trojaner verseuchten PC eingesetzt werden und sorgt trotzdem für sicheres Online-Banking." Mit Einverständnis des DSGV stellten wir Coronic weitere Informationen über die von uns festgestellten Sicherheitsmängel bereit.

heise Investigativ

Viele c’t-Investigativ-Recherchen sind nur möglich dank anonymer Informationen von Hinweisgebern.

Wenn Sie Kenntnis von einem Missstand haben, von dem die Öffentlichkeit erfahren sollte, können Sie uns Hinweise und Material zukommen lassen. Nutzen Sie dafür bitte unseren anonymen und sicheren Briefkasten.

https://heise.de/investigativ

Daraufhin beantwortete der DSGV am 20. Mai unsere Anfrage: "Nach unseren Informationen wurden bisher alle an den Hersteller gemeldeten Sicherheitsmängel in angemessener Frist behoben. Gegen jeden von Ihrer Redaktion oben genannten Angriffspunkte bietet der Protect-Browser nach Informationen des Herstellers Abwehrmechanismen."

Wir wiederholten unsere Analyse mit S-Protect in Version 5.4.14.0, die wenige Tage nach Abschluss unserer Bestandsaufnahme erschienen war – aber noch bevor wir den DSGV über unsere Funde informiert hatten. Diese Version von S-Protect war nicht mehr anfällig für die von Stefan Kanthak entdeckte DLL-Hijacking-Lücke, die sich zum Ausführen von Schadcode eignete. Alle anderen Sicherheitsmängel konnten wir jedoch nach wie vor reproduzieren. Damit war S-Protect weiterhin nicht für den Einsatz auf bereits infizierten Systemen geeignet.

Offen bleibt die Frage, warum die zahlreichen Sicherheitsmängel nicht im Vorfeld aufgefallen sind. Der DSGV äußerte sich hierzu wie folgt: "Nach Informationen des Herstellers" habe es "verschiedenste Sicherheits-Audits durch Kreditinstitute und Sicherheitsdienstleister [gegeben], die durchweg positiv ausgefallen sind".

Offenbar hat auch das Sicherheitsteam der Sparkassen das Produkt begutachtet: "Vor Abschluss der Vereinbarung zwischen DSGV und Coronic hat im Auftrag des DSGV das CERT der Sparkassen-Finanzgruppe (S-CERT) eine Sicherheitsbewertung durchgeführt."

Warum dabei Standardfehler wie die Anfälligkeit für DLL-Hijacking nicht aufgefallen sind und ob das S-CERT die Software mit dem Anspruch überprüft hat, dass sie Fremdzugriffe auf bereits infizierten Systemen zuverlässig abschirmen soll, ist unklar.

Von diesem Versprechen geht nach unserer Einschätzung das größte Risiko aus. Denn wer eine Schutzzone und sicheres Online-Banking auf infizierten Systemen verspricht, und dies dann nicht halten kann, bringt die Bankkunden unnötig in Gefahr.

Update

Dieser Artikel ist ursprünglich in c't 13/2022 erschienen. Am 31. Mai 2022, nach Redaktionsschluss des Artikels, hat Coronic ein Software-Update (Version 5.4.18.0) veröffentlicht, das einige der von uns beschriebenen Angriffsmöglichkeiten verhindern soll. Unserer ersten Analyse zufolge scheint dies nicht in jedem Punkt gelungen zu sein.

Update

Der Hersteller der Software hat uns am heutigen Tage per Anwaltsschreiben darum gebeten, darzustellen, welche von der c’t an den Hersteller gemeldeten Sicherheitslücken der Software S-Protect zwischenzeitlich mit dem Update vom 31. Mai 2022 geschlossen werden konnten und welche nach unserer Recherche weiter bestehen.

Nach eigenen Angaben habe man folgende der in dem Artikel genannten Sicherheitslücken behoben:

  • Zugriff auf die Eingaben der virtuelle Bildschirmtastatur
  • Umgehung der Anti-Keylogging-Funktion
  • unzureichende Überprüfung digitaler Signaturen
  • DLL-Hijacking

Dies können wir nach unseren Recherchen nur teilweise bestätigen. Zutreffend ist, dass durch das Update das Problem der unzureichenden Signaturprüfung im Falle einer ausführbaren Datei behoben wurde. Die Möglichkeit des DLL-Hijacking wurde, wie im Artikel erwähnt, bereits vor unserer Berichterstattung mit einem Update vom 16.5. unterbunden.

Es ist jedoch weiterhin möglich, die Eingaben der virtuellen Bildschirmtastatur zu erfassen. Die Bildschirmtastatur wird auf Screenshots inzwischen zwar nur noch geschwärzt abgebildet, jedoch lässt sich dieser Screenshot-Schutz weiterhin, wie im Artikel unter "Tiefer bohren" beschrieben, umgehen. Auch die Eingaben einer physischen Tastatur lassen sich weiterhin erfassen.

Auf andere Anfälligkeiten wie der Zugriffsmöglichkeit auf sensible Daten im Arbeitsspeicher wird in dem Anwaltsschreiben nicht eingegangen.

Darüber hinaus hat der Hersteller am heutigen Tage eine "Gegendarstellung" veröffentlicht, auf die wir an dieser Stelle verweisen: www.coronic.de/gegendarstellung.

c’t – Europas größtes IT- und Tech-Magazin

Alle 14 Tage präsentiert Ihnen Deutschlands größte IT-Redaktion aktuelle Tipps, kritische Berichte, aufwendige Tests und tiefgehende Reportagen zu IT-Sicherheit & Datenschutz, Hardware, Software- und App-Entwicklungen, Smart Home und vielem mehr. Unabhängiger Journalismus ist bei c't das A und O.

(ct) ()